Aktivieren von Abfrageergebnissen

Überblick über die Aktivierung

Ein Teilnehmender kann die Ergebnisse von Vorlagen in einem Prozess namens Aktivierung außerhalb des Clean Rooms senden. Die Vorlage muss die Aktivierung unterstützen, und alle Datenanbietenden müssen die Aktivierung auf Spaltenebene in der eigenen Datenangebotsspezifikation genehmigen.

Die Aktivierung wird mit einer speziellen Aktivierungsvorlage implementiert. Eine Aktivierungsvorlage gibt die Ergebnisse nicht an den Abfrageausführenden zurück, sondern schreibt sie stattdessen in eine Ergebnistabelle im Konto des Zielbenutzenden.

Bemerkung

Für das Aktivieren von Ergebnissen für ein anderes Snowflake-Konto ist Snowflake Enterprise Edition oder höher erforderlich.

Implementierung der Aktivierung

Hier sind die Schritte zur Implementierung der Aktivierung:

  1. Sie müssen eine Rolle verwenden, die über die Berechtigung REGISTER DATA OFFERING verfügt, um einer Zusammenarbeit beizutreten, bei der Sie ein Analyseausführender sind und die Spezifikation der Zusammenarbeit ein Feld activation_destinations enthält.

  2. Stellen Sie sicher, dass alle Spezifikationen richtig konfiguriert sind:

    Die Datenangebotsspezifikation für die Tabelle mit der aktivierten Spalte muss activation_allowed: TRUE für diese Spalte festlegen:

     api_version: 2.0.0
     spec_type: data_offering
     name: 2025_orders
     version: 2025_01_01_v1
     description: Activating Cleveland sales results for 2025
    
     datasets:
      - alias: customers
        data_object_fqn: db1.schema1.orders
        allowed_analyses: template_only
        object_class: custom
        schema_and_template_policies:
          email:
            category: join_standard
            column_type: hashed_email_sha256
            activation_allowed: TRUE
          purchase_amount:
            category: passthrough
            activation_allowed: TRUE
    
  3. Sie müssen eine Aktivierungsvorlage verwenden. Diese Vorlage speichert die Ergebnisse in einer internen Tabelle. Alle projizierten Spalten aus dieser Vorlage sind aktiviert.

    Für jede Spalte, die in der Vorlage mit angewendetem activation_policy-Filter verwendet wird, muss activation_allowed: TRUE in der Datenangebotsspezifikation festgelegt sein.

    Bemerkung

    Wenn eine Vorlage den activation_policy-Filter nicht auf eine Spalte anwendet, kann die Spalte aktiviert werden, egal ob activation_allowed: TRUE für diese Spalte in den Datenangebotsspezifikationen festgelegt ist oder nicht.

    Das folgende Beispiel zeigt eine Vorlage, bei der die Aktivierungsrichtlinie auf zwei Spalten angewendet wird, die vom Analyseausführenden bereitgestellt werden:

    BEGIN
      CREATE OR REPLACE TABLE cleanroom.activation_data_analysis_results AS
        SELECT count(*) AS ITEM_COUNT, c.status, c.age_band
        FROM IDENTIFIER({{ my_table[0] }}) AS c
        JOIN IDENTIFIER({{ source_table[0] }}) AS p
        ON {{ c_join_col | sqlsafe | activation_policy }} = {{ p_join_col | sqlsafe | activation_policy }}
        GROUP BY c.status, c.age_band
        ORDER BY c.age_band;
      RETURN 'analysis_results';
    END;
    
  4. Der Analyseausführende ruft RUN auf, um die Analyse auszuführen und die Ergebnisse zu aktivieren.

    • Wenn Sie die Aktivierung für sich selbst vornehmen, sind die Ergebnisse sofort im Konto des Aufrufenden verfügbar.

    • Bei Aktivierung für einen anderen Teilnehmenden:

      1. Der Teilnehmende ruft VIEW_ACTIVATIONS auf, bis der Status SHARED zurückgegeben wird.

        Die Aktivierung für ein anderes Konto kann bei großen Resultsets einige Zeit in Anspruch nehmen, da die Daten für das Konto des Teilnehmenden freigegeben werden müssen. Bei Teilnehmenden über Clouds hinweg kommt es aufgrund der Einstellungen für die Replikationshäufigkeit zu zusätzlichen Verzögerungen.

      2. Wenn der Status der Aktivierung SHARED lautet, ruft der Teilnehmende PROCESS_ACTIVATION auf, um die Ergebnisse an sein Konto zu senden.

        Die Antwort auf PROCESS_ACTIVATION schließt die Tabellen- und Segmentnamen mit ein. Hierdurch wird der Aktivierungsstatus auf PROCESSED festgelegt.

  5. Der Analyseausführende kann die Ergebnisse lesen, wie im nächsten Abschnitt beschrieben.

Lesen der Aktivierungsergebnisse

Wenn die Aktivierung abgeschlossen ist, wie im vorherigen Abschnitt beschrieben, werden die Ergebnisse in der Tabelle collaboration_name.activation.segment_records in Ihrem Konto gespeichert.

Die Tabelle hat das folgende Schema:

Spalte

Beschreibung

BATCH_ID

UID für den Batch-Job, der verarbeitet wurde.

SEGMENT_NAME

Name der Aktivierungsnutzlast.

TEMPLATE_ID

ID der für die Aktivierung verwendeten Vorlage.

SHARED_BY

Name der teilnehmenden Person, die die Daten aktiviert hat.

UPDATED_ON

Zeitstempel für den Zeitpunkt, zu dem der Batch erfolgreich verarbeitet wurde.

RECORDS

Nutzlast von aktivierten IDs und Attributen aus der Aktivierungsvorlage.

Bemerkung

Wenn Teilnehmend den Clean Room verlassen, verlieren Sie den Zugriff auf die Anwendung, einschließlich der Tabelle, die die aktivierten Ergebnisse enthält.

Um die Ergebnisse der Aktivierung abzurufen, führen Sie den folgenden SQL-Befehl aus und filtern Sie optional nach Segmentnamen:

SELECT *
  FROM <collaboration_name>.activation.segment_records
    [WHERE segment_name = '<segment_name>'];