Die Vorlage "Cloud Storage Avro für Spanner" ist eine Batchpipeline, die aus Spanner exportierte und in Cloud Storage gespeicherte Avro-Dateien liest und in eine Spanner-Datenbank importiert.
Pipelineanforderungen
- Die Spanner-Zieldatenbank muss vorhanden und leer sein.
- Sie benötigen Leseberechtigungen für den Cloud Storage-Bucket und Schreibberechtigungen für die Spanner-Zieldatenbank.
- Der Cloud Storage-Eingabepfad muss vorhanden sein und die Datei
spanner-export.json
mit einer JSON-Beschreibung der zu importierenden Dateien enthalten. - Wenn die Avro-Quelldatei keinen Primärschlüssel enthält, müssen Sie vor der Ausführung der Vorlage eine leere Spanner-Tabelle mit einem Primärschlüssel erstellen. Dieser Schritt ist nicht erforderlich, wenn die Avro-Datei den Primärschlüssel definiert.
Vorlagenparameter
Erforderliche Parameter
- instanceId: Die Instanz-ID der Spanner-Datenbank.
- databaseId: Die Datenbank-ID der Spanner-Datenbank.
- inputDir: Der Cloud Storage-Pfad, aus dem die Avro-Dateien importiert werden.
Optionale Parameter
- spannerHost: Der Cloud Spanner-Endpunkt, der in der Vorlage aufgerufen werden soll. Wird nur zum Testen verwendet. Beispiel:
https://batch-spanner.googleapis.com
. Die Standardeinstellung ist https://batch-spanner.googleapis.com. - waitForIndexes: Bei
true
wartet die Pipeline auf das Erstellen von Indexen. Beifalse
wird der Job möglicherweise abgeschlossen, während Indexe noch im Hintergrund erstellt werden. Der Standardwert istfalse
. - waitForForeignKeys: Bei
true
wartet die Pipeline auf das Erstellen von Fremdschlüsseln. Beifalse
kann der Job abgeschlossen werden, während Fremdschlüssel noch im Hintergrund erstellt werden. Der Standardwert istfalse
. - waitForChangeStreams: Bei
true
wartet die Pipeline auf das Erstellen von Änderungsstreams. Beifalse
kann der Job abgeschlossen werden, während noch Änderungsstreams im Hintergrund erstellt werden. Der Standardwert isttrue
. - waitForSequences: Standardmäßig wird die Importpipeline beim Erstellen der Sequenz blockiert. Bei
false
kann die Import-Pipeline mit Sequenzen abgeschlossen werden, die noch im Hintergrund erstellt werden. - earlyIndexCreateFlag: Gibt an, ob die frühzeitige Indexerstellung aktiviert ist. Wenn die Vorlage eine große Anzahl an DDL-Anweisungen ausführt, ist es effizienter, Indexe vor dem Laden von Daten zu erstellen. Daher werden Indexe standardmäßig zuerst erstellt, wenn die Anzahl der DDL-Anweisungen einen Schwellenwert überschreitet. Wenn Sie diese Funktion deaktivieren möchten, legen Sie
earlyIndexCreateFlag
auffalse
fest. Der Standardwert isttrue
. - spannerProjectId: Die ID des Google Cloud-Projekts, das die Spanner-Datenbank enthält. Wenn nicht festgelegt, wird das Google Cloud-Standardprojekt verwendet.
- ddlCreationTimeoutInMinutes: Das Zeitlimit in Minuten für DDL-Anweisungen, die von der Vorlage ausgeführt werden. Der Standardwert ist 30 Minuten.
- spannerPriority: Die Anfragepriorität für Spanner-Aufrufe. Mögliche Werte sind
HIGH
,MEDIUM
undLOW
. Der Standardwert istMEDIUM
.
Führen Sie die Vorlage aus.
Console
- Rufen Sie die Dataflow-Seite Job aus Vorlage erstellen auf. Zur Seite "Job aus Vorlage erstellen“
- Geben Sie im Feld Jobname einen eindeutigen Jobnamen ein.
Damit der Job auf der Seite Instanzen für Spanner in der Google Cloud -Console angezeigt wird, muss der Jobname dem folgenden Format entsprechen:
cloud-spanner-import-SPANNER_INSTANCE_ID-SPANNER_DATABASE_NAME
Ersetzen Sie Folgendes:
SPANNER_INSTANCE_ID
: ID Ihrer Spanner-InstanzSPANNER_DATABASE_NAME
: Name der Spanner-Datenbank
- Optional: Wählen Sie für Regionaler Endpunkt einen Wert aus dem Drop-down-Menü aus. Die Standardregion ist
us-central1
.Eine Liste der Regionen, in denen Sie einen Dataflow-Job ausführen können, finden Sie unter Dataflow-Standorte.
- Wählen Sie im Drop-down-Menü Dataflow-Vorlage die Option the Avro Files on Cloud Storage to Cloud Spanner templateaus.
- Geben Sie Ihre Parameterwerte in die Parameterfelder ein.
- Klicken Sie auf Job ausführen.
gcloud
Führen Sie die Vorlage in der Shell oder im Terminal aus:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/GCS_Avro_to_Cloud_Spanner \ --region REGION_NAME \ --staging-location GCS_STAGING_LOCATION \ --parameters \ instanceId=INSTANCE_ID,\ databaseId=DATABASE_ID,\ inputDir=GCS_DIRECTORY
Ersetzen Sie Folgendes:
JOB_NAME
: ein eindeutiger Jobname Ihrer WahlVERSION
: Die Version der Vorlage, die Sie verwenden möchtenSie können die folgenden Werte verwenden:
latest
zur Verwendung der neuesten Version der Vorlage, die im nicht datierten übergeordneten Ordner im Bucket verfügbar ist: gs://dataflow-templates-REGION_NAME/latest/- Den Versionsnamen wie
2023-09-12-00_RC00
, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates-REGION_NAME/.
REGION_NAME
: die Region, in der Sie Ihren Dataflow-Job bereitstellen möchten, z. B.us-central1
INSTANCE_ID
: Die ID der Spanner-Instanz, die die Datenbank enthältDATABASE_ID
: Die ID der Spanner-Datenbank, in die importiert werden sollGCS_DIRECTORY
: Der Cloud Storage-Pfad, aus dem die Avro-Dateien importiert werden, z. B.gs://mybucket/somefolder
API
Senden Sie eine HTTP-POST-Anfrage, um die Vorlage mithilfe der REST API auszuführen. Weitere Informationen zur API und ihren Autorisierungsbereichen finden Sie unter projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates-LOCATION/VERSION/GCS_Avro_to_Cloud_Spanner { "jobName": "JOB_NAME", "parameters": { "instanceId": "INSTANCE_ID", "databaseId": "DATABASE_ID", "inputDir": "gs://GCS_DIRECTORY" }, "environment": { "machineType": "n1-standard-2" } }
Ersetzen Sie Folgendes:
PROJECT_ID
: die Google Cloud -Projekt-ID, in der Sie den Dataflow-Job ausführen möchtenJOB_NAME
: ein eindeutiger Jobname Ihrer WahlVERSION
: Die Version der Vorlage, die Sie verwenden möchtenSie können die folgenden Werte verwenden:
latest
zur Verwendung der neuesten Version der Vorlage, die im nicht datierten übergeordneten Ordner im Bucket verfügbar ist: gs://dataflow-templates-REGION_NAME/latest/- Den Versionsnamen wie
2023-09-12-00_RC00
, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates-REGION_NAME/.
LOCATION
: die Region, in der Sie Ihren Dataflow-Job bereitstellen möchten, z. B.us-central1
INSTANCE_ID
: Die ID der Spanner-Instanz, die die Datenbank enthältDATABASE_ID
: Die ID der Spanner-Datenbank, in die importiert werden sollGCS_DIRECTORY
: Der Cloud Storage-Pfad, aus dem die Avro-Dateien importiert werden, z. B.gs://mybucket/somefolder
Nächste Schritte
- Dataflow-Vorlagen
- Sehen Sie sich die Liste der von Google bereitgestellten Vorlagen an.