Grundlegendes für die Zusammenarbeit mit mehreren Parteien

Einführung

Dieses Thema führt Sie durch die Schritte zum Erstellen einer grundlegenden Zusammenarbeit mit mehreren Parteien. Es zeigt, wie Sie Vorlagen und Datenangebote registrieren, wie Sie der ersten Version einer Zusammenarbeit Daten hinzufügen und wie Teilnehmer nach der Erstellung der Zusammenarbeit Ressourcen hinzufügen können. Außerdem wird demonstriert, wie Sie Abfragen unter Verwendung von Vorlagen und Datenressourcen in der Zusammenarbeit ausführen können.

Grundlegender Workflow für die Zusammenarbeit im Clean Room

Hier ist ein grundlegendes Szenario für die Zusammenarbeit mit mehreren Parteien im Clean Room:

  1. Der Eigentümer der Zusammenarbeit kann alle Vorlagen oder Datenangebote registrieren, die in der anfänglichen Konfiguration der Zusammenarbeit vorhanden sein sollen.

  2. Der Eigentümer bittet optional alle vorgesehenen Teilnehmenden, Vorlagen oder Datenangebote zu registrieren, die in der Erstkonfiguration der Zusammenarbeit angezeigt werden sollen. Die Teilnehmenden geben dann die Ressourcen-IDs der registrierten Objekte an den Eigentümer weiter.

  3. Der Eigentümer erstellt eine Zusammenarbeit. Die Zusammenarbeit wird durch eine Zusammenarbeits-YAML-Spezifikation definiert, die die Teilnehmenden, deren Rollen und alle Ressourcen auflistet, die in der ersten Version der Zusammenarbeit vorhanden sein sollen.

    • Wenn eine Zusammenarbeit erstellt wird, wird der Satz von Teilnehmern und deren Zusammenarbeitsrollen festgelegt.

    • Zusätzliche Ressourcen können von Teilnehmern nach der Erstellung der Zusammenarbeit hinzugefügt werden, wenn ihre Zusammenarbeitsrolle dies zulässt.

    • Wenn Ihre Zusammenarbeit Daten mit Benutzern in anderen Cloudhosting-Regionen austauscht, muss der Bereitstellende die Cloud-übergreifende automatische Ausführung für ihr Konto aktivieren.

  4. Teilnehmende überprüfen die Zusammenarbeit und treten ihr bei.

  5. Teilnehmer können dann optional :ref:` zusätzliche Ressourcen mit der Zusammenarbeit verknüpfen<label-dcr_collaboration_add_resources_to_collab>`, wie z. B. Vorlagen und Datenangebote, abhängig von ihren Rollen für die Zusammenarbeit. Zusätzliche Ressourcen können jederzeit zu einer Zusammenarbeit hinzugefügt werden.

  6. Analyseausführende können alle Vorlagen ausführen, die ihnen in der Zusammenarbeit zugewiesen sind, wobei sie alle Daten verwenden können, die ihnen in der Zusammenarbeit zur Verfügung stehen. Der Analyseausführende trägt die Kosten der Analyse. Vorlagen können so gestaltet werden, dass sie Abfrageergebnisse entweder in der Antwort zurückgeben oder die Ergebnisse für den Aufrufer oder einen anderen Teilnehmenden aktivieren.

In den folgenden Abschnitten werden die Details zu jedem dieser Schritte beschrieben.

Erstellen einer Zusammenarbeit

Um eine Zusammenarbeit zu erstellen, entwerfen Sie eine Zusammenarbeitsspezifikation, die alle Teilnehmenden und deren Zusammenarbeitsrollen definiert.

Wenn Sie Ressourcen in einer Zusammenarbeit zur Verfügung stellen möchten, sobald diese erstellt wird, muss der Eigentümer der Zusammenarbeit diese Ressourcen registrieren und verknüpfen, bevor er die Zusammenarbeit erstellen, und die Ressourcen-IDs in die Zusammenarbeitsspezifikation aufnehmen.

Wenn der Eigentümer erwartet, dass Ressourcen von Teilnehmenden verwendet werden, kann der Eigentümer diese Benutzenden auch auffordern, ihre Ressourcen zu registrieren und dem Eigentümer die Ressourcen-IDs zu nennen, die in die Zusammenarbeitsspezifikation aufgenommen werden sollen. Der Eigentümer gibt in der Zusammenarbeitsspezifikation auch an, dass jetzt keine Ressourcen verknüpft sind, aber in Zukunft verknüpft werden können.

