Externe Spanner-Datasets erstellen
In diesem Dokument wird beschrieben, wie Sie ein externes Dataset (auch als föderiertes Dataset bezeichnet) in BigQuery erstellen, das mit einer vorhandenen GoogleSQL- oder PostgreSQL-Datenbank in Spanner verknüpft ist.
Ein externes Dataset ist eine Verbindung zwischen BigQuery und einer externen Datenquelle auf Dataset-Ebene. Damit können Sie transaktionale Daten in Spanner-Datenbanken mit GoogleSQL abfragen, ohne alle Daten aus Spanner in den BigQuery-Speicher kopieren oder importieren zu müssen. Diese Abfrageergebnisse werden in BigQuery gespeichert.
Die Tabellen in einem externen Dataset werden automatisch aus den Tabellen in der entsprechenden externen Datenquelle gefüllt. Sie können diese Tabellen direkt in BigQuery abfragen, aber keine Änderungen vornehmen, etwas hinzufügen oder löschen. Alle Aktualisierungen, die Sie in der externen Datenquelle vornehmen, werden jedoch automatisch in BigQuery übernommen.
Wenn Sie Spanner abfragen, werden die Abfrageergebnisse standardmäßig in temporären Tabellen gespeichert. Sie können optional auch als neue BigQuery-Tabelle gespeichert, mit anderen Tabellen verknüpft oder mit vorhandenen Tabellen zusammengeführt werden. Dazu verwenden Sie DML.
Erforderliche Berechtigungen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle BigQuery-Nutzer (roles/bigquery.user) zuzuweisen, um die Berechtigung zu erhalten, die Sie zum Erstellen eines externen Datasets benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigung bigquery.datasets.create, die zum Erstellen eines externen Datasets erforderlich ist.
Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Einführung in IAM.
CLOUD_RESOURCE-Verbindung verwenden
Optional können für externe Spanner-Datasets eine CLOUD_RESOURCE-Verbindung verwendet werden, um mit Ihrer Spanner-Datenbank zu interagieren. So können Sie einem Nutzer Zugriff auf Spanner-Daten über BigQuery gewähren, ohne ihm direkten Zugriff auf die Spanner-Datenbank zu geben. Da das Dienstkonto aus der CLOUD_RESOURCE-Verbindung das Abrufen von Daten aus Spanner übernimmt, müssen Sie Nutzern nur Zugriff auf das externe Spanner-Dataset gewähren.
Führen Sie vor dem Erstellen externer Cloud Spanner-Datasets mit einer CLOUD_RESOURCE-Verbindung die folgenden Schritte aus:
Verbindung herstellen
Sie können eine CLOUD_RESOURCE-Verbindung erstellen oder eine vorhandene verwenden, um eine Verbindung zu Spanner herzustellen. Erstellen Sie die Verbindung am selben Speicherort, an dem Sie das externe Cloud Spanner-Dataset erstellen möchten.
Console
Rufen Sie die Seite BigQuery auf.
Klicken Sie im linken Bereich auf Explorer:

Wenn das linke Steuerfeld nicht angezeigt wird, klicken Sie auf Linkes Steuerfeld maximieren, um es zu öffnen.
Maximieren Sie im Bereich Explorer den Namen Ihres Projekts und klicken Sie dann auf Verbindungen.
Klicken Sie auf der Seite Verbindungen auf Verbindung erstellen.
Wählen Sie als Verbindungstyp die Option Vertex AI-Remote-Modelle, Remote-Funktionen, BigLake und Cloud Spanner (Cloud-Ressource) aus.
Geben Sie im Feld Verbindungs-ID einen Namen für die Verbindung ein.
Wählen Sie unter Standorttyp einen Standort für die Verbindung aus. Die Verbindung sollte sich am selben Ort wie Ihre anderen Ressourcen, z. B. Datasets, befinden.
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.
SQL
Verwenden Sie die Anweisung CREATE CONNECTION:
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Geben Sie im Abfrageeditor die folgende Anweisung ein:
CREATE CONNECTION [IF NOT EXISTS] `CONNECTION_NAME` OPTIONS ( connection_type = "CLOUD_RESOURCE", friendly_name = "FRIENDLY_NAME", description = "DESCRIPTION" );
Ersetzen Sie Folgendes:
-
CONNECTION_NAME: Der Name der Verbindung im FormatPROJECT_ID.LOCATION.CONNECTION_ID,LOCATION.CONNECTION_IDoderCONNECTION_ID. Wenn das Projekt oder der Standort weggelassen werden, werden sie aus dem Projekt und dem Standort abgeleitet, in dem die Anweisung ausgeführt wird. -
FRIENDLY_NAME(optional): Ein beschreibender Name für die Verbindung. -
DESCRIPTION(optional): eine Beschreibung der Verbindung.
-
Klicken Sie auf Ausführen.
Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.
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 etwa so aus:
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
Python
Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Python in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Python API.
Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.