Abfragevorlagen verwenden

Mit BigQuery-Data-Clean-Room-Abfragevorlagen können Dateninhaber und ‑beitragende genehmigte Abfragen für Abonnenten veröffentlichen. Durch die vordefinierten Abfragen werden die Risiken der Daten-Exfiltration minimiert, konsistente Analyseergebnisse sichergestellt und das Onboarding für Analysten vereinfacht, die mit datenschutzorientiertem SQL nicht vertraut sind.

In Abfragevorlagen werden tabellenwertige Funktionen (TVFs) verwendet, um Tabellen oder bestimmte Felder als Parameter zu akzeptieren und Ergebnisse zurückzugeben, ohne Rohdaten offenzulegen.

Beschränkungen

Für Abfragevorlagen gelten die folgenden Einschränkungen:

  • Abfragevorlagen unterstützen maximal zwei Datenreferenzen: die Daten, mit denen die Abfrage des Tabellenfunktions-TVF definiert wird, und die Eingabe des Datenparameters, die das TVF akzeptiert. Sie können in der Abfragedefinition der TVF auf mehrere Tabellen oder Ansichten verweisen, diese müssen jedoch alle demselben Dateninhaber oder derselben Partei gehören.
  • TVFs für Abfragevorlagen unterstützen nur die festen Typen TABLE und VIEW.
  • Für Abfragevorlagendefinitionen gelten dieselben Einschränkungen wie für Tabellenwertfunktionen.

Rollen

Es gibt drei Hauptrollen für die Verwendung von Data-Clean-Room-Abfragevorlagen. Für jede Rolle gibt es bestimmte Workflows, die in diesem Dokument beschrieben werden:

Hinweis

Wählen Sie eine der folgenden Optionen aus, um die Analytics Hub API für Ihr Google Cloud -Projekt zu aktivieren:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Analytics Hub API auf.

    Zur Analytics Hub API

  2. Wählen Sie in der Symbolleiste der Google Cloud Console Ihr Projekt aus.

  3. Wenn die API noch nicht aktiviert ist, klicken Sie auf Aktivieren.

bq

Führen Sie den Befehl gcloud services enable aus:

gcloud services enable analyticshub.googleapis.com

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erteilen, die Sie zum Ausführen der Aufgaben in diesem Dokument benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Ausführen der Aufgaben in diesem Dokument erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind zum Ausführen der Aufgaben in diesem Dokument erforderlich:

  • TVF in einem Data-Clean-Room erstellen oder löschen:
    • bigquery.routines.create für das Projekt
    • bigquery.routines.update für das Projekt
    • bigquery.routines.delete für das Projekt
  • TVF autorisieren: bigquery.datasets.update für die Datasets, auf die die Routine zugreift
  • Abfragevorlage erstellen:
    • analyticshub.listings.subscribe für das Projekt
    • analyticshub.queryTemplates.create für das Projekt
  • Abfragevorlage genehmigen:
    • bigquery.routines.create für das Projekt
    • bigquery.datasets.update für die Datasets, auf die die Routine zugreift
    • analyticshub.listings.create für das Projekt
    • analyticshub.queryTemplates.approve für das Projekt
  • So aktualisieren Sie eine vorhandene Abfragevorlage: analyticshub.queryTemplates.update in der Abfragevorlage
  • Details zu einer Abfragevorlage abrufen: analyticshub.queryTemplates.get in der Abfragevorlage
  • Alle Abfragevorlagen in einem Datenaustausch auflisten: analyticshub.queryTemplates.list für den Datenaustausch
  • Abfragevorlage löschen: analyticshub.queryTemplates.delete für die Abfragevorlage

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Workflows für Vorlagenersteller

Als Ersteller von Abfragevorlagen haben Sie folgende Möglichkeiten:

Einen Eintrag einem Data-Clean-Room hinzufügen

