Vom Anbieter durchgeführte Analyse¶
Die Standardkonfiguration des Clean Room ermöglicht es nur dem Verbraucher, eine Analyse im Clean Room durchzuführen. Der Anbieter kann jedoch die Erlaubnis des Verbrauchers einholen, Vorlagen mit Verbraucherdaten in einem bestimmten Clean Room auszuführen. Die vom Anbieter durchgeführte Analyse kann entweder über die Clean Room UI oder über Code aktiviert und ausgeführt werden.
Bemerkung
Es gibt zwei Möglichkeiten für einen Anbieter, eine Analyse in einem Clean Room auszuführen: als Standardvorlage, die Ergebnisse mit jeder Abfrage zurückgibt, und als Aktivierung, die die Ergebnisse in einer Datei im Konto des Anbieters speichert. Wenn Sie die Daten für sich selbst oder für den Export an einen Dritten aufbewahren müssen, oder wenn es darum geht, die Ergebnisse eines großen Datensets zu verfeinern, ist es im Allgemeinen am besten, Ergebnisse für Ihr Konto zu aktivieren. Wenn Sie eine Vorlage mit neuen Parametern oder Daten erneut ausführen möchten und die Ergebnisse nicht aufbewahren müssen, ist die Verwendung der hier beschriebenen Standardabfragen vom Anbieter die richtige Methode.
Unterstützte Vorlagen¶
Die vom Anbieter durchgeführte Analyse wird auf der Ebene der Vorlage innerhalb eines bestimmten Clean Room aktiviert. Die folgenden Vorlagen unterstützen vom Anbieter durchgeführte Analysen:
Überlappungs- und Segmentierungsanalyse
SQL-Abfrage (nur UI)
Benutzerdefinierte Vorlagen (nur API)
Details zur Abrechnung¶
Vom Anbieter durchgeführte Analysen werden im Konto des Verbrauchers ausgeführt, und den Verbrauchern wird eine vom Anbieter durchgeführte Analyse in Rechnung gestellt. Um keine zusätzlichen Kosten durch Anbieteranalysen zu verursachen, muss der Verbraucher den Clean Room deinstallieren.
Ein Verbraucher kann die Anzahl der Credits schätzen, die der Anbieter in den letzten N Tagen verbraucht hat, indem er die folgende Abfrage ausführt und die Anzahl der vergangenen Tage als negative Zahl angibt:
-- Estimate the number of credits consumed in the past 5 days.
SELECT * FROM TABLE(SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.LIBRARY.PRA_CONSUMPTION_UDTF(-5));
Auswählen und Begrenzen von Warehouse-Größe und -Typ¶
Clean Rooms verwenden eine automatische Skalierungslogik auf der Grundlage von Datenset-Größen, um ein Warehouse für Ihre Analyse auszuwählen. Der Anbieter kann jedoch mithilfe der API explizit eine Warehouse-Größe auswählen.
Verbrauchende können die Größe und den Typ der Warehouses begrenzen, die dem Anbieter zur Verfügung stehen, wenn eine bestimmte Vorlage ausgeführt wird. Eine Begrenzung der Warehouse-Größen ist nur über die APIund nicht die UI möglich.
Vom Anbieter durchgeführte Analysen implementieren¶
Wichtig
Wenn sich der Verbraucher und der Anbieter in unterschiedlichen Cloud-Regionen befinden, müssen Sie die Cloud-übergreifende automatische Ausführung in beiden Konten und für beide Clean Rooms aktivieren.
Hier sind die Schritte, die Sie unternehmen müssen, um eine vom Anbieter durchgeführte Analyse in einem neuen Clean Room zu ermöglichen:
Der Anbieter erstellt und konfiguriert einen Clean Room, indem er eine der unterstützten Vorlagen verwendet.
Im Schritt Share Clean Room der Clean Room-Konfiguration aktiviert der Anbieter Enable run analysis & query neben dem eigenen Konto, um alle Vorlagen in diesem Clean Room auszuführen, die Anbieter unterstützen.
Diese Einstellung kann nicht mehr geändert werden, nachdem ein Clean Room erstellt wurde. Wenn Sie die Berechtigung für ein bestimmtes Konto zum Ausführen von Abfragen in einem veröffentlichten Clean Room ändern möchten, müssen Sie den Clean Room löschen und einen neuen erstellen.
Verbrauchende treten bei und konfigurieren den Clean Room als normal für alle Vorlagen im Clean Room, einschließlich aller Vorlagen, die Anbieteranalysen unterstützen. Wenn Verbrauchende nicht möchten, dass ein Anbieter eine bestimmte Vorlage ausführt, können sie die erforderlichen Details für diese Vorlage weglassen.
Wenn Verbrauchende dem Clean Room beitreten, werden sie vor dem Beitritt gewarnt, dass die vom Anbieter durchgeführte Analyse für diesen Clean Room aktiviert ist.
Verbrauchende können Abfragen ausführen, sobald der Clean Room verknüpft ist, aber es gibt eine Verzögerung von bis zu 30 Minuten, bevor der Anbieter die Vorlage ausführen kann. Diese Setup-Verzögerung tritt nur beim ersten Verknüpfungsschritt auf. Wenn der Anbieter später weitere vom Anbieter ausgeführte Vorlagen hinzufügt, kann der Anbieter diese ausführen, sobald die Verbrauchenden ihren Clean Room für diese Vorlage konfiguriert haben.
Der Clean Room ist jetzt für beides verfügbar: für:ref:
vom Anbieter ausgeführte <label-web_app_provider_run>(nach der anfänglichen Verzögerung bei der Einrichtung) und von Verbrauchenden ausgeführte Analysen (keine Verzögerung).Den Verbrauchenden werden alle Analysen in diesem Clean Room in Rechnung gestellt, unabhängig davon, ob sie vom Anbieter oder von Verbrauchenden ausgeführt wurden.
Der Anbieter kann sowohl die vom Anbieter als auch von Verbrauchenden in einem Clean Room durchgeführte Analyse aktivieren und deaktivieren, indem er die entsprechenden API-Aufrufe aktiviert.
Jedes Mal, wenn der Anbieter die Einstellung für die vom Anbieter durchgeführte Analyse ändert, muss der Clean Room von allen Verbrauchenden neu installiert werden, damit die Änderung wirksam wird. Da es schwierig sein kann, alle Teilnehmenden zur Neuinstallation eines Clean Rooms zu zwingen, ist es zuverlässiger, wenn der Anbieter einen veröffentlichten, freigegebenen Clean Room löscht, wenn er die Analyseberechtigungen ändert, und dann einen neuen Clean Room mit den gewünschten Berechtigungen erstellt.
Wichtig
Alle vom Anbieter ausgeführten Vorlagen erfordern Spaltennamen oder Aliasse für alle Spalten, die in den Ergebnissen generiert werden. Wenn eine Spalte eine Aggregationsfunktion ist (SUM(*)) oder eine kundenspezifisch Funktion aufruft (cleanroom.my_function(p.hashed_email)), müssen Sie explizit einen Alias für den Spaltennamen angeben: SELECT SUM(*) AS TOTAL FROM mydb.mysch.T;
Im Folgenden finden Sie den allgemeinen Ablauf für die Einrichtung eines neuen Clean Room, der vom Anbieter durchgeführte Analysen ermöglicht:
Anbieter
Erstellen und konfigurieren Sie Ihren Clean Room und Ihre Daten und Richtlinien auf die übliche Weise.
Fügen Sie Verbraucher auf die übliche Weise hinzu.
Aktivieren Sie vom Anbieter durchgeführte Analysen für bestimmte Verbraucherkonten im Clean Room, indem Sie
provider.enable_provider_run_analysisaufrufen. Rufen Sie diese Prozedur erst auf, nachdem Sie Verbrauchende zu einem Clean Room hinzugefügt haben, aber bevor Verbrauchende den Clean Room installieren. Jedes Verbraucherkonto muss diese Anfrage separat genehmigen, da die entsprechenden Daten sonst für vom Anbieter durchgeführte Analysen in diesem Clean Room nicht zugänglich sind.Veröffentlichen Sie den Clean Room.
Teilen Sie Ihren Verbrauchern mit, dass der Clean Room zur Verfügung steht, den Namen des Clean Room und die Vorlagen, die Sie im Clean Room ausführen möchten.
Verbraucher
Installieren Sie den Clean Room und verknüpfen Sie Ihre Daten auf die herkömmliche Art.
Legen Sie Verknüpfungs- und Spaltenrichtlinien für Ihre Daten fest. Wenn Sie nicht beide Richtlinien in einem Clean Room festlegen, kann der Anbieter keine Vorlage mit Ihren Daten ausführen. Das ist bei Analysen, die von Verbrauchenden ausgeführt werden, anders: Das vollständige Fehlen einer Richtlinie bedeutet hier, dass alle Spalten für diesen Richtlinientyp zugelassen sind.
Erlauben Sie Anbieteranalysen für bestimmte Vorlagen im Clean Room, indem Sie entweder
consumer.enable_templates_for_provider_run(für mehrere Vorlagen) oderconsumer.approve_template(für eine Vorlage) aufrufen.
Wenn der Anbieter eine Vorlage ändert, nachdem sie von Verbrauchenden genehmigt wurde, müssen die Verbrauchenden die Vorlage erneut genehmigen. Bis zur erneuten Genehmigung der Vorlage wird die alte zwischengespeicherte Version der genehmigten Vorlage vom Anbieter ausgeführt.
(*Optional) Vom Anbieter durchgeführte Analysen finden im Konto der Verbrauchenden statt und werden den Verbrauchenden in Rechnung gestellt. Wenn Sie den Warehouse-Typ oder die Größen, die einem Anbieter bei der Ausführung einer Vorlage zur Verfügung stehen, begrenzen möchten, rufen Sie
consumer.set_provider_run_configurationauf.Teilen Sie dem Anbieter mit, dass Sie den Clean Room installiert und die vom Anbieter durchgeführten Analysen genehmigt haben.
Anbieter
Nachdem der Verbraucher den Clean Room installiert hat, müssen Sie Ihren Analysen den Zugriff auf Verbraucherdaten ermöglichen, indem Sie die Datenfreigabe zwischen Verbraucher- und Anbieterkonto aktivieren. Der Prozess hierfür hängt davon ab, ob sich Anbieter und Verbraucher in derselben Cloudregion oder in verschiedenen Cloudregionen befinden:
Wenn sich Anbieter und Verbraucher in derselben Cloudregion befinden, ruft der Anbieter
provider.mount_request_logs_for_all_consumersauf. Wenn ein neues Verbraucherkonto den Clean Room später installiert und Sie dessen Daten in dieser Vorlage verwenden möchten, müssen Sie diese Prozedur erneut ausführen, um auf diese Daten zugreifen zu können.Wenn sich Anbieter und Verbraucher in verschiedenen Cloudregionen befinden, müssen Anbieter und Verbraucher die Cloud-übergreifende automatische Ausführung aktivieren.
Führen Sie die Analyse aus, indem Sie
provider.submit_analysis_requestmit dem Namen der Vorlage, den Tabellennamen und den Argumenten der Vorlage aufrufen. Sie können optional eine Größe und einen Typ des Warehouse angeben, wie weiter unten unter diesem Thema gezeigt.Speichern Sie die Antwort-ID, die erforderlich ist, um den Status und die Ergebnisse der Analyse zu überprüfen.
Überprüfen Sie den Status der Analyse, indem Sie
provider.check_analysis_statusaufrufen. Wenn der Status alsCOMPLETEDgemeldet wird, rufen Sieprovider.get_analysis_resultauf, um die Analyseergebnisse abzurufen.
Tipp
Wenn Sie die Einstellung für die vom Anbieter durchgeführte Analyse für Ihren Clean Room ändern, müssen Sie den Clean Room deinstallieren und dann neu installieren, damit die Änderung wirksam wird.
Festlegen von Warehouse-Beschränkungen und Auswählen eines Warehouse-Typs
Hier erfahren Sie, wie Verbrauchende eine Beschränkung der Warehouse-Größe und des Typ festlegen und wie ein Anbieter ein Warehouse auswählt, wenn er eine Analyse durchführt:
Verbrauchende rufen
consumer.set_provider_run_configurationauf und geben an, welche Warehouse-Größen und -Typen ein Anbieter für eine bestimmte Vorlage verwenden kann.CALL samooha_by_snowflake_local_db.consumer.set_provider_run_configuration( $cleanroom_name, { $template1: { 'warehouse_type': 'STANDARD', 'warehouse_size': ['MEDIUM', 'LARGE']} });
Der Anbieter ruft auf
provider.view_warehouse_sizes_for_templateauf, um zu sehen, welche Warehouse-Größen und -Typen für vom Anbieter durchgeführte Analysen für diese Vorlage zulässig sind.CALL samooha_by_snowflake_local_db.provider.view_warehouse_sizes_for_template( $cleanroom_name, $template_name, $consumer_account_loc );
Der Anbieter gibt in seiner Analyseausführungsanfrage an, welche Größe und welcher Typ des Warehouse verwendet werden soll. Ein Anbieter kann nur Warehouse-Größen und -Typen angeben, die Verbrauchende für diese Vorlage zulassen.
CALL samooha_by_snowflake_local_db.provider.submit_analysis_request( $cleanroom_name, $consumer_locator_id, $template1, ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'], ['SAMOOHA_SAMPLE_DATABASE.DEMO.CUSTOMERS'], object_construct( 'dimensions', ['c.REGION_CODE'], 'measure_type', ['AVG'], 'measure_column', ['c.DAYS_ACTIVE'], 'warehouse_type', 'STANDARD', -- Any other value would cause the request to fail. 'warehouse_size', 'LARGE' -- Only MEDIUM and LARGE supported. ) );
Beispielcode installieren und ausführen
Sie können ein komplettes laufendes Beispiel eines Clean Room herunterladen und installieren, das eine vom Anbieter durchgeführte Analyse ermöglicht und ausführt. Um dieses Beispiel auszuführen, benötigen Sie zwei Snowflake Konten in derselben Organisation und Cloud-Hosting-Region mit der installierten Clean Room-Umgebung.
Installieren Sie das Notizbuch sowohl in Ihren Anbieter- als auch in Ihren Verbraucherkonten.
Um ein Notizbuch hochzuladen, gehen Sie wie folgt vor:
Wählen Sie im Navigationsmenü die Option Projects » Notebooks aus.
Wählen Sie + Notebook » Import .ipynb file aus.
Wählen Sie die heruntergeladene .ipynb-Datei aus.
Benennen Sie die Datei wie gewünscht, und wählen Sie eine Datenbank und ein Schema.
Behalten Sie das Standard-Warehouse
APP_WHbei.Wählen Sie Create aus.
Öffnen Sie das Notebook im Anbieterkonto und füllen Sie den Anbieterteil aus, um den Clean Room zu erstellen.
Öffnen Sie das Notebook im Verbraucherkonto und füllen Sie den Verbraucherteil aus, um den Clean Room zu installieren und zu konfigurieren und die Vorlage auszuführen.
Tipp
Die folgenden Prozeduren regeln, welche Seite eine Analyse im Clean Room durchführen kann:
Von Verbrauchenden durchgeführte Analyse (standardmäßig erlaubt): Änderungen werden sofort übernommen.
provider.enable_consumer_run_analysis
provider.disable_consumer_run_analysis
Von Anbieter durchgeführte Analyse (standardmäßig deaktiviert): Änderungen erfordern eine Neuinstallation durch die Verbrauchenden.
provider.enable_provider_run_analysis(erfordert die Zustimmung des Verbrauchers durch den Aufruf von consumer.enable_templates_for_provider_run)
provider.disable_provider_run_analysis