Daten nach Spanner exportieren (umgekehrte ETL)
Wenn Sie Feedback geben oder Support für dieses Feature anfordern möchten, senden Sie eine E-Mail an bq-cloud-spanner-federation-preview@google.com.
In diesem Dokument wird beschrieben, wie Sie einen Workflow für Reverse Extrahieren, Transformieren und Laden (Reverse ETL) von BigQuery nach Spanner einrichten. Dazu verwenden Sie die Anweisung EXPORT DATA
, um Daten aus einer BigQuery-Tabelle in eine Spanner-Tabelle zu exportieren.
Dieser umgekehrte ETL-Workflow kombiniert Analysefunktionen in BigQuery mit niedriger Latenz und hohem Durchsatz in Spanner. Mit diesem Workflow können Sie Daten für Anwendungsnutzer bereitstellen, ohne dabei Kontingente und Limits in BigQuery aufzubrauchen.
Hinweise
- Erteilen Sie IAM-Rollen (Identity and Access Management), die Nutzern die erforderlichen Berechtigungen zum Ausführen der einzelnen Aufgaben in diesem Dokument geben.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Exportieren von BigQuery-Daten nach Spanner benötigen:
- Daten aus einer BigQuery-Tabelle exportieren:
BigQuery-Datenbetrachter (
roles/bigquery.dataViewer
) - Exportjob ausführen:
BigQuery-Nutzer (
roles/bigquery.user
) -
Daten in eine Spanner-Tabelle schreiben:
Cloud Spanner-Datenbank-Nutzer (
roles/spanner.databaseUser
)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Beschränkungen
Für die folgenden BigQuery-Datentypen gibt es keine Entsprechungen in Spanner und werden nicht unterstützt:
Spanner-Datenbankdialekt | Nicht unterstützte BigQuery-Typen |
---|---|
Alle Dialekte |
|
GoogleSQL |
|
Die maximale Größe einer exportierten Zeile darf 1 MiB nicht überschreiten.
Exporte mit der Option spanner_options
konfigurieren
Mit der Option spanner_options
können Sie eine Spanner-Zieldatenbank und -tabelle angeben. Die Konfiguration wird in Form eines JSON-Strings ausgedrückt, wie im folgenden Beispiel gezeigt:
EXPORT DATA OPTIONS( uri="https://spanner.googleapis.com/projects/PROJECT_ID
/instances/INSTANCE_ID
/databases/DATABASE_ID
", format='CLOUD_SPANNER', spanner_options = """{ "table": "TABLE_NAME
", "priority": "PRIORITY
", "tag": "TAG
", }""" )
Ersetzen Sie Folgendes:
PROJECT_ID
: der Name Ihres Google Cloud-ProjektsINSTANCE_ID
: der Name Ihrer DatenbankinstanzDATABASE_ID
: der Name Ihrer DatenbankTABLE_NAME
: der Name einer vorhandenen ZieltabellePRIORITY
(optional): Priorität der Schreibanfragen Zulässige Werte:LOW
,MEDIUM
,HIGH
Standardwert:MEDIUM
TAG
(optional): Anfrage-Tag, um den Exporter-Traffic im Spanner-Monitoring zu identifizieren. Standardwert:bq_export
Anforderungen für Exportabfragen
Für den Export von Abfrageergebnissen nach Spanner müssen die Ergebnisse die folgenden Voraussetzungen erfüllen:
- Alle Spalten in der Ergebnismenge müssen in der Zieltabelle vorhanden sein und ihre Typen müssen übereinstimmen.
- Die Ergebnismenge muss alle
NOT NULL
-Spalten für die Zieltabelle enthalten. - Spaltenwerte dürfen die Spanner-Datengrößenlimits in Tabellen nicht überschreiten.
- Nicht unterstützte Spaltentypen müssen vor dem Export in Spanner in einen der unterstützten Typen konvertiert werden.
Daten exportieren
Mit der Anweisung EXPORT DATA
können Sie Daten aus einer BigQuery-Tabelle in eine Spanner-Tabelle exportieren.
Im folgenden Beispiel werden ausgewählte Felder aus einer Tabelle mit dem Namen mydataset.table1
exportiert:
EXPORT DATA OPTIONS ( uri="https://spanner.googleapis.com/projects/PROJECT_ID
/instances/INSTANCE_ID
/databases/DATABASE_ID
", format='CLOUD_SPANNER', spanner_options="""{ "table": "TABLE_NAME" }""" ) AS SELECT * FROM mydataset.table1;
Ersetzen Sie Folgendes:
PROJECT_ID
: der Name Ihres Google Cloud-ProjektsINSTANCE_ID
: der Name Ihrer DatenbankinstanzDATABASE_ID
: der Name Ihrer DatenbankTABLE_NAME
: der Name einer vorhandenen Zieltabelle
Exportoptimierung
Versuchen Sie Folgendes, um den Export von Datensätzen von BigQuery nach Spanner zu optimieren:
Anzahl der Knoten in der Spanner-Zielinstanz erhöhen Der Exporter skaliert die Anzahl der BigQuery-Export-Slots automatisch proportional zur Anzahl der Spanner-Knoten und Verarbeitungseinheiten. Weitere Informationen zum Maximieren des Schreibdurchsatzes finden Sie unter Leistungsübersicht.
Vermeiden Sie die Sortierung der Abfrageergebnisse. Wenn die Ergebnismenge alle Primärschlüsselspalten enthält, sortiert der Exporter die Primärschlüssel der Zieltabelle automatisch, um Schreibvorgänge zu optimieren und Konflikte zu minimieren.
Wenn der Primärschlüssel der Zieltabelle generierte Spalten enthält, sollten Sie die Ausdrücke der generierten Spalten der Abfrage hinzufügen, damit die exportierten Daten korrekt sortiert werden.
Preise
Die Preise für den Datenexport finden Sie unter BigQuery-Preise.
Nachdem die Daten exportiert wurden, wird das Speichern der Daten in Spanner in Rechnung gestellt. Weitere Informationen finden Sie unter Spanner-Preise.