Datenangebote

Ein Datenangebot ist eine Menge von einer oder mehreren Ansichten (Datensets), die im Rahmen einer Zusammenarbeit mit bestimmten Analysis Runnern geteilt werden. Sie können Daten mit Analysis Runnern teilen, für die Sie in der Zusammenarbeitsspezifikation als Datenanbieter definiert sind.

Ein Datenangebot ist eine Live-Ansicht der Daten und kein Snapshot der Daten zum Zeitpunkt der Registrierung des Datenangebots. Alle Snowflake-Richtlinien, die auf die Quelldaten angewendet werden, sind im Datenangebot aktiv.

Wenn Sie ein Datenangebot registrieren, erstellt Snowflake eine Ansicht für jede in der Spezifikation des Datenangebots aufgeführte Datenquelle. Die Ansicht enthält „nur“ die Spalten, die in der Spezifikation des Datenangebots aufgeführt sind. Bestimmte Spalten können – abhängig von ihrer Kategorie – in diesem Schritt umbenannt werden.

Wenn Sie ein Datenangebot mit einer Zusammenarbeit verknüpfen, erstellt Snowflake außerdem eine Kopie der registrierten Ansicht und beschränkt den Zugriff auf die Ansicht auf bestimmte Analyse-Runner gemäß Spezifikation für die Zusammenarbeit.

Wichtig

Wenn Sie die zugrunde liegenden Tabellen verschieben, umbenennen oder die Zugriffsberechtigungen für die Tabellen ändern, wird das Datenangebot über alle zuvor registrierten Links nicht mehr verwendbar.

Wenn Sie die Snowflake Standard Edition verwenden, können Sie Daten nicht über einen Data Clean Room mit Durchsetzung von Richtlinien freigeben. Daher sind Sie nicht in der Lage, Daten mit anderen Parteien zu teilen oder die in den Angeboten angegebenen Daten-Clean-Room-Richtlinien zu nutzen, selbst für Benutzer in Ihrem eigenen Konto. Sie können jedoch auf Datenangebote von anderen Teilnehmern zugreifen oder Ihre eigenen Daten als lokales Datenangebot ohne Richtlinien verwenden.

Anforderungen an Datenangebote:

  • Sie müssen die REFERENCE_USAGE-Berechtigung mit GRANT OPTION für alle Daten haben, die Sie freigeben möchten. Wenn Sie dies nicht tun, erhalten Sie die Fehlermeldung „Fehlende Referenznutzungsberechtigung“ wenn Sie versuchen, sich zu registrieren, der Zusammenarbeit beizutreten oder die Daten zu verknüpfen.

    GRANT REFERENCE_USAGE ON DATABASE my_database TO ROLE my_role WITH GRANT OPTION;
    
  • Sie müssen die Rolle Datenanbieter – Zusammenarbeit in einer Zusammenarbeit haben.

  • Derzeit kann nur die Kontorolle, die die Zusammenarbeit erstellt oder ihr beigetreten ist, Daten mit einer Zusammenarbeit verknüpfen oder deren Verknüpfung aufheben.

Lesen Sie weiter, um zu erfahren, wie Sie ein Datenangebot registrieren und mit einer Zusammenarbeit verknüpfen können:

Registrieren eines Datenangebots

  1. Erstellen Sie eine Datenangebotsspezifikation für Ihre Daten. Geben Sie die folgenden Details zu Ihrem Datenangebot an:

    • Das Quellobjekt für jedes Datenset in Ihrem Datenangebot.

    • Welche Spalten in jedes Datenset aufgenommen werden sollen.

    • Der Typ jeder Spalte (Join oder anderweitig), der verwendet wird, um die Clean Room-Richtlinien zu füllen. In einigen Fällen geben Sie auch das Format einzelner Spalten an.

    • Beliebige Snowflake Datenschutzrichtlinien zur Anwendung auf Spalten in Ihrem Datenangebot.

    • Wie Benutzer auf die Daten zugreifen können: nur über die Vorlage oder auch über FreiformSQL-Abfrage.

  2. Registriert das Datenangebot, indem REGISTER_DATA_OFFERING aufgerufen wird, wodurch eine Datenangebots-ID zurückgegeben wird.

    Durch diesen Schritt wird das Datenangebot verfügbar, um von jeder Rolle in Ihrem Konto, die Lesezugriff auf die Registry hat, mit einer beliebigen Zusammenarbeit verknüpft zu werden. Sie können dieselbe Datenangebots-ID zur Freigabe eines Datenangebots für mehrere Kooperationen verwenden.

Umbenennen der Quellspalte

Die Spaltennamen in einem Datenangebot können umbenannt werden, bevor sie für den Leser der Analyse offengelegt werden. Die Umbenennung hängt von den category- und``column_type``-Werten ab, die die Spalte in der :ref:` Spezifikation des Datenangebots<label-dcr_collaboration_data_yaml>` definieren, wie in dieser Tabelle beschrieben:

Spalten-category

Name der neuen Spalte

join_standard

column_type-Wert

timestamp

timestamp

join_custom, passthrough oder event_type

Der ursprüngliche Spaltenname wird verwendet.

Wenn die Spalte in der Quelltabelle beispielsweise user_email_address heißt, hängt es davon ab, wie sie in der Datenangebotsspezifikation definiert ist, unter welchem Namen sie einem Analysis Runner zur Verfügung gestellt wird.

Spezifikation des Datenangebots

Wie die Spalte referenziert wird

...
schema_and_template_policies:
  user_email_address:
    category: join_standard
    column_type: hashed_email_sha256

column_type wird für join_standard-Spalten verwendet:

SELECT HASHED_EMAIL_SHA256
FROM source_table[0];

Anwenden von Datenschutzrichtlinien auf Datenangebote

Daten, die in einem Clean Room freigegeben werden, sind auf mehrere Arten geschützt:

  • Daten, die in der Clean Room-Umgebung registriert sind, werden als sichere Ansicht erstellt, in der alle Spalten weggelassen werden, die nicht in der Spezifikation des Datenangebots aufgeführt sind.

  • Die sichere Ansicht wird nur für die in der Zusammenarbeitsspezifikation angegebenen Benutzer und Vorlagen freigegeben.

  • Sie können Ihren Daten Snowflake-Richtlinien hinzufügen, um die Verwendung ihrer Daten weiter zu verwalten.

  • Clean Room-Vorlagenrichtlinien werden ebenfalls auf Basis der Klassifizierung der Datenangebotsspalte angewendet.

Es gibt zwei Möglichkeiten, eine Snowflake-Datenschutzrichtlinie, z. B. eine Verknüpfungs-</user-guide/join-policies> oder Aggregationsrichtlinie:doc:</user-guide/aggregation-policies>, auf Ihre freigegebenen Daten anzuwenden:

Anwenden der Snowflake-Richtlinie auf Ihre Quelldaten

Alle Snowflake-Richtlinien, die auf die Quelldaten angewendet werden, gelten auch für die Datenangebotsansicht in der Zusammenarbeit.

Wenn Sie Snowflake-Richtlinien auf Ihre Quelldaten anwenden, informieren Sie die Teilnehmenden darüber, damit sie nicht unbeabsichtigt eine Abfrage ausführen, die auf einer nicht joinfähigen Spalte basiert oder die Aggregationsanforderungen nicht erfüllt. Sie können alle Snowflake-Richtlinien im description-Feld Ihres Datenangebots angeben.

Wichtig

Wenn Sie ein Datenangebot registrieren, für das Snowflake-Datenrichtlinien gelten, sollten Sie entweder eine Rolle verwenden, die diesen Richtlinien nicht unterliegt, oder die Richtlinie vorübergehend bis nach der Registrierung der Daten aussetzen.

Das liegt daran, dass Snowflake Data Clean Rooms im Rahmen des Registrierungsprozesses eine Validierungsabfrage auf der Quelltabelle ausführt. Wenn die Testabfrage keine aussagekräftigen Ergebnisse liefert, schlägt die Registrierung fehl. Einige Snowflake-Datenrichtlinien können dazu führen, dass der Test fehlschlägt. Beispielsweise hat eine Tabelle möglicherweise eine Aggregationsrichtlinie, und die Validierungsabfrage gibt nicht genügend Zeilen zurück, um die Mindestgruppengröße der Aggregationsrichtlinie zu erfüllen.

Wenden Sie die Snowflake-Richtlinie auf das Datenangebot an (nur Nutzung von Freiform-Abfragen)

Sie können Snowflake -Richtlinien auf Ihre freigegebenen Daten anwenden, wenn der Zugriff über Freigabeabfragen erfolgt, ohne sie auf die Quelldaten anzuwenden. Diese Richtlinien werden zusätzlich zu allen Snowflake-Richtlinien angewendet, die direkt auf die Quelltabelle angewendet werden.

So fügen Sie Ihren Daten Freiform-SQL-Richtlinien zu:

  1. Erstellen Sie einen Richtlinientyp, der von Collaboration Data Clean Rooms unterstützt wird.

  2. Fügen Sie die folgenden Informationen zu Ihrer Datenangebotsspezifikation hinzu:

    • Setzen Sie allowed_analyses: template_and_freeform_sql.

    • Fügen Sie einen freeform_sql_policies-Abschnitt zum Datenset-Eintrag hinzu.

    • Fügen Sie unter freeform_sql_policies die entsprechenden Abschnitte für die Richtlinientypen hinzu, in denen Sie die von Snowflake erstellten Richtlinien sowie die zugehörigen Zusammenarbeitsspalten auflisten. Folgende Richtlinientypen werden unterstützt:

      • aggregation_policy: Eine einzelne Aggregationsrichtlinie mit optionalen Entitätsschlüsseln

      • projection_policies: Ein Array von Projektionsrichtlinien, jeweils mit Spaltenbindungen.

      • join_policy: Eine einzige Verknüpfungsrichtlinie mit optionalen Spaltenbindungen.

      • masking_policies: Ein Array von Maskierungsrichtlinien, jeweils mit Spaltenbindungen.

      • row_access_policy: Eine Zugriffsrichtlinie für eine einzelne Zeile mit optionalen Spaltenbindungen.

    Die Rolle, die das Datenangebot registriert, muss die USAGE-Berechtigung für die Richtlinien haben.

Teilnehmende sehen die auf die Daten angewendeten Richtlinientypen, wenn sie COLLABORATION.VIEW_DATA_OFFERINGS aufrufen.

Sie können eine Richtlinie für mehrere Spalten in mehreren Tabellen wiederverwenden.

Beispiel:

CREATE OR REPLACE AGGREGATION POLICY my_db.public.my_agg_policy AS ()
  RETURNS AGGREGATION_CONSTRAINT ->
    AGGREGATION_CONSTRAINT(MIN_GROUP_SIZE => 5);

Snowflake Data Clean Room-Vorlagenrichtlinien

Snowflake Data Clean Rooms unterstützen zusätzlich zum Snowflake-Richtliniensystem auch ein eigenes Richtliniensystem. Jeder Datenanbieter einer Zusammenarbeit kann die folgenden Richtlinien für sein Datenangebot festlegen:

  • Eine Verknüpfungsrichtlinie, die angibt, welche Spalten verknüpft werden können.

  • Eine Spaltenrichtlinie, die festlegt, welche Spalten projiziert werden können.

  • Eine Aktivierungsrichtlinie, die festlegt, welche Spalten aktiviert werden können.

Ein Datenanbieter kann diese Richtlinien in seiner Datenangebotsspezifikation festlegen:

  • Wenn die category der Spalte join_standard oder join_custom ist, wird die Spalte der Verknüpfungsrichtlinie des Clean Rooms hinzugefügt.

  • Wenn die category der Spalte ein beliebiger anderer Wert ist, wird die Spalte der Spaltenrichtlinie des Clean Rooms hinzugefügt.

  • Wenn der activation_allowed-Wert der Spalte auf TRUE gesetzt ist, wird sie ebenfalls der Aktivierungsrichtlinie des Clean Room hinzugefügt.

Richtlinien werden durchgesetzt, wenn eine Vorlage den entsprechenden Richtlinienprüfungsfilter hat. Diese Filter sind: join_policy ,``column_policy`` ,``activation_policy`` ,``join_and_column_policy``. Zur Ausführungszeit der Vorlage überprüfen diese Filter, ob die referenzierten Spalten von den entsprechenden Richtlinien aus der Datenangebotsspezifikation zugelassen sind. Eine Vorlage schlägt fehl, wenn ein Filter auf eine Spalte angewendet wird, die nicht Teil der angegebenen Richtlinie ist.

Zum Beispiel müssen col1 und col2 Teil der Verknüpfungsrichtlinien des Datenanbieters sein (category: join_standard oder category: join_custom), oder der folgende Vorlagenausschnitt gibt einen Fehler aus:

SELECT *
FROM T1
JOIN T2
ON {{ t1_col | sqlsafe | join_policy }} = {{ t2_col | sqlsafe | join_policy }}

Organisieren von Datenangeboten mit Benennung von Pfaden

Sie können Namenspfade verwenden, um Datenangebote konzeptionell zu gruppieren. Dies ist besonders effektiv, da jedes Datenangebot eine oder mehrere Tabellen oder Ansichten repräsentiert. Der Zugriff auf einzelne Tabellen erfolgt mit der Syntax collaborator alias.data offering ID.dataset alias, wo die Datenangebots-ID eine Kombination aus dem vom Benutzenden bereitgestellten Namen und den Versionswerten ist. Der Alias ist eine einzelne Tabelle im Angebot.

Betrachten Sie den Namen, die Version und den Alias beim Registrieren Ihrer Datenangebote als Bereichssystem, mit dem Sie Ihre Daten nach Angebot und Alias organisieren können. Sie könnten zum Beispiel das folgende Datenangebot mit Verkaufsdaten registrieren, wobei jede Tabelle spezifisch für einen US-Bundesstaat ist:

api_version: 2.0.0
spec_type: data_offering
version: v0
name: examplecorp_sales_by_state
datasets:
 - alias: AL
   data_object_fqn: mydb.mysch.al_data
 - alias: NY
   data_object_fqn: mydb.mysch.ny_data
 - alias: CA
   data_object_fqn: mydb.mysch.ca_data

Der Analysis Runner referenziert diese Tabellen als``user_alias.offering_id.AL``,``user_alias.offering_id.NY`` und``user_alias.offering_id.CA``.