Bevor Sie eine Abfragevorlage erstellen, müssen Sie einem Data-Clean-Room Daten hinzufügen. So erstellen Sie einen Eintrag im Data-Clean-Room:

  1. Rufen Sie in der Google Cloud -Console die Seite Sharing (Analytics Hub) auf.

    Sharing (Analytics Hub) aufrufen

  2. Klicken Sie auf den Anzeigenamen des Data-Clean-Rooms, in dem Sie die Abfragevorlage erstellen möchten.

  3. Klicken Sie auf Daten hinzufügen und folgen Sie der Anleitung, um eine Ansicht mit konfigurierten Analyseregeln zu erstellen. Eine ausführliche Anleitung finden Sie unter Eintrag erstellen (Daten hinzufügen).

    Wenn Sie Daten von anderen Parteien hinzufügen möchten, geben Sie den Data-Clean-Room für einen anderen vertrauenswürdigen Mitwirkenden frei. Dieser Daten-Mitwirkende muss dem Data-Clean-Room auch Daten hinzufügen, damit sie in einer Abfragevorlage verwendet werden können.

  4. Legen Sie die Steuerelemente für ausgehenden Datenverkehr für den Eintrag fest.

  5. Legen Sie die Metadaten-Steuerelemente für den Eintrag fest. Wenn Sie nur die Schemas und Beschreibungen der im vorherigen Schritt hinzugefügten Daten (und nicht die weitergegebenen Daten selbst) freigeben möchten, wählen Sie Zugriff auf Eintrag aus verknüpftem Dataset ausschließen aus.

  6. Überprüfen Sie die Details des Eintrags.

  7. Klicken Sie auf Daten hinzufügen. Der Data-Clean-Room enthält jetzt die Metadaten der Ansicht, die Sie für Ihre Daten erstellt haben.

Vorhandene Tabellenfunktion einem Data-Clean-Room hinzufügen

Sie können einem Data-Clean-Room eine vorhandene TVF über die Analytics Hub API hinzufügen.

Verwenden Sie die Methode projects.locations.dataExchanges.listings.create:

Das folgende Beispiel zeigt, wie die Methode projects.locations.dataExchanges.listings.create mit dem Befehl curl aufgerufen wird:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/listings?listingId=LISTING_ID -d
    '{"bigqueryDataset":{"dataset":"projects/PROJECT_ID/datasets/DATASET_ID","selectedResources":[{"routine":"projects/PROJECT_ID/datasets/DATASET_ID/tables/ROUTINE_ID"}]},"displayName":"LISTING_NAME"}'

Ersetzen Sie Folgendes:

  • DCR_PROJECT_ID: die Projekt-ID des Projekts, in dem der Data-Clean-Room erstellt wurde
  • LOCATION: den Standort des Data-Clean-Rooms
  • CLEAN_ROOM_ID: die Data-Clean-Room-ID.
  • LISTING_ID: die ID des Eintrags.
  • PROJECT_ID: die Projekt-ID des Projekts, das das Quell-Dataset enthält.
  • DATASET_ID: die ID des Quell-Datasets.
  • ROUTINE_ID: die Routine-ID.
  • LISTING_NAME: der Anzeigename des Eintrags.

Abfragevorlage erstellen

Wählen Sie eine der folgenden Optionen aus, um eine Abfragevorlage zu erstellen:

Console

  1. Rufen Sie in der Google Cloud -Console die Seite Sharing (Analytics Hub) auf.

    Sharing (Analytics Hub) aufrufen

  2. Klicken Sie auf den Anzeigenamen des Data-Clean-Rooms, in dem Sie die Abfragevorlage erstellen möchten.

  3. Rufen Sie im Data-Clean-Room den Tab Vorlagen auf.

  4. Klicken Sie auf Vorlage erstellen.

  5. Geben Sie einen Anzeigenamen und eine Beschreibung für die Vorlage ein.

  6. Klicken Sie auf Weiter.

  7. Schlagen Sie eine Abfragedefinition vor, indem Sie die Schemas der Ansichten verwenden, die dem Clean Room hinzugefügt wurden:

    • Definieren Sie die Abfrage mit der unterstützten CREATE TABLE FUNCTION-Syntax.
    • Übergeben Sie die gesamte Tabelle oder Ansicht mit festen Definitionen. Sie müssen den vollständigen Tabellenpfad angeben, einschließlich der Projekt-ID und der Dataset-ID, der Daten, die dem Data-Clean-Room hinzugefügt wurden. Beispiel:

          query_template1(t1 TABLE<year INT64>) AS (SELECT * FROM `project_id.dataset_id.table_id` WHERE year = table_id.year)
      
    • Wenn Sie Datenschutzanalyseregeln auf die Daten angewendet haben, muss diese TVF datenschutzspezifische SQL-Syntax wie SELECT WITH AGGREGATION_THRESHOLD enthalten.

  8. Überprüfen Sie die Vorlagendetails.

  9. Wenn Sie die Vorlage speichern möchten, ohne sie zur Überprüfung einzureichen, klicken Sie auf Speichern. Die Abfragevorlage hat jetzt den Status ENTWURF.

