Cloud-Ressourcen-Verbindung erstellen und einrichten
Als BigQuery-Administrator können Sie eine Cloud-Ressourcenverbindung erstellen, mit der Datenanalysten die folgenden Aufgaben ausführen können:
- Strukturierte Cloud Storage-Daten mithilfe von BigLake-Tabellen abfragen. Mit BigLake-Tabellen können Sie externe Daten mit Zugriffsdelegation abfragen.
- Unstrukturierte Daten in Cloud Storage mithilfe von Objekttabellen abfragen.
- Implementieren Sie Remote-Funktionen mit allen unterstützten Sprachen in Cloud Run Functions oder Cloud Run.
Weitere Informationen zu Verbindungen finden Sie unter Einführung in Verbindungen.
Vorbereitung
BigQuery Connection API aktivieren.
-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Erstellen einer Cloud-Ressourcenverbindung benötigen:
-
BigQuery-Verbindungsadministrator (
roles/bigquery.connectionAdmin
) für das Projekt -
Storage-Objekt-Betrachter (
roles/storage.objectViewer
) für den Bucket
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Wenn Sie strukturierte Daten mit BigLake-Tabellen auf Basis von Cloud Storage oder unstrukturierte Daten mit Objekttabellen abfragen möchten, muss das mit der Verbindung verbundene Dienstkonto auch die Rolle Storage-Betrachter (roles/storage.viewer
) auf dem Bucket haben, der die externen Daten enthält.
-
BigQuery-Verbindungsadministrator (
- Prüfen Sie, ob Ihre Version des Google Cloud SDK 366.0.0 oder höher ist:
gcloud version
Aktualisieren Sie das Google Cloud SDK bei Bedarf.
Standortberücksichtigung
Wenn Sie Datendateien in Cloud Storage speichern, empfehlen wir die Verwendung einer einzelnen oder einer dualen Cloud Storage-Bucket-Region für eine optimale Leistung. Buckets mit mehreren Regionen werden nicht empfohlen.
Cloud-Ressourcen-Verbindungen erstellen
BigLake verwendet eine Verbindung für den Zugriff auf Cloud Storage. Sie können diese Verbindung mit einer einzelnen Tabelle oder einer Gruppe von Tabellen verwenden.
Wählen Sie eine der folgenden Optionen aus:
Console
Rufen Sie die Seite BigQuery auf.
Klicken Sie auf
Hinzufügen und dann auf Verbindungen zu externen Datenquellen, um eine Verbindung zu erstellen.Wählen Sie in der Liste Verbindungstyp die Option Vertex AI-Remote-Modelle, Remote-Funktionen und BigLake (Cloud Resource) aus.
Geben Sie im Feld Verbindungs-ID einen Namen für die Verbindung ein.
Klicken Sie auf Verbindung erstellen.
Klicken Sie auf Zur Verbindung.
Kopieren Sie im Bereich Verbindungsinformationen die Dienstkonto-ID zur Verwendung in einem späteren Schritt.
bq
Erstellen Sie in einer Befehlszeilenumgebung eine Verbindung:
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
Der Parameter
--project_id
überschreibt das Standardprojekt.Ersetzen Sie dabei Folgendes:
REGION
: Ihre VerbindungsregionPROJECT_ID
: Ihre Google Cloud-Projekt-IDCONNECTION_ID
: eine ID für Ihre Verbindung
Wenn Sie eine Verbindungsressource herstellen, erstellt BigQuery ein eindeutiges Systemdienstkonto und ordnet es der Verbindung zu.
Fehlerbehebung:Wird der folgende Verbindungsfehler angezeigt, aktualisieren Sie das Google Cloud SDK:
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
Rufen Sie die Dienstkonto-ID ab und kopieren Sie sie zur Verwendung in einem späteren Schritt:
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
Die Ausgabe sieht in etwa so aus:
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
Terraform
Verwenden Sie die Ressource google_bigquery_connection
:
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Im folgenden Beispiel wird eine Cloud-Ressourcenverbindung mit dem Namen my_cloud_resource_connection
in der Region US
erstellt:
Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud-Projekt anzuwenden.
Cloud Shell vorbereiten
- Rufen Sie Cloud Shell auf.
-
Legen Sie das Google Cloud-Standardprojekt fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.
Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.
Verzeichnis vorbereiten
Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).
-
Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung
.tf
haben, z. B.main.tf
. In dieser Anleitung wird die Datei alsmain.tf
bezeichnet.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.
Kopieren Sie den Beispielcode in das neu erstellte
main.tf
.Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.
- Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
- Speichern Sie die Änderungen.
-
Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
terraform init
Fügen Sie optional die Option
-upgrade
ein, um die neueste Google-Anbieterversion zu verwenden:terraform init -upgrade
Änderungen anwenden
-
Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
terraform plan
Korrigieren Sie die Konfiguration nach Bedarf.
-
Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie
yes
an der Eingabeaufforderung ein:terraform apply
Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.
- Öffnen Sie Ihr Google Cloud-Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.
Zugriff auf das Dienstkonto gewähren
Wenn Sie Remote-Funktionen erstellen möchten, müssen Sie Cloud Run Functions oder Cloud Run erforderliche Rollen zuweisen.
Wenn Sie eine Verbindung zu Cloud Storage herstellen möchten, müssen Sie der neuen Verbindung Lesezugriff auf Cloud Storage gewähren, damit BigQuery im Namen von Nutzern auf Dateien zugreifen kann.
Wählen Sie eine der folgenden Optionen aus:
Console
Wir empfehlen, dem Dienstkonto der Verbindungsressource die IAM-Rolle Storage-Objekt-Betrachter (roles/storage.objectViewer
) zuzuweisen, damit das Dienstkonto auf Cloud Storage-Buckets zugreifen kann.
Zur Seite IAM & Verwaltung.
Klicken Sie auf
Hinzufügen.Das Dialogfeld Principals hinzufügen wird geöffnet.
Geben Sie im Feld Neue Hauptkonten die Dienstkonto-ID ein, die Sie zuvor kopiert haben.
Wählen Sie im Feld Rolle auswählen die Option Cloud Storage und dann Storage-Objekt-Betrachter aus.
Klicken Sie auf Speichern.
gcloud
Führen Sie folgenden gcloud storage buckets add-iam-policy-binding
-Befehl aus:
gcloud storage buckets add-iam-policy-binding gs://BUCKET \ --member=serviceAccount:MEMBER \ --role=roles/storage.objectViewer
Ersetzen Sie Folgendes:
BUCKET
: Der Name Ihres Storage-Buckets.MEMBER
: Die Dienstkonto-ID, die Sie zuvor kopiert haben.
Weitere Informationen finden Sie unter Hauptkonto zu einer Richtlinie auf Bucket-Ebene hinzufügen.
Terraform
Verwenden Sie die Ressource google_bigquery_connection
:
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Im folgenden Beispiel wird dem Dienstkonto der Cloud-Ressourcenverbindung IAM-Rollenzugriff gewährt:
Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud-Projekt anzuwenden.
Cloud Shell vorbereiten
- Rufen Sie Cloud Shell auf.
-
Legen Sie das Google Cloud-Standardprojekt fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.
Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.
Verzeichnis vorbereiten
Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).
-
Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung
.tf
haben, z. B.main.tf
. In dieser Anleitung wird die Datei alsmain.tf
bezeichnet.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.
Kopieren Sie den Beispielcode in das neu erstellte
main.tf
.Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.
- Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
- Speichern Sie die Änderungen.
-
Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
terraform init
Fügen Sie optional die Option
-upgrade
ein, um die neueste Google-Anbieterversion zu verwenden:terraform init -upgrade
Änderungen anwenden
-
Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
terraform plan
Korrigieren Sie die Konfiguration nach Bedarf.
-
Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie
yes
an der Eingabeaufforderung ein:terraform apply
Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.
- Öffnen Sie Ihr Google Cloud-Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.
Verbindungen für Nutzer freigeben
Sie können die folgenden Rollen zuweisen, damit Nutzer Daten abfragen und Verbindungen verwalten können:
roles/bigquery.connectionUser
: Nutzer können Verbindungen nutzen, um sich mit externen Datenquellen zu verbinden und diese abzufragen.roles/bigquery.connectionAdmin
: Nutzer können Verbindungen verwalten.
Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.
Wählen Sie eine der folgenden Optionen aus:
Console
Rufen Sie die Seite BigQuery auf.
Verbindungen werden in Ihrem Projekt in einer Gruppe namens Externe Verbindungen aufgeführt.
Klicken Sie im Bereich Explorer auf Ihren Projektnamen > Externe Verbindungen > Verbindung.
Klicken Sie im Bereich Details auf Freigeben, um eine Verbindung freizugeben. Führen Sie anschließend folgende Schritte aus:
Geben Sie im Dialogfeld Verbindungsberechtigungen die Verbindung für andere Hauptkonten frei, indem Sie Hauptkonten hinzufügen oder bearbeiten.
Klicken Sie auf Speichern.
bq
Sie können keine Verbindung mit dem bq-Befehlszeilentool freigeben. Verwenden Sie zum Freigeben einer Verbindung die Google Cloud Console oder die Methode der BigQuery Connections API.
API
Verwenden Sie die Methode projects.locations.connections.setIAM
in dem Referenzabschnitt zur BigQuery Connections REST API und geben Sie eine Instanz der Ressource policy
an.
Java
Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.
Nächste Schritte
- Weitere Informationen zu verschiedenen Verbindungstypen
- Verbindungen verwalten
- Informationen zu BigLake-Tabellen.
- BigLake-Tabellen erstellen
- Externe Tabellen auf BigLake-Tabellen aktualisieren
- Objekttabellen und wie man sie erstellt
- Remote-Funktionen implementieren