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
undVIEW
. - 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
Rufen Sie 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 erhalten, 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 (
-
So 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-Aboinhaber (
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 Data Viewer (
roles/bigquery.dataViewer
) für das Projekt -
BigQuery-Nutzer (
roles/bigquery.user
) für das Projekt
-
BigQuery Data Viewer (
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 Projektbigquery.routines.update
für das Projektbigquery.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 Projektanalyticshub.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 Projektanalyticshub.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.
Vorlagenersteller: Ein Nutzer, der die Abfragen definiert, die im Data-Clean-Room ausgeführt werden sollen. Diese Rolle entspricht einer der folgenden Rollen: Analytics Hub-Administrator, Analytics Hub-Publisher oder Administrator für Analytics Hub-Einträge. 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 entspricht einer der folgenden Rollen: Analytics Hub-Administrator, Analytics Hub-Publisher oder Administrator für Analytics Hub-Einträge. Weitere Informationen finden Sie unter Workflows für die Genehmigung von Vorlagen.
Vorlagenabonnent: Ein Nutzer, der den Data-Clean-Room abonniert und nur die in der Vorlage genehmigten Abfragen ausführen kann. Diese Rolle entspricht der Rolle Analytics Hub-Abonnent. Weitere Informationen finden Sie unter Abonnenten-Workflows.
Workflows für Vorlagenersteller
Als Ersteller von Abfragevorlagen haben Sie folgende Möglichkeiten:
- Abfragevorlage erstellen
- Abfragevorlage aktualisieren:
- Reichen Sie eine Abfragevorlage zur Überprüfung ein.
- Abfragevorlage löschen
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:
Rufen Sie die Seite Freigabe (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 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.
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 freigegebenen Daten selbst) freigeben möchten, wählen Sie Zugriff auf Einträge aus verknüpftem Dataset ausschließen aus.
Prüfen Sie die Eintragsdetails.
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
Rufen Sie die Seite Freigabe (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 Namen und eine Beschreibung für die Vorlage ein.
Klicken Sie auf Weiter.
Sie können die Schemas der Ansichten sehen, die dem Data-Clean-Room hinzugefügt wurden, und eine Abfragedefinition vorschlagen.
- Achten Sie darauf, die Abfrage mit der unterstützten
CREATE TABLE FUNCTION
-Syntax zu definieren. Ü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)
Wenn Sie Datenschutz-Analyseregeln auf die Daten angewendet haben, muss diese TVF datenschutzspezifische SQL-Syntax enthalten, z. B.
SELECT WITH AGGREGATION_THRESHOLD
.
- Achten Sie darauf, die Abfrage mit der unterstützten
Sehen Sie sich die Vorlagendetails an.
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
Rufen Sie die Seite Freigabe (Analytics Hub) auf.
Klicken Sie auf den Anzeigenamen des Data-Clean-Rooms, der die Abfragevorlage enthält.
Rufen Sie im Data-Clean-Room den Tab Vorlagen auf.
Klicken Sie in der Zeile der Vorlage, die Sie aktualisieren möchten, auf Aktionen > Vorlage bearbeiten.
Aktualisieren Sie die Vorlagendetails und die Abfragedefinition nach Bedarf.
Klicken Sie auf Weiter.
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
Rufen Sie die Seite Freigabe (Analytics Hub) auf.
Klicken Sie auf den Anzeigenamen des Data-Clean-Rooms, der die Abfragevorlage enthält.
Rufen Sie im Data-Clean-Room den Tab Vorlagen auf.
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
Rufen Sie die Seite Freigabe (Analytics Hub) auf.
Klicken Sie auf den Anzeigenamen des Data-Clean-Rooms, der die Abfragevorlage enthält.
Rufen Sie im Data-Clean-Room den Tab Vorlagen auf.
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
Rufen Sie die Seite Freigabe (Analytics Hub) auf.
Klicken Sie auf den Anzeigenamen des Data-Clean-Rooms, der die Abfragevorlage enthält.
Rufen Sie im Data-Clean-Room den Tab Vorlagen auf.
Klicken Sie in der Zeile der Vorlage, die überprüft werden muss, auf Genehmigungsstatus > Überprüfung erforderlich.
Klicken Sie auf Genehmigen.
Wählen Sie den Vorlagenstandort aus. An diesem Speicherort wird die TVF für die Freigabe erstellt.
Sehen Sie sich die vorgeschlagene Abfragevorlage an.
Klicken Sie auf Genehmigen, wenn die Abfragevorlage für die Verwendung im Data-Clean-Room genehmigt ist.
API
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.
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.
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:
- Genehmigen Sie die eingereichte Überprüfung der Abfragevorlage nicht.
- Löschen Sie die Abfragevorlage, um sie aus dem Cleanroom zu entfernen.
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:
Rufen Sie die Seite BigQuery auf.
Rufen Sie das verknüpfte Dataset auf, das Sie beim Abonnieren des Clean Rooms erstellt haben.
Öffnen Sie die Routine oder TVF, die im verknüpften Dataset freigegeben wurde.
Klicken Sie auf Tabellenfunktion aufrufen.
Ersetzen Sie den Parameter durch die akzeptierte Eingabe, also den Tabellennamen oder das Feld.
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
- Weitere Informationen zu Data-Clean-Rooms finden Sie unter Vertrauliche Daten mit Data-Clean-Room teilen.
- Weitere Informationen zu Abonnements
- Weitere Informationen zu TVFs finden Sie unter Tabellenfunktionen.
- Weitere Informationen zum Daten-Egress finden Sie unter Optionen für den Daten-Egress (nur freigegebene BigQuery-Datasets).