Sie können die Abfragevorlage aktualisieren oder zur Überprüfung einreichen.

API

Das folgende Beispiel zeigt, wie Sie eine Abfragevorlage mit dem Befehl curl erstellen:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates?queryTemplateId=QUERY_TEMPLATE_ID -d
  'query_template {
  display_name: "DISPLAY_NAME",
  routine {
    definition_body: "QUERY_TEMPLATE_ID(TVF arguments) AS (TVF_DEFINITION)"
  }
}'

Ersetzen Sie Folgendes:

  • DCR_PROJECT_ID: die Projekt-ID des Projekts, in dem der Data-Clean-Room erstellt wurde
  • LOCATION: den Standort des Data-Clean-Rooms
  • CLEAN_ROOM_ID: die Data-Clean-Room-ID.
  • QUERY_TEMPLATE_ID: die ID der Abfragevorlage.
  • DISPLAY_NAME: Der Anzeigename der Abfragevorlage. Nachdem Sie die Abfragevorlage erstellt haben, können Sie den Anzeigenamen der Abfragevorlage nicht mehr aktualisieren.
  • TVF_DEFINITION: Die TVF-Definition.

Das folgende Codebeispiel zeigt ein definition_body-Beispiel für den API-Aufruf. Sie müssen den vollständigen Tabellenpfadverweis einschließlich der Projekt-ID und der Dataset-ID aus den Daten definieren, die dem Data-Clean-Room hinzugefügt wurden:

  query_template1(t1 TABLE<year INT64>) AS (SELECT * FROM `project_id.dataset_id.table_id` WHERE year = table_id.year)

definition_body entspricht der Definition einer Routine. Die vorherige definition_body wird in die folgende Routine übersetzt:

  CREATE OR REPLACE TABLE FUNCTION <approvers_dataset>.query_template1(t1 TABLE, y INT64)
  AS (SELECT * FROM t1 WHERE year > y)

Sie können die Abfragevorlage aktualisieren oder die Abfragevorlage zur Überprüfung einreichen.

Abfragevorlage aktualisieren

Sie können eine Abfragevorlage nur aktualisieren, wenn sie den Status DRAFT hat. Nachdem Sie eine Abfragevorlage zur Überprüfung eingereicht haben, können Sie sie nicht mehr ändern.

Wählen Sie eine der folgenden Optionen aus, um eine Abfragevorlage zu aktualisieren:

Console

  1. Rufen Sie in der Google Cloud -Console die Seite Sharing (Analytics Hub) auf.

    Sharing (Analytics Hub) aufrufen

  2. Klicken Sie auf den Anzeigenamen des Data-Clean-Rooms, der die Abfragevorlage enthält.

  3. Wechseln Sie im Data-Clean-Room zum Tab Vorlagen.

  4. Klicken Sie in der Zeile der Vorlage, die Sie aktualisieren möchten, auf Aktionen > Vorlage bearbeiten.

  5. Aktualisieren Sie die Beschreibung und den primären Kontakt nach Bedarf.

  6. Klicken Sie auf Weiter.

  7. Überprüfen Sie die Vorlagendetails.

  8. Wenn Sie die Vorlage speichern möchten, ohne sie zur Überprüfung einzureichen, klicken Sie auf Speichern.

API

Im folgenden Beispiel wird gezeigt, wie Sie eine Abfragevorlage mit dem Befehl curl aktualisieren:

 curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
 -H "Content-Type: application/json" \
 -H 'x-goog-user-project:DCR_PROJECT_ID' \
 -X PATCH "https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates/QUERY_TEMPLATE_ID?updateMask=description" \
 -d '{
   "query_template": {
     "description": "New query template"
   }
 }'