Der Eigentümer ruft dann INITIALIZE auf, um mit der Erstellung der Zusammenarbeit zu beginnen. Standardmäßig verbindet INITIALIZE auch automatisch den Eigentümer mit der Zusammenarbeit. Dies ist ein asynchroner Prozess, daher muss der Eigentümer GET_STATUS so lange aufgerufen, bis der Status JOINED lautet.

Der folgende -Ausschnitt zeigt das Erstellen und Beitreten zu einer Zusammenarbeit.

 1  CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.INITIALIZE(
 2    $$
 3    api_version: 2.0.0
 4    spec_type: collaboration
 5    name: my_first_collaboration
 6    owner: alice
 7    collaborator_identifier_aliases:
 8      alice: example_com.acct_abc
 9      bob: another_example.acct_xyz
10    analysis_runners:
11      bob:
12        data_providers:
13          alice:
14            data_offerings: [] -- alice has not provided data to bob, but can do so in the future.
15          bob:
16            data_offerings: [customers_v1]  -- bob has registered a data offering and made it available to himself.
17        templates: []   -- No templates available yet for bob.
18      alice:
19        data_providers:
20          alice:
21            data_offerings: []
22          bob:
23            data_offerings: []
24        templates: []
25    $$,
26    'APP_WH'            -- Use this warehouse for initialization.
27  );                    --  XSMALL or SMALL warehouses are recommended for initialization.
28  SET collaboration_name = 'my_first_collaboration';
29
30  -- INITIALIZE automatically joins the owner. Check status until JOINED.
31  CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.GET_STATUS($collaboration_name);
32
33  -- Collaboration is visible here when it's joined.
34  CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_COLLABORATIONS();

Anmerkungen zum Skript:

  • Die Zusammenarbeit besteht aus zwei Teilnehmern mit den Aliassen alice und bob. Sie können eine vollständige Datenfreigabe-ID überall dort verwenden, wo Sie einen Alias verwenden, aber das ist viel weniger benutzerfreundlich.

  • alice ist der Eigentümer.

  • Beide, alice und bob sind Analysis Runner.

  • Beide, alice und bob sind Datenanbieter füreinander.

  • Wenn Sie ein Datenanbieter sind, müssen Sie das data_offerings-Feld hinzufügen. Dieses Feld kann ausgefüllt oder leer sein und bedeutet, dass es derzeit keine Datenangebote gibt, aber diese können später hinzugefügt werden.

  • alice stellt keine Daten für bob oder sich selbst zur Verfügung, kann dies aber später tun (Zeilen 14, 22).

  • bob hat bereits ein Datenangebot registriert und es sich selbst in der ersten Zusammenarbeit zur Verfügung gestellt (Zeile 16).

  • bob stellt keine Daten für alice zur Verfügung, kann dies aber später tun (Zeile 24).

  • Weder alice noch bob haben noch Vorlagen zur Verfügung, die aber später zugewiesen werden können (Zeilen 18, 25). Beachten Sie, dass das Feld templates für einen Analysis Runner optional ist. Wenn Sie dieses Feld während der Initialisierung weglassen, können Teilnehmer diesem Analysis Runner später immer noch Vorlagen zuweisen.

Überprüfen und Beitreten zu einer Zusammenarbeit

Sie müssen einer Zusammenarbeit beitreten, um Ressourcen gemeinsam zu nutzen und Analysen in der Zusammenarbeit auszuführen.

  • Der Erstellende tritt automatisch bei, wenn INITIALIZE aufgerufen wird, sofern auto_join_warehouse angegeben ist. Ist auto_join_warehouse nicht angegeben, ruft der Erstellende JOIN auf, nachdem INITIALIZE abgeschlossen wurde.

  • Nicht Erstellende rufen REVIEW und dann JOIN auf.

    • REVIEW gibt einen Überblick über die Zusammenarbeit und ihre Ressourcen zurück. Sie können REVIEW nur einmal aufrufen.

    • JOIN installiert den Clean Room für die Zusammenarbeit in Ihrem Konto und tritt der Zusammenarbeit bei.

