Abfragevorlagen verwenden

Mit BigQuery-Data-Clean-Room-Abfragevorlagen können Dateninhaber und Mitwirkende 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, die zum Definieren der Abfrage der TVF verwendet werden, und die Eingabe des Datenparameters, die die 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 TVFs.

Rollen

Es gibt drei Hauptrollen für die Verwendung von Abfragevorlagen für Data-Clean-Rooms. 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.

gcloud

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
  • Vorhandene Abfragevorlage aktualisieren: analyticshub.queryTemplates.update für die Abfragevorlage
  • Details einer Abfragevorlage abrufen: analyticshub.queryTemplates.get für die 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 können Sie Folgendes tun:

Eintrag zu 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 TVF zu 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/routines/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. Wechseln Sie im Data-Clean-Room zum Tab Vorlagen.

  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 Tabellenpfadverweis, einschließlich der Projekt-ID und der Dataset-ID, aus den Daten definieren, 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 Datenschutz-Analyseregeln 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 die Abfragevorlage zur Überprüfung einreichen.

API

Im folgenden Beispiel wird gezeigt, wie Sie mit dem Befehl curl eine Abfragevorlage 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 \
'{
  "displayName": "DISPLAY_NAME",
  "routine": {
    "routineType": "TABLE_VALUED_FUNCTION",
    "definitionBody": "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. Der 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)

Ersetzen Sie APPROVERS_DATASET durch die ID des Datasets, in dem der Vorlagengenehmiger die Routine erstellt.

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 für die 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 '{
   "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 Überprüfung erforderlich.

API

Im folgenden Beispiel wird gezeigt, wie Sie eine Abfragevorlage mit dem Befehl curl zur Überprüfung einreichen:

  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/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 für die Freigabe in eine Richtung verweist, 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 Standort 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 jobs.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/routines/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, die sich in der Überprüfung befindet, nicht genehmigen.

Abonnenten-Workflows für Vorlagen

Ein Abonnent von Abfragevorlagen 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

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

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 aus verknüpftem Dataset ausschließen deaktiviert ist.

Nachdem Sie den Data-Clean-Room abonniert haben, führen Sie die folgenden Schritte aus, um eine Abfragevorlage auszufü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, d. h. den Tabellennamen oder ein Feld.

  6. Klicken Sie auf Ausführen.

Wenn Sie die TVF nicht als untergeordnetes Element des verknüpften Datasets im Bereich Explorer sehen, können Sie die TVF direkt im verknüpften 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 Vorlagenabonnentenprojekts.
  • SUBSCRIPTION: der Name Ihres Abos.

Nachdem Sie die Abfragevorlage abonniert haben, können Sie die TVF direkt im verknüpften Dataset abfragen:

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

Beispielszenarien

Sie können Abfragevorlagen verwenden, um verschiedene Formen der Datenzusammenarbeit in einem Data-Clean-Room zu 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 ein Data-Clean-Room-Inhaber, der einen Data-Clean-Room mit dem Namen campaign_analysis erstellt und ein Dataset mit dem Namen my_campaign mit einer campaigns-Tabelle 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.

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 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 eine Abfragedefinition auf Daten verweist, die nicht dem Ersteller der Vorlage 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. Um die Abfragevorlage zu verwenden, muss Nutzer B den Data-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 Data-Clean-Room außerdem ein Dataset mit dem Namen my_transactions hinzu, das eine transactions-Tabelle und eine products-Tabelle enthält. Nutzer B 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 kann jetzt verschiedene Abfragevorlagen vorschlagen, um die eigenen Daten mit der Tabelle transactions zu verknüpfen, indem er das Metadatenschema der Tabelle aufruft. 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 eine eigene Tabelle mit einem Feld namens user_ID als Tabellenparameter und kann die datenschutzorientierte SQL-Abfrage ausführen, die in der Abfragevorlage definiert ist. Nutzer A muss seine Daten nicht dem Data-Clean-Room hinzufügen.

Preise

In der folgenden Tabelle sind die Preise für Abfragevorlagen für BigQuery-Data-Clean-Rooms zusammengefasst:

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