Übersicht zu Snowflake Data Clean Rooms¶
Dieses Thema bietet eine allgemeine Anleitung zu den Komponenten, aus denen eine Zusammenarbeit besteht, und beschreibt die grundlegenden Schritte bei der Erstellung oder Verwendung einer Snowflake Data Clean Room-Zusammenarbeit.
Anforderungen¶
Snowflake Data Clean Rooms muss auf die neueste Version aktualisiert sein.
Sie benötigen Zugriff auf die Data Clean Rooms Collaboration-API, um Zusammenarbeiten sehen oder verwalten zu können. Weitere Informationen dazu finden Sie unter Verwalten des Zugriffs auf Collaborations, Ressourcen und Daten.
Datenanbietende müssen die Snowflake Enterprise Edition verwenden. Personen mit Eigentumsrechten Analysenausführende können die Standard Edition verwenden.
Wenn Sie die Snowflake Standard Edition verwenden, können Sie Daten nicht über einen Data Clean Room mit Durchsetzung von Richtlinien freigeben. Sie können jedoch auf Datenangebote von anderen Teilnehmenden zugreifen oder Ihre eigenen Daten verwenden, ganz ohne Richtlinien oder sie freizugeben.
Um Ergebnisse für ein anderes Snowflake-Konto zu aktivieren, müssen Sie Snowflake Enterprise Edition verwenden.
Testkonten unterstützen Snowflake Data Clean Rooms nicht.
Rollen und Ressourcen in einer Zusammenarbeit¶
Um zu verstehen, wie Sie eine Zusammenarbeit verwenden, müssen Sie zunächst Zusammenarbeitsrollen und Zusammenarbeitsressourcen verstehen.
Zusammenarbeitsrollen¶
Die folgenden Rollen sind in einer Zusammenarbeit verfügbar. Diese Rollen definieren die allgemeinen Fähigkeiten des Teilnehmenden.
Eigentümer: Diese Person definiert, erstellt und besitzt die Zusammenarbeit und definiert, welche Teilnehmenden eingeladen werden und welche Zusammenarbeitsrollen sie haben. Ein Eigentümer ist nicht automatisch ein Analyseausführer oder Datenanbieter und hat keine erhöhten Ausführungsberechtigungen. Die Hauptfähigkeiten dieser Person bestehen darin, den Clean Room zu erstellen, Zusammenarbeitsrollen zuzuweisen, zu bestimmen, wer mit wem Daten teilen darf, und den Clean Room wieder abzubauen. Eine Zusammenarbeit kann nur einer Person gehören.
Datenanbieter: Stellt Datenangebote, wie z. B. Tabellen und Ansichten, für eine Zusammenarbeit bereit und gibt an, welche Analyseprotokolle diese verwenden können. Das heißt, Konto A ist ein Datenanbietender für die Konten B und C, wie in der Spezifikation der Zusammenarbeit angegeben.
Analyseausführender: Führt zulässige Vorlagen auf zulässigen Datenangeboten aus, wie in der Spezifikation der Zusammenarbeit angegeben.
Diese Rollen sind in der Spezifikation für die Zusammenarbeit festgelegt, die für die Erstellung der Zusammenarbeit verwendet wird.
Einem Teilnehmenden können mehrere Zusammenarbeitsrollen zugewiesen werden, und (mit Ausnahme der Eigentümerrolle) kann eine Zusammenarbeitsrolle mehreren Teilnehmenden zugewiesen werden.
Mehr erfahren
Ressourcen für die Zusammenarbeit¶
Eine Zusammenarbeit umfasst Ressourcen, darunter Datenangebote, Vorlagen und Code-Bundles. Alle Ressourcen und die Zusammenarbeit selbst werden durch YAML-Spezifikationen definiert.
Zusammenarbeiten unterstützen die folgenden Arten von Ressourcen:
Vorlage: Eine JinjaSQL-Abfrage, die Analyseausführende in der Zusammenarbeit ausführen können. Je nach Art der Vorlage können die Ergebnisse entweder direkt an das Snowflake-Konto eines bestimmten Teilnehmenden gesendet oder aktiviert (gespeichert) werden. Analyseausführende können zur Laufzeit Werte an eine Vorlage übergeben, um Vorlagenvariablen zu ersetzen, die für Spaltennamen, WHERE-Klauseln und andere Abfrageelemente verwendet werden.
Datenangebot: Ein Paket mit einer oder mehreren Tabellen, die von einem Datenanbietenden mit bestimmten Analyseausführenden freigegeben werden. Ein Datenangebot ist eine Live-Ansicht der Quelldaten, kein Snapshot, und seine Spezifikation steuert, welche Spalten offengelegt werden und welche Richtlinien gelten.
Code-Bundle: Eine Reihe von kundenspezifischen Python-Funktionen oder -Prozeduren, die von einer Vorlage aufgerufen werden können. Mit Code-Bundles können Sie die Funktionalität von Vorlagen um benutzerdefinierte Logik erweitern, z. B. um Machine Learning-Modelle oder benutzerdefinierte Transformationen.
Beispiel für eine Clean Room-Spezifikation¶
Hier ist die YAML-Spezifikation für einen einfachen Clean Room, der zwei Teilnehmende umfasst, alice (ein Alias für Konto corp1.acct123) und bob (ein Alias für Konto corp2.acctxyz). Die Spezifikation weist jedem Benutzenden eine Rolle zu und verknüpft zwei Datenangebote mit der Zusammenarbeit.
Diese einfache Zusammenarbeit umfasst die folgenden Ressourcen und Rollen für die Zusammenarbeit:
aliceist die Eigentümerin der Zusammenarbeit, ein Analyseausführende und eine Datenanbietende für sich undbob.bobist ein Analyseausführender und ein Datenanbieter füralice, aber nicht für sich selbst.alicekanntemplate1ausführen,bobkanntemplate2ausführen.
Weitere Punkte, die Sie zu dieser Zusammenarbeit beachten sollten:
Nachdem die Zusammenarbeit aus dieser Spezifikation erstellt wurde, können keine neuen Teilnehmenden hinzugefügt werden.
Sowohl
aliceals auchbobkönnen neue Vorlagen hinzufügen und diese für andere Teilnehmende freigeben.Rollen können nicht geändert werden, daher kann
bobspäter nicht selbst ein Datenanbieter werden.Jeder Datenanbietende kann Datenangebote zur eigenen Datenangebotsliste hinzufügen oder entfernen, auch nachdem die Zusammenarbeit erstellt wurde.
Grundlegender Workflow für die Zusammenarbeit im Clean Room¶
Hier ist ein einfaches Szenario für die Zusammenarbeit im Clean Room:
Die Person mit Eigentumsrechten an der Zusammenarbeit kann optional alle Vorlagen oder Datenangebote registrieren, die in der anfänglichen Konfiguration der Zusammenarbeit vorhanden sein sollen.
Der Eigentümer bittet optional alle vorgesehenen Teilnehmenden, Vorlagen oder Datenangebote zu registrieren, die in der Erstkonfiguration der Zusammenarbeit angezeigt werden sollen. Die Mitarbeiter geben dann die Ressourcen-IDs von allen Elementen an, die sie registriert haben.
Die Person erstellt dann eine Zusammenarbeit. Die Zusammenarbeitsspezifikation definiert die Teilnehmenden, ihre Rollen und alle Ressourcen, die im Anfangszustand der Zusammenarbeit verfügbar sein sollen.
Zu diesem Zeitpunkt werden der Satz der Teilnehmenden und ihrer Rollen für die Zusammenarbeit konkret festgelegt.
Wenn die Zusammenarbeit Teilnehmende in anderen Cloudhosting-Regionen umfasst, müssen diese die Cloud-übergreifende automatische Ausführung für ihr Konto aktivieren, bevor sie die Zusammenarbeit überprüfen und ihr beitreten können.
Wenn die Zusammenarbeit erstellt wird, wird sie für alle Teilnehmenden in der Zusammenarbeitsspezifikation sichtbar und beitretbar.
Teilnehmende überprüfen die Zusammenarbeit und treten ihr bei.
Teilnehmende können dann optional entsprechend ihrer Rollen Ressourcen mit der Zusammenarbeit verknüpfen. Datenanbietende können Datenangebote mit ihren Analyseausführenden verknüpfen. Jede Rolle kann anfordern, eine Vorlage hinzuzufügen und sie für andere Teilnehmende freizugeben.
Analyseausführende können dann alle Vorlagen ausführen, die für sie in der Zusammenarbeit freigegeben wurden, und dabei alle Datenangebote nutzen, die für sie in der Zusammenarbeit freigegeben wurden. Der Analyseausführende trägt die Kosten der Analyse. Vorlagen können die Abfrageergebnisse entweder in der Antwort zurückgeben oder Ergebnisse für den Aufrufenden oder einen anderen Teilnehmenden aktivieren.
Mehr erfahren
Weitere Beispiele finden Sie im Abschnitt Use cases der Data Clean Rooms-Dokumentation.
Erstellen einer Zusammenarbeit¶
Alle Snowflake Data Clean Rooms-Benutzende mit den entsprechenden Berechtigungen können einen Clean Room erstellen. Ein Clean Room wird mit einer YAML-Spezifikation definiert, die alle Teilnehmenden und ihre relativen Rollen in der Zusammenarbeit sowie alle Ressourcen bestimmt, die in der Anfangskonfiguration der Zusammenarbeit vorhanden sind. (Die Personen mit Eigentumsrechten an den Ressourcen müssen beitreten, bevor die Ressourcen verwendet werden können.) Ressourcen können nach dem Erstellen der Zusammenarbeit hinzugefügt oder entfernt werden, aber die Liste der Teilnehmenden und ihrer relativen Rollen kann nach dem Erstellen der Zusammenarbeit nicht mehr geändert werden.
Zusammenarbeiten sind nicht versioniert: Eine Zusammenarbeit kann sich durch das Hinzufügen oder Entfernen von Ressourcen ändern, aber diese Änderungen werden nicht nachverfolgt.
Hinzufügen von Ressourcen zu einer Zusammenarbeit¶
Eine Zusammenarbeit kann auf Ressourcen zugreifen, einschließlich Vorlagen, Datenangebote und Code-Bundles. Um eine Ressource in einer Zusammenarbeit zu verwenden, müssen Sie sie zunächst in der Clean Room-Umgebung der Zusammenarbeit registrieren und sie dann mit einer bestimmten Zusammenarbeit verknüpfen:
Die Registrierung ist eine Aktion auf Kontoebene. Dabei wird die Ressource gepackt und in die Clean Room-Umgebung kopiert und es wird eine ID zurückgegeben, mit der auf diese Ressource verwiesen wird. Eine Ressource wird in einer Registry registriert, entweder in der Standard-Registry für Ihr Konto oder in einer kundenspezifischen Registry, die von einer Person in Ihrem Konto erstellt wurde. Die Standard-Registry steht allen Teilnehmenden im Konto mit READ REGISTRY-Berechtigungen zur Verfügung. Der Zugriff auf eine kundenspezifische Registry kann von der Person gesteuert werden, die die Registry erstellt hat.
Durch das Verknüpfen wird eine registrierte Ressource für eine bestimmte Zusammenarbeit freigegeben. Genauer gesagt wird eine registrierte Ressource für eine bestimmte Gruppe von Teilnehmenden einer bestimmten Zusammenarbeit freigegeben. Sie können eine Ressource entweder verknüpfen, indem Sie sie zu der Zusammenarbeitsspezifikation hinzufügen, die zum Erstellen einer Zusammenarbeit verwendet wurde, oder Sie können die entsprechende Collaboration API-Prozedur aufrufen, um die Ressource mit einer Zusammenarbeit zu verknüpfen.
Ressourcen können einer Zusammenarbeit entweder zum Zeitpunkt der Erstellung oder nach dem Erstellen einer Zusammenarbeit hinzugefügt werden.
Im Gegensatz zu Zusammenarbeiten sind Ressourcen versioniert. Neuere Versionen einer Ressource überschreiben keine älteren Versionen. Wenn Sie eine Ressource durch eine neuere Version ersetzen möchten, müssen Sie auch die Zusammenarbeit aktualisieren, um die alte Version zu entfernen (falls gewünscht) und die neue Version hinzuzufügen.
Das Konto, das eine Ressource registriert, muss eine teilnehmende Person sein, die der Zusammenarbeit beitreten muss, bevor die von ihr registrierten Ressourcen in der Zusammenarbeit verfügbar sein können.
Beitreten zu einer Zusammenarbeit¶
Eine Zusammenarbeit ist für alle Teilnehmenden sichtbar, die in der Zusammenarbeitsspezifikation aufgeführt sind. Alle Teilnehmenden, einschließlich der Person, die die Zusammenarbeit erstellt hat, müssen der Zusammenarbeit beitreten. Alle Teilnehmenden mit Ausnahme der Person mit Eigentumsrechten an der Zusammenarbeit müssen die Zusammenarbeit überprüfen, bevor sie beitreten können. Durch die Überprüfung einer Zusammenarbeit wird die Spezifikation der Zusammenarbeit für die eingeladene Partei offengelegt. Nach dem Überprüfen der Zusammenarbeit kann der Eingeladene der Zusammenarbeit beitreten. Sie müssen einer Zusammenarbeit beitreten, bevor Ressourcen, die Sie einer Zusammenarbeit zur Verfügung stellen, genutzt werden können.
Sie können Ihren Verknüpfungsstatus (Eingeladen, Beitreten, Beigetreten) durch Aufrufen von GET_STATUS für die Zusammenarbeit anzeigen. Die meisten Änderungsaktionen für die Zusammenarbeit, wie das Verknüpfen einer Ressource, das Beitreten zu einer Zusammenarbeit oder das Aktivieren der Ergebnisse, sind entweder asynchron oder können einige Zeit in Anspruch nehmen, bis sie auf andere Teilnehmenden übertragen werden. Sie sollten also die entsprechende Prozedur aufrufen, um den Status der Änderung anzuzeigen.
Ausführen einer Analyse¶
Teilnehmende, die in einer Zusammenarbeit als Analyseausführende aufgeführt sind, können Abfragen zu allen Datenangeboten durchführen, die ihnen in der Zusammenarbeit zur Verfügung stehen.
Kollaborationen unterstützen die folgenden Arten von Analysen:
Vorlagenbasierte Analyseabfragen: Ein Analyseausführender kann beliebige Vorlagen, die ihm in der Zusammenarbeit zugewiesen sind, ausführen und die Ergebnisse synchron sehen.
Aktivierungsanalysen: Wenn das Datenangebot, die Zusammenarbeit und die Vorlage dies zulassen, kann der Analyseausführende die Ergebnisse im Snowflake-Konto des angegebenen Teilnehmenden aktivieren (speichern).
SQL-Freiformanalysen: Wenn die Zusammenarbeit und das Datenangebot dies zulassen, können Analyseausführende SQL-Abfragen direkt für Daten eines Datenangebots ausführen. Siehe SQL-Freiformabfragen.
Mehr erfahren
Zusammenarbeit verlassen oder löschen¶
Sie können eine Zusammenarbeit jederzeit verlassen, obwohl die Person mit Eigentumsrechten an der Zusammenarbeit eine Zusammenarbeit nicht verlassen kann und stattdessen die Zusammenarbeit für alle löscht.
Nicht-Eigentümer verlassen eine Zusammenarbeit, indem sie LEAVE aufrufen. Alle von ihnen bereitgestellten Datenangebote werden aus der Zusammenarbeit entfernt. Sie können einer Zusammenarbeit nicht wieder beitreten, nachdem Sie sie verlassen haben.
Personen mit Eigentumsrechten an der Zusammenarbeit können eine Zusammenarbeit nicht verlassen. Die Eigentümerschaft kann nicht übertragen werden. Ein Eigentümer einer Zusammenarbeit kann eine Zusammenarbeit für alle Teilnehmenden löschen, indem er TEARDOWN aufruft.
Das Verlassen oder Löschen einer Zusammenarbeit erfolgt asynchron. Sie müssen GET_STATUS aufrufen, um den Status zu überwachen, und LEAVE oder TEARDOWN erneut aufrufen, wenn GET_STATUS den Status als LOCAL_DROP_PENDING anzeigt.
Das Löschen einer Zusammenarbeit wirkt sich nicht auf den Registrierungsstatus der mit der Zusammenarbeit verbundenen Ressourcen aus. Diese Ressourcen können weiter genutzt oder mit neuen Zusammenarbeiten verknüpft werden.