Sowohl INITIALIZE als auch JOIN sind asynchrone Prozeduren, die einige Minuten dauern. Sie müssen GET_STATUS aufrufen, um zu sehen, wann jeder Schritt abgeschlossen ist.

Wichtig

Wenn sich die Cloudhosting-Region Ihres Kontos von der des Zusammenarbeitseigentümers unterscheidet, löst REVIEW zusätzliche asynchrone Einrichtungsschritte aus. Rufen Sie REVIEW wiederholt auf, bis eine Erfolgreich-Antwort zurückgegeben wird, die anzeigt, dass das Setup abgeschlossen ist.

Das Verknüpfen ist ein asynchroner Prozess. Rufen Sie GET_STATUS auf, um zu sehen, wann der Status als JOINED aufgeführt ist.

Analyse ausführen

Wenn Sie die Rolle des Analysis Runners in einer Zusammenarbeit haben, können Sie Analysen auf Datenquellen ausführen, die für Sie in der Zusammenarbeit freigegeben sind.

Eine Zusammenarbeit unterstützt zwei Arten von Abfragen:

  • Vorlagenanalysen. Diese Abfragen führen eine Vorlage aus (eine vorlagenbasierte JinjaSQL-Anweisung), die mit der Zusammenarbeit verknüpft sind. Bei Vorlagen kann es sich entweder um Analysevorlagen handeln, die Ihnen Ergebnisse sofort zurückgeben, oder um Aktivierungsvorlagen, die Ergebnisse im Snowflake-Konto eines bestimmten Teilnehmers speichern.

  • Freiform SQL-Abfragen. Wenn von einem Datenanbieter zugelassen, können Sie mit SQL auf bestimmte Datenangebote zugreifen, wenn Sie sich mit Ihren Teilnehmer-Anmeldeinformationen angemeldet haben. Sie führen SQL-Abfragen direkt aus – ohne eine Zusammenarbeits-API-Prozedur aufzurufen –, indem Sie auf den vollständig qualifizierten Anzeigenamen zugreifen, der von der Zusammenarbeit bereitgestellt wird.

Der Analyseausführende trägt die Kosten für die Durchführung einer Analyse.

Die Zusammenarbeitsspezifikation bestimmt, ob Sie eine Vorlage ausführen, Ergebnisse aktivieren oder Freiform-SQL-Abfragen ausführen können. Ihre Möglichkeiten sowie die Daten und Vorlagen, die Sie verwenden können, sind in der Spezifikation für die Zusammenarbeit beschrieben.

Bemerkung

Spalten aus den Datenquellen haben möglicherweise neue Namen, wenn sie für die Vorlage oder den Benutzenden zugänglich sind. Unter Umbenennen der Quellspalte erfahren Sie mehr darüber, wie und wann Quellspalten umbenannt werden. Vorlagen und vom Benutzenden bereitgestellte Argumente (z. B. der Name einer Verknüpfungsspalte) sollten den endgültigen Namen und nicht den ursprünglichen Namen verwenden, wenn die Spalte umbenannt wird.

Erfahren Sie mehr über alle diese Analysetypen in den folgenden Abschnitten.

Ausführen einer Analyse aus einer Vorlage

Um eine Analyse aus einer Vorlage auszuführen, zeigen Sie die Liste der Vorlagen am, die Sie ausführen können, zeigen Sie die Liste der Datenangebote an, die Sie verwenden können, und rufen Sie dann RUN mit Ihren Werten auf, entweder als einzelne Parameter oder als Analysespezifikation im YAML-Format:

Tabellen, die Sie im Feld source_tables in der Ausführungskonfiguration angeben, befüllen den source_table-Parameter in der Vorlage. Der my_table-Parameter der Vorlage wird nur befüllt bzw. verwendet, wenn Sie die Standard Edition von Snowflake mit Ihren eigenen Daten nutzen.

Bemerkung

Die Installation von Ressourcen ist asynchron. Wenn eine Vorlage gerade installiert wurde, kann es eine kurze Zeit dauern, bis sie ausführungsbereit ist. Wenn die Vorlage ein Code-Bundle enthält, kann es etwas länger dauern, bis die Vorlage verfügbar ist. Erfahren Sie, wie Sie feststellen können, ob ein Code-Bundle verfügbar ist.

