Abfragevorlagen verwenden

Mit BigQuery-Data-Clean-Room-Abfragevorlagen lassen sich schneller Erkenntnisse gewinnen. Außerdem bieten sie zusätzliche Sicherheits- und Kontrollfunktionen, um Bedenken hinsichtlich des Datenabflusses zu minimieren. Wenn Sie die Abfragen, die in Data-Clean-Rooms ausgeführt werden können, vordefinieren und einschränken, haben Sie folgende Möglichkeiten:

  • Verlust sensibler Daten verhindern: Wenn Abonnenten, die Abfragen in einem Data-Clean-Room ausführen, mehr Flexibilität bei der Datenanalyse erhalten, sehen Dateninhaber ein höheres Risiko, dass vertrauliche Informationen versehentlich oder absichtlich offengelegt werden.

  • Einfachere Einarbeitung und Einführung für weniger technikaffine Nutzer: Viele Datenanbieter gehen davon aus, dass Abonnenten von Data-Clean-Rooms weniger technisch versiert sind, insbesondere beim Schreiben datenschutzorientierter SQL-Abfragen und beim Zuweisen von Datenschutzbudgets.

  • Konsistente Analyseergebnisse für Datenabonnenten garantieren: Es wird schwieriger, bestimmte Regeln für die Datenanalyse durchzusetzen und die Einhaltung der Datenschutzbestimmungen zu überprüfen, wenn die in einem Data-Clean-Room ausgeführten Abfragen nicht kontrolliert werden können.

Mit Abfragevorlagen können Dateninhaber und ‑beitragende vordefinierte und genehmigte Abfragen erstellen, die speziell auf die Anwendungsfälle des Data-Clean-Rooms zugeschnitten sind, und diese Abfragen für die Nutzung durch Abonnenten veröffentlichen. In vordefinierten Abfragen werden Tabellenwertfunktionen (Table-valued functions, TVFs) in BigQuery verwendet, damit eine gesamte Tabelle oder bestimmte Felder als Eingabeparameter übergeben und eine Tabelle als Ausgabe zurückgegeben werden kann.

Beschränkungen

  • Abfragevorlagen unterstützen maximal zwei Datenreferenzen, d. h. die Daten, die zum Definieren der Abfrage des Tabellenfunktions-TVF verwendet werden, und die Datenparameter-Eingabe, die vom TVF akzeptiert wird.
    • In der Abfragedefinition der Tabellenwertfunktion können mehrere Tabellen oder Ansichten referenziert werden, sie müssen jedoch alle demselben Dateninhaber oder derselben Partei gehören.
  • Abfragevorlagen-TVFs unterstützen nur die festen Typen TABLE und VIEW.
  • Für Abfragevorlagendefinitionen gelten dieselben Einschränkungen wie für TVFs.

Hinweise

So aktivieren Sie die Analytics Hub API für Ihr Google Cloud Projekt:

Console

  1. Rufen Sie 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 erhalten, 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. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen 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
  • So erstellen Sie eine Abfragevorlage:
    • 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

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

Vorhandene TVF einem Data-Clean-Room hinzufügen

Sie können einen vorhandenen TVF einem Data-Clean-Room ü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.
  • PROJECT_ID: die Projekt-ID des Projekts, das das Quelldataset enthielt.
  • DATASET_ID: Die ID des Quell-Datasets.
  • LOCATION: den Standort des Data-Clean-Rooms.
  • CLEAN_ROOM_ID: die Data-Clean-Room-ID.
  • LISTING_ID: die ID des Eintrags.
  • LISTING_NAME: der Name des Eintrags.
  • ROUTINE_ID: die Routine-ID.

Rollen für Abfragevorlagen

Es gibt drei Hauptrollen für die Verwendung von Data-Clean-Room-Abfragevorlagen. Jede Rolle hat bestimmte Workflows, die später in diesem Dokument beschrieben werden.

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 können, müssen Sie einem Data-Clean-Room Daten hinzufügen. So erstellen Sie einen Eintrag im Data-Clean-Room:

  1. Rufen Sie die Seite Freigabe (Analytics Hub) auf.

    Zum Analytics Hub

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

    1. Wenn Sie Daten von anderen Parteien hinzufügen möchten, geben Sie den Clean Room für einen anderen vertrauenswürdigen Mitwirkenden frei. Dieser Daten-Mitwirkende muss dem 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 freigegebenen Daten selbst) freigeben möchten, wählen Sie Zugriff auf Einträge aus verknüpftem Dataset ausschließen aus.

  6. Prüfen Sie die Eintragsdetails.

  7. Klicken Sie auf Daten hinzufügen. Die Metadaten der Ansicht, die für Ihre Daten erstellt wurde, werden dem Clean Room hinzugefügt.

Abfragevorlage erstellen

Wählen Sie eine der folgenden Optionen aus:

Console

  1. Rufen Sie die Seite Freigabe (Analytics Hub) auf.

    Zum Analytics Hub

  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 Namen und eine Beschreibung für die Vorlage ein.

  6. Klicken Sie auf Weiter.

  7. Sie können die Schemas der Ansichten sehen, die dem Data-Clean-Room hinzugefügt wurden, und eine Abfragedefinition vorschlagen.

    1. Achten Sie darauf, die Abfrage mit der unterstützten CREATE TABLE FUNCTION-Syntax zu definieren.
    2. Ü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, aus den 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)
      
    3. Wenn Sie Datenschutz-Analyseregeln auf die Daten angewendet haben, muss diese TVF datenschutzspezifische SQL-Syntax enthalten, z. B. SELECT WITH AGGREGATION_THRESHOLD.

  8. Sehen Sie sich die Vorlagendetails an.

  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

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
  'query_template {
  name: "query_template1",
  display_name: "query_template1",
  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.
  • TVF_DEFINITION: Die TVF-Definition.

Das folgende Codebeispiel zeigt ein definition_body-Beispiel für den API-Aufruf. Sie müssen den vollständigen Tabellenpfad angeben, einschließlich der Projekt-ID und der Dataset-ID, die den dem Data-Clean-Room hinzugefügten Daten entnommen werden.

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

definition_body ist analog zur Definition einer Routine. Der vorherige definition_body wird in den folgenden Ablauf ü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 zur Überprüfung einreichen.

Abfragevorlage aktualisieren

Sie können eine Abfragevorlage nur aktualisieren, wenn sie den Status ENTWURF hat. Wenn die Abfragevorlage bereits zur Überprüfung eingereicht wurde, können Sie sie nicht mehr ändern.

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

Console

  1. Rufen Sie die Seite Freigabe (Analytics Hub) auf.

    Zum Analytics Hub

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

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

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

  5. Aktualisieren Sie die Vorlagendetails und die Abfragedefinition nach Bedarf.

  6. Klicken Sie auf Weiter.

  7. Sehen Sie sich die Abfragevorlage an und klicken Sie auf Speichern, um die Änderungen zu speichern, ohne die Vorlage zur Überprüfung einzureichen.

API

Das folgende Beispiel zeigt, 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=display_name -d
    'query_template {
    display_name: "query_template1"
  }'

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:

Console

  1. Rufen Sie die Seite Freigabe (Analytics Hub) auf.

    Zum Analytics Hub

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

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

  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 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. Wenn die Abfragevorlage bereits zur Überprüfung eingereicht wurde, können Sie sie nicht mehr löschen.

Wählen Sie eine der folgenden Optionen aus:

Console

  1. Rufen Sie die Seite Freigabe (Analytics Hub) auf.

    Zum Analytics Hub

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

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

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

API

Das folgende Beispiel zeigt, wie Sie eine Abfragevorlage mit einem CURL-Befehl 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.

Genehmigungsworkflows für Vorlagen

Als Genehmiger von Abfragevorlagen können Sie Abfragevorlagen genehmigen.

Wenn in einer TVF auf Daten verwiesen wird, die Ihnen nicht gehören (z. B. die Daten des anderen Mitwirkenden), kann die Abfragevorlage nur vom Inhaber dieser Daten genehmigt werden. Wenn Sie eine Tabellenwertfunktion erstellen, die nur auf Ihre Daten verweist (zur unidirektionalen Freigabe), können Sie die Abfragevorlage selbst genehmigen.

Abfragevorlage genehmigen

Wählen Sie eine der folgenden Optionen aus:

Console

  1. Rufen Sie die Seite Freigabe (Analytics Hub) auf.

    Zum Analytics Hub

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

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

  4. Klicken Sie in der Zeile der Vorlage, die überprüft werden muss, auf Genehmigungsstatus > Überprüfung erforderlich.

  5. Klicken Sie auf Genehmigen.

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

  7. Sehen Sie sich die vorgeschlagene Abfragevorlage an.

  8. Klicken Sie auf Genehmigen, wenn die Abfragevorlage für die Verwendung im Data-Clean-Room genehmigt ist.

API

  1. Erstellen Sie die Routine aus der Abfragevorlage mit einem jobserver.query-Aufruf:

    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 Quelldataset enthielt.
    • DATASET_ID: Die ID des Quell-Datasets.
    • ROUTINE_ID: die Routine-ID.
    • LISTING_NAME: der Name 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 haben Sie folgende Möglichkeiten, eine Abfragevorlage abzulehnen:

Abonnenten-Workflows für Vorlagen

Ein Abonnent einer Abfragevorlage kann einen Data-Clean-Room ansehen und abonnieren. Wenn nur die Abfragevorlage dem Clean Room hinzugefügt wird, gewährt das Abonnieren des Clean Rooms nur Zugriff auf die entsprechende Tabellenwertfunktion, nicht auf die zugrunde liegenden freigegebenen Daten.

Abfragevorlage abonnieren

Wählen Sie eine der folgenden Optionen aus:

Console

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

So abonnieren Sie eine Abfragevorlage:

  1. Rufen Sie die Seite BigQuery auf.

    BigQuery aufrufen

  2. Rufen Sie das verknüpfte Dataset auf, das Sie beim Abonnieren des Clean Rooms erstellt haben.

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

  4. Klicken Sie auf Tabellenfunktion aufrufen.

  5. Ersetzen Sie den Parameter durch die akzeptierte Eingabe, also den Tabellennamen oder das 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 für das verknüpfte Dataset abfragen:

SELECT * FROM `myproject.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 Abonnentenprojekts.
  • SUBSCRIPTION: der Name Ihres Abos.

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

SELECT * FROM `myproject.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 werden Beispielszenarien beschrieben.

Szenario mit unidirektionaler Freigabe

Ein Datenpublisher erstellt eine Abfragevorlage, um zu prüfen, ob Abonnentenpartner nur die vom Publisher definierten Abfragen ausführen können. Die Ersteller von Abfragevorlagen genehmigen die Abfragevorlagen letztendlich selbst, da keine anderen Mitwirkenden dem Cleanroom hinzugefügt werden.

In diesem Szenario ist Nutzer A Inhaber eines Data-Clean-Rooms. Er erstellt einen Data-Clean-Room mit dem Namen campaign_analysis und fügt ein Dataset mit dem Namen my_campaign mit einer Tabelle campaigns hinzu. Nutzer A konfiguriert eine Richtlinie für den Aggregationsschwellenwert und Metadatenkontrollen, um zu prüfen, ob nur das Metadatenschema sichtbar ist und Abonnenten nicht auf die Quelldaten zugreifen können. Nutzer A erstellt dann eine Abfragevorlage, indem er eine Tabellenwertfunktion aus der Tabelle campaigns definiert und alle Abonnenten des verknüpften Datasets darauf beschränkt, nur die TVF auszuführen.

So sieht die TVF-Syntax aus:

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

Da Nutzer A mit der Rolle „BigQuery-Dateninhaber“ die entsprechenden Berechtigungen für die Tabelle „campaigns“ hat, kann er die Abfragevorlage nach dem Einreichen zur Überprüfung sofort selbst genehmigen.

Freigabe für die Zusammenarbeit mit mehreren 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 sicher Abfragen vorschlagen, indem sie nur Metadatenschemas ansehen, ohne auf die zugrunde liegenden freigegebenen Daten zuzugreifen. Wenn in einer Abfragedefinition auf Daten verwiesen wird, die nicht dem Vorschlagenden der Vorlage gehören, kann die Vorlage nur vom Inhaber dieser Daten genehmigt werden.

In diesem Szenario lädt Nutzer A Nutzer B, der ein Data-Clean-Room-Mitwirkender ist, in den Clean-Room campaign_analysis ein. Nutzer B möchte eine Abfragevorlage vorschlagen, um seine eigenen Daten mit der Tabelle campaigns zu verknüpfen. Dazu ruft er das Metadatenschema der Tabelle auf.

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 B die Tabelle campaigns nicht hinzugefügt hat und nicht Inhaber der Tabelle ist, kann nur Nutzer A die Vorlage für die Anfrage genehmigen, sobald sie zur Genehmigung eingereicht wurde. Damit Nutzer B die Abfragevorlage verwenden kann, muss er den Data-Clean-Room abonnieren und die Tabellenwertfunktion aufrufen. Nutzer B übergibt seine eigene Tabelle mit einem Feld namens campaign_ID als Tabellenparameter und kann den privaten SQL-Code ausführen, der in der Abfragevorlage definiert ist. Es ist wichtig zu wissen, dass Nutzer B seine Daten nicht dem Data-Clean-Room hinzufügen muss.

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 Richtlinien für Aggregationsschwellenwerte und Metadatenkontrollen, um zu prüfen, ob nur das Metadatenschema sichtbar ist und Abonnenten 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 myproject.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 und nicht Inhaber der Tabellen ist, kann nur Nutzer B die Vorlage genehmigen, nachdem sie zur Genehmigung 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 im Abfrage-Template definierten Privacy-SQL-Code ausführen. Nutzer A muss seine Daten nicht dem Data-Clean-Room hinzufügen.

Preise

Daten-Mitwirkenden, die Abfragevorlagen verwenden, wird nur die Datenspeicherung in Rechnung gestellt.

Abonnenten, die Abfragevorlagen verwenden, wird nur Computing (Analyse) in Rechnung gestellt, wenn sie Abfragen ausführen.

Nächste Schritte