Registrys¶
Bevor Sie eine Vorlage, ein Datenangebot oder eine andere Ressource zu einer Zusammenarbeit hinzufügen können, müssen Sie die Ressource in einer Registry registrieren. Eine Registry ist ein Container auf Kontoebene, in dem Ressourcen gespeichert werden. Nachdem eine Ressource registriert wurde, kann sie von jedem Benutzenden in Ihrem Konto, der auf die Registry zugreifen kann, zu einer Zusammenarbeit hinzugefügt werden. Registrys sind nicht mit einer bestimmten Zusammenarbeit verknüpft, aber Ressourcen in der Registry können mit keiner oder mehreren Kooperationen in diesem Konto verknüpft werden.
Jedes Snowflake-Konto unterstützt eine Standard-Registry. Sie können weitere kundenspezifische Registrys für Ihr Konto erstellen. Kundenspezifische Registrys sind eine gute Möglichkeit, den Zugriff auf Ihre Ressourcen zu gruppieren und zu verwalten. Sie könnten z. B. eine kundenspezifische Registry für die Umsatzdaten und eine weitere für die Ausgabendaten erstellen und dann den entsprechenden Benutzenden über RBAC-Rollen den Zugriff auf diese Registrys gewähren.
Hier sind die wichtigsten Regeln für Registrys:
Jede kundenspezifische Registrierung unterstützt einen einzigen Ressourcentyp (Vorlage, Datenangebot usw.). Der Datentyp wird angegeben, wenn Sie die Registry erstellen. Die Standardregistrierung unterstützt alle Ressourcentypen.
Es gibt kein Limit für die Anzahl der kundenspezifischen Registrys, die Sie in einem Konto erstellen können.
Wenn Sie eine Ressource registrieren, können Sie den optionalen Parameter für den Registrierungsnamen verwenden, um eine kundenspezifische Registry anzugeben. Wenn Sie keine kundenspezifische Registry angeben, wird die Ressource in der Standardregistrierung für das Konto registriert.
Alle Benutzer haben Zugriff auf die Standardregistrierung in einem Konto. Kundenspezifische Registrys sind jedoch zunächst privat für den Erstellenden, und zusätzlichen Benutzenden muss explizit Zugriff gewährt werden, indem Sie
GRANT_PRIVILEGE_ON_OBJECT_TO_ROLEaufrufen.Ein Konto kann mehrere Registrys haben, die denselben Ressourcentyp speichern.
Registrys haben keine maximale Anzahl von Ressourcen.
Eine Ressource muss in allen Registrys in diesem Konto für Ressourcen dieses Typs einen eindeutigen Namen haben. Sie können zum Beispiel eine Vorlage mit dem Namen
salesund ein Datenangebot mit dem Namensalesim selben Konto haben, aber nicht zwei Vorlagen mit dem Namensalesentweder in derselben oder in verschiedenen Registrys in demselben Konto. Der Ressourcenname ist alsname-Wert der höchsten Ebene in der Spezifikation definiert.Wenn Sie eine Ressource mit einer Zusammenarbeit verknüpfen, ist die Ressource für jeden sichtbar, der gemäß der Spezifikation auf sie zugreifen kann. Ein Zugriff auf die enthaltene Registry ist nicht erforderlich.
Wenn zwei verschiedene Konten Ressourcen mit demselben Namen und demselben Typ registrieren, ist dies zulässig. Die Zusammenarbeitsspezifikation zeigt identisch benannte Ressourcen an, aber das System weiß, welche Ressource vorgesehen ist – die Ressource mit diesem Namen wird von dem Konto verwendet, das die Ressource zur Zusammenarbeit hinzugefügt hat.
Beispiel¶
In diesem Beispiel wird eine kundenspezifische Registry erstellt, darin ein Datenangebot registriert und über eine neue Rolle Lesezugriff auf diese Registry gewährt.
-- Create a custom registry that can hold data offerings.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.CREATE_REGISTRY(
'SALES',
'DATA_OFFERING'
);
-- Add a data offering to the custom registry.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.REGISTRY.REGISTER_DATA_OFFERING(
'SALES',
$$
api_version: 2.0.0
spec_type: data_offering
version: v1
name: FL_SALES
datasets:
- alias: customers_1
data_object_fqn: SALES_DB.PUBLIC.FL_DATA
allowed_analyses: template_only
schema_and_template_policies:
company_name:
category: passthrough
total_sales:
category: passthrough
$$
);
-- Create a role and grant it access to the registry.
CREATE ROLE MARKETING_USERS;
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.ADMIN.GRANT_PRIVILEGE_ON_OBJECT_TO_ROLE(
'READ',
'REGISTRY',
$collaboration_name,
'MARKETING_USERS'
);
-- Grant access to the registry for a user by assigning the role.
GRANT ROLE MARKETING_USERS to USER willy_loman;