Das folgende Beispiel listet Datenangebote und Vorlagen auf, auf die der Benutzer zugreifen kann, und führt anschließend eine Analyse mit der sales_join_template-Vorlage aus (von dem angenommen wird, dass es von VIEW_TEMPLATES aufgelistet wird), wobei fünf benannte Argumente an die Vorlage übergeben werden.

-- See which data offerings are available.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_DATA_OFFERINGS($collaboration_name);

-- See which templates you can run.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_TEMPLATES($collaboration_name);

-- Pass in the arguments in analysis YAML format.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.RUN(
  $collaboration_name,
  $$
    api_version: 2.0.0
    spec_type: analysis
    name: My_analysis
    description: Sales results Q2 2025
    template: sales_join_template

    template_configuration:
      view_mappings:
        source_tables:
          -  user1_alias.data_offering_v1.table_1
          -  user2_alias.another_data_offering_v1.table_2
      arguments:                                            -- The template defines conv_purchase_id and the other four arguments.
         conv_purchase_id: PURCHASE_ID                      -- You must examine a template to see which arguments it supports.
         conv_purchase_amount: PURCHASE_AMOUNT
         publisher_impression_id: IMPRESSION_ID
         publisher_campaign_name: CAMPAIGN_NAME
         publisher_device_type: DEVICE_TYPE
  $$ );

Aktivieren und Ausführen von Freiform-SQL-Abfragen für Ihre Daten

Ein Datenanbieter kann einer Analyse die Berechtigung gewähren, beliebige SQL-Abfragen auf ihre Datenangebote auszuführen. Das bedeutet, dass der Analysis Runner eine beliebige SQL-Abfrage direkt auf dem Datenangebot ausführen kann, statt eine Vorlage aufzurufen.

Weitere Informationen zu Freiform-SQL-Abfragen finden Sie unter SQL-Freiformabfragen.

Ausführen einer Analyse mit Ihren eigenen Daten, wenn Sie die Standard Edition verwenden

Wenn Sie die Standard Edition verwenden, können Sie eine Analyse mit der Standardmethode ausführen. Sie können jedoch keine Daten mit der Zusammenarbeit verknüpfen, um sie für andere Benutzer freizugeben. Die einzige Möglichkeit, eigene Datensets an eine Vorlage zu übergeben, ist die Verwendung der hier beschriebenen Technik.

So verwenden Sie Ihre eigenen Daten für eine Zusammenarbeit auf der Snowflake Standard Edition:

  1. Registrieren Sie Ihr Datenangebot, indem Sie REGISTER_DATA_OFFERING aufrufen.

  2. Rufen Sie LINK_LOCAL_DATA_OFFERING auf, um Ihre Daten mit der Zusammenarbeit zu verknüpfen, damit Sie sie verwenden können. Kein anderer Teilnehmende kann lokal verknüpfte Daten sehen oder darauf zugreifen.

  3. Verwenden Sie die Datenangebots-ID, wenn Siel RUN aufrufen.

  • Wenn Sie die parametrisierte Version von RUN verwenden, übergeben Sie die Datenangebots-IDs an den local_template_view_names-Parameter weiter.

  • Wenn Sie die YAML-Version vonRUN verwenden, stellen Sie Ihre Datenangebots-IDs im local_view_mappings.my_tables-Abschnitt der Anforderung bereit

  • Wenn Sie die parametrisierte Version von RUN verwenden, übergeben Sie die Datenangebots-IDs an den local_template_view_names-Parameter weiter.

Tipp

local_template_view_names und``local_view_mappings.my_tables`` füllen den my_table-Parameter in der Vorlage aus.

Das folgende Beispiel zeigt, wie Sie eine Vorlage unter Verwendung der Ausführungsprozedurversion mit dem YAML-Format ausführen. Dieses Beispiel schließt das Feld my_tables ein, das durch Aufrufen von LINK_LOCAL_DATA_OFFERING ausgefüllt wird.

-- See what data offerings are available. Your own local data will be listed here as well.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.VIEW_DATA_OFFERINGS($collaboration_name);

