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.
- Optional: Verwenden Sie bei Terraform die Terraform-GCP-Version 4.25.0 oder höher. Sie können die neueste Version von HashiCorp Terraform-Downloads herunterladen.
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
Hängen Sie folgenden Abschnitt an Ihre main.tf
-Datei an.
## This creates a cloud resource connection. ## Note: The cloud resource nested object has only one output only field - serviceAccountId. resource "google_bigquery_connection" "connection" { connection_id = "CONNECTION_ID" project = "PROJECT_ID" location = "REGION" cloud_resource {} }
CONNECTION_ID
: eine ID für Ihre VerbindungPROJECT_ID
: Ihre Google Cloud-Projekt-IDREGION
: Ihre Verbindungsregion
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://example-bucket \ --member=serviceAccount:MEMBER \ --role=roles/storage.objectViewer
Ersetzen Sie MEMBER
durch die zuvor kopierte Dienstkonto-ID.
Weitere Informationen finden Sie unter Hauptkonto zu einer Richtlinie auf Bucket-Ebene hinzufügen.
Terraform
Hängen Sie folgenden Abschnitt an Ihre main.tf
-Datei an.
## This grants permissions to the service account of the connection created in the last step. resource "google_project_iam_member" "connectionPermissionGrant" { project = "PROJECT_ID" role = "roles/storage.objectViewer" member = format("serviceAccount:%s", google_bigquery_connection.connection.cloud_resource[0].service_account_id) }
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