Ersetzen Sie Folgendes:

  • DCR_PROJECT_ID: die Projekt-ID des Projekts, in dem der Data-Clean-Room erstellt wurde
  • LOCATION: den Standort des Data-Clean-Rooms
  • CLEAN_ROOM_ID: die Data-Clean-Room-ID.
  • QUERY_TEMPLATE_ID: die ID der Abfragevorlage.

Abfragevorlage zur Überprüfung einreichen

Wählen Sie eine der folgenden Optionen aus, um eine Abfragevorlage zur Überprüfung einzureichen:

Console

  1. Rufen Sie in der Google Cloud -Console die Seite Sharing (Analytics Hub) auf.

    Sharing (Analytics Hub) aufrufen

  2. Klicken Sie auf den Anzeigenamen des Data-Clean-Rooms, der die Abfragevorlage enthält.

  3. Wechseln Sie im Data-Clean-Room zum Tab Vorlagen.

  4. Klicken Sie in der Zeile der Vorlage, die Sie zur Überprüfung einreichen möchten, auf Aktionen > Zur Überprüfung einreichen. Die Vorlage hat jetzt den Status Muss überprüft werden.

API

Im folgenden Beispiel wird gezeigt, wie Sie eine Abfragevorlage zur Überprüfung einreichen. Dazu verwenden Sie den Befehl curl:

  curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates/QUERY_TEMPLATE_ID:submit

Ersetzen Sie Folgendes:

  • DCR_PROJECT_ID: die Projekt-ID des Projekts, in dem der Data-Clean-Room erstellt wurde
  • LOCATION: den Standort des Data-Clean-Rooms
  • CLEAN_ROOM_ID: die Data-Clean-Room-ID.
  • QUERY_TEMPLATE_ID: die ID der Abfragevorlage.

Abfragevorlage löschen

Sie können eine Abfragevorlage nur löschen, wenn sie den Status ENTWURF hat. Nachdem Sie eine Abfragevorlage zur Überprüfung eingereicht haben, können Sie sie nicht mehr löschen.

Wählen Sie eine der folgenden Optionen aus, um eine Abfragevorlage zu löschen:

Console

  1. Rufen Sie in der Google Cloud -Console die Seite Sharing (Analytics Hub) auf.

    Sharing (Analytics Hub) aufrufen

  2. Klicken Sie auf den Anzeigenamen des Data-Clean-Rooms, der die Abfragevorlage enthält.

  3. Wechseln Sie im Data-Clean-Room zum Tab Vorlagen.

  4. Klicken Sie in der Zeile für die Vorlage, die Sie löschen möchten, auf Aktionen > Vorlage löschen.

API

Im folgenden Beispiel wird gezeigt, wie Sie eine Abfragevorlage mit dem Befehl curl löschen:

  curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X DELETE https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates?queryTemplateId=QUERY_TEMPLATE_ID

Ersetzen Sie Folgendes:

  • DCR_PROJECT_ID: die Projekt-ID des Projekts, in dem der Data-Clean-Room erstellt wurde
  • LOCATION: den Standort des Data-Clean-Rooms
  • CLEAN_ROOM_ID: die Data-Clean-Room-ID.
  • QUERY_TEMPLATE_ID: die ID der Abfragevorlage.

Workflows für Vorlagengenehmiger

Als Genehmiger von Abfragevorlagen können Sie eine Abfragevorlage genehmigen.

Wenn eine TVF auf Daten verweist, die nicht Ihnen gehören, z. B. Daten eines anderen Mitwirkenden, kann nur der Inhaber dieser Daten die Abfragevorlage genehmigen. Wenn Sie eine TVF erstellen, die nur auf Ihre Daten verweist, die in eine Richtung weitergegeben werden, können Sie die Abfragevorlage selbst genehmigen.

Abfragevorlage genehmigen

Wählen Sie eine der folgenden Optionen aus, um eine Abfragevorlage zu genehmigen:

Console

  1. Rufen Sie in der Google Cloud -Console die Seite Sharing (Analytics Hub) auf.

    Sharing (Analytics Hub) aufrufen

  2. Klicken Sie auf den Anzeigenamen des Data-Clean-Rooms, der die Abfragevorlage enthält.

  3. Wechseln Sie im Data-Clean-Room zum Tab Vorlagen.

  4. Klicken Sie in der Zeile für die Vorlage, die Sie überprüfen müssen, auf Freigabestatus > Überprüfung erforderlich.

  5. Klicken Sie auf Genehmigen.

  6. Wählen Sie den Speicherort der Vorlage aus. An diesem Speicherort wird die TVF für die Freigabe erstellt.

  7. Prüfen Sie die vorgeschlagene Abfragevorlage.

  8. Klicken Sie auf Genehmigen, um die Abfragevorlage für die Verwendung im Data-Clean-Room zu genehmigen.

API

  1. Erstellen Sie die Routine aus der Abfragevorlage, indem Sie die Methode jobserver.query aufrufen:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -L -X POST https://bigquery.googleapis.com/bigquery/v2/projects/ROUTINE_PROJECT_ID/queries --data '{"query":"ROUTINE_CREATION_QUERY","useLegacySql":false}'

    Ersetzen Sie Folgendes:

    • ROUTINE_PROJECT_ID: die Projekt-ID des Projekts, in dem die Routine erstellt wurde.
    • ROUTINE_CREATION_QUERY: Die Abfrage zum Erstellen der Routine.
  2. Fügen Sie die erstellte Routine dem Data-Clean-Room hinzu:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H 'x-goog-user-project:DCR_PROJECT_ID' -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/listings?listingId=LISTING_ID -d
    '{"bigqueryDataset":{"dataset":"projects/PROJECT_ID/datasets/DATASET_ID","selectedResources":[{"routine":"projects/PROJECT_ID/datasets/DATASET_ID/tables/ROUTINE_ID"}]},"displayName":"LISTING_NAME"}'

    Ersetzen Sie Folgendes:

    • DCR_PROJECT_ID: die Projekt-ID des Projekts, in dem der Data-Clean-Room erstellt wurde.
    • LOCATION: den Standort des Data-Clean-Rooms
    • CLEAN_ROOM_ID: die Data-Clean-Room-ID.
    • LISTING_ID: die ID des Eintrags.
    • PROJECT_ID: die Projekt-ID des Projekts, das das Quell-Dataset enthält.
    • DATASET_ID: die ID des Quell-Datasets.
    • ROUTINE_ID: die Routine-ID.
    • LISTING_NAME: Der Anzeigename des Eintrags.
  3. Aktualisieren Sie den Status der Abfragevorlage auf APPROVED:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -L -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID/queryTemplates/QUERY_TEMPLATE_ID:approve  --data '{}'

    Ersetzen Sie Folgendes:

    • DCR_PROJECT_ID: die Projekt-ID des Projekts, in dem der Data-Clean-Room erstellt wurde.
    • LOCATION: den Standort des Data-Clean-Rooms
    • CLEAN_ROOM_ID: die Data-Clean-Room-ID.
    • QUERY_TEMPLATE_ID: die ID der Abfragevorlage.

Abfragevorlage ablehnen

In der Google Cloud Console können Sie eine Abfragevorlage ablehnen, indem Sie die eingereichte Abfragevorlage nicht genehmigen.

Abonnenten-Workflows für Vorlagen

Ein Abonnent einer Abfragevorlage kann einen Data-Clean-Room ansehen und abonnieren. Wenn nur die Abfragevorlage zum Data-Clean-Room hinzugefügt wird, erhalten Abonnenten des Data-Clean-Rooms nur Zugriff auf die entsprechende TVF, nicht auf die zugrunde liegenden weitergegebenen Daten.

Abfragevorlage abonnieren

Wenn Sie ein Abfragevorlage abonnieren möchten, wählen Sie eine der folgenden Optionen aus:

Console

Sie abonnieren eine Abfragevorlage, indem Sie den Data-Clean-Room abonnieren. Durch das Abonnieren erhalten Sie Zugriff auf alle Einträge, für die die Einstellung Zugriff auf Eintrag über verknüpftes Dataset ausschließen deaktiviert ist.