-- Pass in the arguments in analysis YAML format.
CALL SAMOOHA_BY_SNOWFLAKE_LOCAL_DB.COLLABORATION.RUN(
  $collaboration_name,
  $$
    api_version: 2.0.0
    spec_type: analysis
    name: my_analysis
    description: Cross-purchase results for Q4 2025
    template: mytemplate_v1

    template_configuration:
      view_mappings:
        source_tables:
          - ADVERTISER1.ADVERTISER_DATA_V1.CUSTOMERS
          - PUBLISHER.ADVERTISER_DATA_V1.CUSTOMERS
      local_view_mappings:
        my_tables:
          - PARTNER.MY_DATA_V1.MY_CUSTOMERS # Populate my_table array with my own table.
      arguments:  # Template arguments, as name: value pairs
         conv_purchase_id: PURCHASE_ID
         conv_purchase_amount: PURCHASE_AMOUNT
         publisher_impression_id: IMPRESSION_ID
         publisher_campaign_name: CAMPAIGN_NAME
         publisher_device_type: DEVICE_TYPE
  $$ );

Ergebnisse aktivieren

Wenn der Datenanbieter und die Zusammenarbeitsspezifikation dies zulassen, können Sie die Analyseergebnisse in Ihrem eigenen Snowflake-Konto oder im Snowflake-Konto eines bestimmten Teilnehmers speichern. Eine Vorlage aktiviert entweder die Ergebnisse oder gibt die Ergebnisse sofort zurück, nicht beides.

Weitere Informationen über die Aktivierung erhalten Sie unter Aktivieren von Abfrageergebnissen.

Zusammenarbeit verlassen oder löschen

  • 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.

  • Zusammenarbeitseigentümer 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.

Beide Prozesse sind 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.

Beispiele

Die folgenden SQL-Beispiele zeigen, wie Sie eine grundlegende Zusammenarbeit erstellen und ausführen:

Beispiel für die Zusammenarbeit zwischen zwei Parteien

Das folgende Beispiel zeigt eine Zwei-Parteien-Zusammenarbeit: Eine Partei (mit dem Namen „alice“) ist die Erstellerin der Zusammenarbeit, Datenanbieterin für sich selbst und „bob“ sowie Analysis Runner. „bob“ ist Datenanbieter für sich selbst und „alice“ und fungiert ebenfalls als Analysis Runner.

Das Beispiel veranschaulicht die folgenden Aktionen:

  • Erstellen einer Zusammenarbeit

  • Registrieren von Vorlagen und Datenangeboten

  • Hinzufügen einer Vorlage und eines Datenangebots zum Zeitpunkt der Erstellung der Zusammenarbeit.

  • Beitreten zu einer Zusammenarbeit

  • Verknüpfen zusätzlicher Ressourcen mit einer bestehenden Zusammenarbeit

  • Ausführen einer Analyse

Um dieses Beispiel auszuführen, müssen Sie über zwei separate Konten mit installierten Snowflake Data Clean Rooms verfügen.

Sie können die Dateien entweder herunterladen und in Ihr Snowflake-Konto hochladen oder den Beispielcode kopieren und in die Arbeitsblätter von zwei separaten Konten einfügen, indem Sie die Snowsight verwenden.

Laden Sie die SQL-Quelldateien herunter, und laden Sie diese dann in zwei separate Konten hoch, für die Snowflake Data Clean Rooms installiert ist:

Beispiel für die Zusammenarbeit mit einer Seite

Dieses Beispiel zeigt, wie Sie eine Zusammenarbeit erstellen und verwenden, wenn Sie nur ein einziges Konto zum Testen haben.

Das Beispiel zeigt, wie Sie eine Zusammenarbeit mit einem Datenangebot und einer Vorlage erstellen, dann ein weiteres Datenangebot und eine Vorlage hinzufügen, nachdem die Zusammenarbeit erstellt wurde, und Analysen durchführen.

Sie können entweder die Datei herunterladen und in Ihr Snowflake-Konto hochladen oder den Beispielcode kopieren und in ein Arbeitsblatt einfügen, indem Sie Snowsight verwenden.

Laden Sie die Quell-SQL-Datei herunter, und laden Sie sie dann in ein Snowflake-Konto hoch, in dem|samooha-clean-room-plural| installiert ist: