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
TABLEundVIEW. - 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:
Vorlagenersteller: Ein Nutzer, der die Abfragen definiert, die im Data-Clean-Room ausgeführt werden sollen. Diese Rolle entspricht einer der folgenden IAM-Rollen (Identity and Access Management): Analytics Hub-Administrator, Analytics Hub-Publisher oder Analytics Hub-Eintragsadministrator. Weitere Informationen finden Sie unter Workflows für Vorlagenersteller.
Vorlagengenehmiger: Der Inhaber der Daten, der die Verweise der Abfragevorlage genehmigen muss, bevor die Vorlage verwendet werden kann. Diese Rolle ist analog zu einer der folgenden IAM-Rollen: Analytics Hub-Administrator, Analytics Hub-Publisher oder Analytics Hub-Eintragsadministrator. Weitere Informationen finden Sie unter Genehmigungsworkflows für Vorlagen.
Vorlagenabonnent: Ein Nutzer, der den Data-Clean-Room abonniert und nur die Abfragen ausführen kann, die in der Vorlage genehmigt sind. Diese Rolle entspricht der IAM-Rolle Analytics Hub-Abonnent. Weitere Informationen finden Sie unter Abonnenten-Workflows für Vorlagen.
Hinweis
Wählen Sie eine der folgenden Optionen aus, um die Analytics Hub API für Ihr Google Cloud -Projekt zu aktivieren:
Console
Rufen Sie in der Google Cloud Console die Seite Analytics Hub API auf.
Wählen Sie in der Symbolleiste der Google Cloud Console Ihr Projekt aus.
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:
-
TVF in einem Data-Clean-Room erstellen oder löschen:
- Analytics Hub Publisher (
roles/analyticshub.publisher) für das Projekt - Analytics Hub-Abonnent (
roles/analyticshub.subscriber) für das Projekt
- Analytics Hub Publisher (
-
TVF autorisieren:
BigQuery Data Owner (
roles/bigquery.dataOwner) für das Projekt -
So fügen Sie einem Data-Clean-Room einen TVF-Eintrag hinzu, aktualisieren oder löschen ihn:
- Analytics Hub Publisher (
roles/analyticshub.publisher) für das Projekt - Analytics Hub-Abonnent (
roles/analyticshub.subscriber) für das Projekt
- Analytics Hub Publisher (
-
Erstellen Sie eine Abfragevorlage:
- Analytics Hub Publisher (
roles/analyticshub.publisher) für das Projekt - Analytics Hub-Abonnent (
roles/analyticshub.subscriber) für das Projekt
- Analytics Hub Publisher (
-
Abfragevorlage genehmigen:
- Analytics Hub Publisher (
roles/analyticshub.publisher) für das Projekt - BigQuery Data Owner (
roles/bigquery.dataOwner) für das Projekt
- Analytics Hub Publisher (
-
Data-Clean-Room mit Abfragevorlagen abonnieren:
- Analytics Hub-Abonnent (
roles/analyticshub.subscriber) für das Projekt - Analytics Hub-Abo-Inhaber (
roles/analyticshub.subscriptionOwner) für das Projekt, in dem Sie den Data-Clean-Room abonnieren möchten
- Analytics Hub-Abonnent (
-
Führen Sie die in den Abfragevorlagen definierten Abfragen aus:
- BigQuery Datenansicht (
roles/bigquery.dataViewer) für das Projekt - BigQuery-Nutzer (
roles/bigquery.user) für das Projekt
- BigQuery Datenansicht (
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.createfür das Projektbigquery.routines.updatefür das Projektbigquery.routines.deletefür das Projekt
-
TVF autorisieren:
bigquery.datasets.updatefür die Datasets, auf die die Routine zugreift -
Abfragevorlage erstellen:
analyticshub.listings.subscribefür das Projektanalyticshub.queryTemplates.createfür das Projekt
-
Abfragevorlage genehmigen:
bigquery.routines.createfür das Projekt-
bigquery.datasets.updatefür die Datasets, auf die die Routine zugreift analyticshub.listings.createfür das Projektanalyticshub.queryTemplates.approvefür das Projekt
-
So aktualisieren Sie eine vorhandene Abfragevorlage:
analyticshub.queryTemplates.updatein der Abfragevorlage -
Details zu einer Abfragevorlage abrufen:
analyticshub.queryTemplates.getin der Abfragevorlage -
Alle Abfragevorlagen in einem Datenaustausch auflisten:
analyticshub.queryTemplates.listfür den Datenaustausch -
Abfragevorlage löschen:
analyticshub.queryTemplates.deletefü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:
- Eintrag zu einem Data-Clean-Room hinzufügen
- Vorhandene TVF einem Data-Clean-Room hinzufügen
- Abfragevorlage erstellen
- Abfragevorlage aktualisieren
- Abfragevorlage zur Überprüfung einreichen
- Abfragevorlage löschen
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:
Rufen Sie in der Google Cloud -Console die Seite Sharing (Analytics Hub) auf.
Klicken Sie auf den Anzeigenamen des Data-Clean-Rooms, in dem Sie die Abfragevorlage erstellen möchten.
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.
Legen Sie die Steuerelemente für ausgehenden Datenverkehr für den Eintrag fest.
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.
Überprüfen Sie die Details des Eintrags.
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 wurdeLOCATION: den Standort des Data-Clean-RoomsCLEAN_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
Rufen Sie in der Google Cloud -Console die Seite Sharing (Analytics Hub) auf.
Klicken Sie auf den Anzeigenamen des Data-Clean-Rooms, in dem Sie die Abfragevorlage erstellen möchten.
Rufen Sie im Data-Clean-Room den Tab Vorlagen auf.
Klicken Sie auf Vorlage erstellen.
Geben Sie einen Anzeigenamen und eine Beschreibung für die Vorlage ein.
Klicken Sie auf Weiter.
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_THRESHOLDenthalten.
- Definieren Sie die Abfrage mit der unterstützten
Überprüfen Sie die Vorlagendetails.
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 wurdeLOCATION: den Standort des Data-Clean-RoomsCLEAN_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
Rufen Sie in der Google Cloud -Console die Seite Sharing (Analytics Hub) auf.
Klicken Sie auf den Anzeigenamen des Data-Clean-Rooms, der die Abfragevorlage enthält.
Wechseln Sie im Data-Clean-Room zum Tab Vorlagen.
Klicken Sie in der Zeile der Vorlage, die Sie aktualisieren möchten, auf Aktionen > Vorlage bearbeiten.
Aktualisieren Sie die Beschreibung und den primären Kontakt nach Bedarf.
Klicken Sie auf Weiter.
Überprüfen Sie die Vorlagendetails.
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 wurdeLOCATION: den Standort des Data-Clean-RoomsCLEAN_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
Rufen Sie in der Google Cloud -Console die Seite Sharing (Analytics Hub) auf.
Klicken Sie auf den Anzeigenamen des Data-Clean-Rooms, der die Abfragevorlage enthält.
Wechseln Sie im Data-Clean-Room zum Tab Vorlagen.
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 wurdeLOCATION: den Standort des Data-Clean-RoomsCLEAN_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
Rufen Sie in der Google Cloud -Console die Seite Sharing (Analytics Hub) auf.
Klicken Sie auf den Anzeigenamen des Data-Clean-Rooms, der die Abfragevorlage enthält.
Wechseln Sie im Data-Clean-Room zum Tab Vorlagen.
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 wurdeLOCATION: den Standort des Data-Clean-RoomsCLEAN_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
Rufen Sie in der Google Cloud -Console die Seite Sharing (Analytics Hub) auf.
Klicken Sie auf den Anzeigenamen des Data-Clean-Rooms, der die Abfragevorlage enthält.
Wechseln Sie im Data-Clean-Room zum Tab Vorlagen.
Klicken Sie in der Zeile für die Vorlage, die Sie überprüfen müssen, auf Freigabestatus > Überprüfung erforderlich.
Klicken Sie auf Genehmigen.
Wählen Sie den Speicherort der Vorlage aus. An diesem Speicherort wird die TVF für die Freigabe erstellt.
Prüfen Sie die vorgeschlagene Abfragevorlage.
Klicken Sie auf Genehmigen, um die Abfragevorlage für die Verwendung im Data-Clean-Room zu genehmigen.
API
Erstellen Sie die Routine aus der Abfragevorlage, indem Sie die Methode
jobserver.queryaufrufen: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.
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-RoomsCLEAN_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.
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-RoomsCLEAN_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:
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Rufen Sie im Bereich Explorer das verknüpfte Dataset auf, das Sie beim Abonnieren des Data-Clean-Rooms erstellt haben.
Öffnen Sie die Routine oder TVF, die im verknüpften Dataset freigegeben ist.
Klicken Sie auf Tabellenfunktion aufrufen.
Ersetzen Sie den Parameter durch die akzeptierte Eingabe, also den Tabellennamen oder ein Feld.
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 wurdeLOCATION: den Standort des Data-Clean-RoomsCLEAN_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
- Weitere Informationen zu Data-Clean-Rooms finden Sie unter Vertrauliche Daten mit Data-Clean-Rooms teilen.
- Weitere Informationen zu Abos finden Sie unter Data-Clean-Room abonnieren.
- Weitere Informationen zu TVFs finden Sie unter Tabellenfunktionen.
- Weitere Informationen zum ausgehenden Datentraffic für freigegebene BigQuery-Datasets finden Sie unter Optionen für ausgehenden Datentraffic.