Nachdem Sie den Data-Clean-Room abonniert haben, können Sie eine Abfragevorlage so ausführen:

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Rufen Sie im Bereich Explorer das verknüpfte Dataset auf, das Sie beim Abonnieren des Data-Clean-Rooms erstellt haben.

  3. Öffnen Sie die Routine oder TVF, die im verknüpften Dataset freigegeben ist.

  4. Klicken Sie auf Tabellenfunktion aufrufen.

  5. Ersetzen Sie den Parameter durch die akzeptierte Eingabe, also den Tabellennamen oder ein Feld.

  6. Klicken Sie auf Ausführen.

Wenn Sie die Tabellenwertfunktion nicht als untergeordnetes Element des verknüpften Datasets im Bereich Explorer sehen, können Sie sie direkt für das verknüpfte Dataset abfragen:

SELECT * FROM `my_project.dcr_linked_dataset.mytvf`(TABLE myTable);

API

Verwenden Sie die Methode projects.locations.dataExchanges.subscribe:

Das folgende Beispiel zeigt, wie die Methode projects.locations.dataExchanges.subscribe mit dem Befehl curl aufgerufen wird:

  curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -L -X POST https://analyticshub.googleapis.com/v1/projects/DCR_PROJECT_ID/locations/LOCATION/dataExchanges/CLEAN_ROOM_ID:subscribe  --data '{"destination":"projects/SUBSCRIBER_PROJECT_ID/locations/LOCATION","subscription":"SUBSCRIPTION"}'

Ersetzen Sie Folgendes:

  • DCR_PROJECT_ID: die Projekt-ID des Projekts, in dem der Data-Clean-Room erstellt wurde
  • LOCATION: den Standort des Data-Clean-Rooms
  • CLEAN_ROOM_ID: die Data-Clean-Room-ID.
  • SUBSCRIBER_PROJECT_ID: die Projekt-ID des Projekts, das die Vorlage abonniert hat.
  • SUBSCRIPTION: der Name Ihres Abos.

Nachdem Sie die Vorlage abonniert haben, können Sie die TVF direkt für das verknüpfte Dataset abfragen:

SELECT * FROM `my_project.dcr_linked_dataset.mytvf`(TABLE myTable);

Beispielszenarien

Mit Abfragevorlagen lassen sich verschiedene Formen der Datenzusammenarbeit in einem Data-Clean-Room ermöglichen. In den folgenden Abschnitten finden Sie Beispielszenarien.

Szenario für die Freigabe in eine Richtung

Ein Daten-Publisher erstellt eine Abfragevorlage, damit abonnierende Partner nur die vom Publisher definierten Abfragen ausführen können. Ersteller von Abfragevorlagen genehmigen die Abfragevorlagen selbst, da dem Cleanroom kein anderer Mitwirkender hinzugefügt wurde.

In diesem Szenario ist Nutzer A der Inhaber eines Data-Clean-Rooms, der einen Data-Clean-Room mit dem Namen campaign_analysis erstellt und ein Dataset mit dem Namen my_campaign mit einer Tabelle campaigns hinzufügt. Nutzer A konfiguriert eine Richtlinie für den Aggregationsschwellenwert und Metadatenkontrollen, sodass nur das Metadatenschema sichtbar ist und Abonnenten der Vorlage nicht auf die Quelldaten zugreifen können. Nutzer A erstellt dann eine Abfragevorlage, indem er eine TVF aus der Tabelle campaigns definiert. Dadurch wird die Ausführung der Abonnenten des verknüpften Datasets auf die TVF beschränkt.

So sieht die TVF-Syntax aus:

campaigns_template(t1 TABLE<campaign_ID STRING>) AS (
SELECT WITH AGGREGATION_THRESHOLD company_id, company, sum(impressions) FROM my_project.my_campaign.campaigns
group by company_id, company
);

Da Nutzer A mit der Rolle „BigQuery Data Owner“ die entsprechenden Berechtigungen für die Tabelle campaigns hat, kann er die Abfragevorlage sofort selbst genehmigen, nachdem er sie zur Überprüfung eingereicht hat.

Freigabe für die Zusammenarbeit mehrerer Parteien

Der Inhaber eines Data-Clean-Rooms lädt einen vertrauenswürdigen Mitwirkenden ein, Abfragen vorzuschlagen, die für die Daten des jeweils anderen ausgeführt werden sollen. Beide Parteien können Abfragen sicher vorschlagen, indem sie nur Metadatenschemas ansehen, ohne auf die zugrunde liegenden weitergegebenen Daten zuzugreifen. Wenn in einer Abfragedefinition auf Daten verwiesen wird, die nicht dem Vorlagenersteller gehören, kann nur der Inhaber dieser Daten die Abfragevorlage genehmigen.

In diesem Szenario lädt Nutzer A Nutzer B, der ein Mitwirkender am Data-Clean-Room ist, in den Data-Clean-Room campaign_analysis ein. Nutzer B möchte eine Abfragevorlage vorschlagen, um seine eigenen Daten mit der Tabelle campaigns zusammenzuführen. Dazu sieht er sich das Metadatenschema der Tabelle an.

Dies ist die TVF-Syntax:

campaigns_template(t1 TABLE<campaign_ID STRING>) AS (
SELECT WITH AGGREGATION_THRESHOLD company_id, company, sum(impressions) FROM my_project.my_campaign.campaigns
group by company_id, company
);

Da Nutzer B die Tabelle campaigns nicht hinzugefügt hat oder nicht besitzt, kann nur Nutzer A die Abfragevorlage genehmigen, nachdem sie zur Überprüfung eingereicht wurde. Damit Nutzer B die Vorlage verwenden kann, muss er den Clean Room abonnieren und die TVF aufrufen. Nutzer B übergibt seine eigene Tabelle mit einem Feld namens campaign_ID als Tabellenparameter und kann die datenschutzorientierte SQL-Abfrage ausführen, die in der Abfragevorlage definiert ist. Nutzer B muss seine Daten nicht dem Data-Clean-Room hinzufügen.

Nutzer B fügt dem Cleanroom außerdem ein Dataset mit dem Namen my_transactions hinzu, das eine Tabelle transactions und eine Tabelle products enthält. Nutzer B konfiguriert eine Richtlinie für den Aggregationsschwellenwert und Metadaten-Steuerelemente, sodass nur das Metadatenschema sichtbar ist und Vorlagenabonnenten nicht auf die Quelldaten zugreifen können.

Nutzer A kann nun verschiedene Abfragevorlagen vorschlagen, um seine eigenen Daten mit der Tabelle transactions zu verknüpfen. Dazu muss er sich das Metadatenschema der Tabelle ansehen. Im Folgenden finden Sie Beispiele für die TVF-Syntax:

transactions_template(t1 TABLE<user_ID STRING>) AS (
SELECT WITH AGGREGATION_THRESHOLD company_id, company, campaign_id, sku, category, date, sum(amount) FROM my_project.my_transactions.transactions
group by company_id, company, campaign_id, sku, category, date
);
transactions_template_with_join(t1 TABLE<user_ID STRING>) AS (
SELECT WITH AGGREGATION_THRESHOLD t.company_id, t.company, t.campaign_id, t.sku, t.date, p.product_name, p.product_category, sum(t.amount) FROM my_project.my_transactions.transactions t
left join my_project.my_transactions.products p
on t.product_id = p.product_id
group by t.company_id, t.company, t.campaign_id, t.sku, t.date, p.product_name, p.product_category
);

Da Nutzer A die Tabellen transactions und products nicht hinzugefügt hat oder nicht besitzt, kann nur Nutzer B die Abfragevorlage genehmigen, nachdem sie zur Überprüfung eingereicht wurde. Um die Abfragevorlage zu verwenden, muss Nutzer A den Data-Clean-Room abonnieren und die TVF aufrufen. Nutzer A übergibt seine eigene Tabelle mit einem Feld namens user_ID als Tabellenparameter und kann den datenschutzorientierten SQL-Code ausführen, der in der Abfragevorlage definiert ist. Nutzer A muss seine Daten nicht dem Data-Clean-Room hinzufügen.

Preise

In der folgenden Tabelle finden Sie eine Zusammenfassung der Preise für BigQuery Data-Clean-Room-Abfragevorlagen:

Rolle Preisangaben
Datenbeitragender Es wird nur die Datenspeicherung in Rechnung gestellt.
Vorlagenabonnent Gebühren fallen nur für Computing (Analyse) an, wenn Abfragen ausgeführt werden.

Nächste Schritte