Il modello di file Avro di Cloud Storage nel modello Spanner è una pipeline batch che legge i file Avro esportati da Spanner archiviati in Cloud Storage e li importa in un database Spanner.
Requisiti della pipeline
- Il database Spanner di destinazione deve esistere e deve essere vuoto.
- Devi disporre delle autorizzazioni di lettura per il bucket Cloud Storage e di quelle di scrittura per il database Spanner di destinazione.
- Il percorso Cloud Storage di input deve esistere e deve includere un file
spanner-export.json
contenente una descrizione JSON dei file da importare. - Se il file Avro di origine non contiene una chiave primaria, devi creare una tabella Spanner vuota con una chiave primaria prima di eseguire il modello. Questo passaggio non è necessario se il file Avro definisce la chiave primaria.
Parametri del modello
Parametro | Descrizione |
---|---|
instanceId |
L'ID istanza del database Spanner. |
databaseId |
L'ID del database Spanner. |
inputDir |
Il percorso di Cloud Storage da cui vengono importati i file Avro. |
spannerProjectId |
(Facoltativo) L'ID progetto Google Cloud del database Spanner. Se non viene configurato, viene utilizzato il progetto Google Cloud predefinito. |
spannerPriority |
(Facoltativo) La
priorità della richiesta
per le chiamate Spanner. I valori possibili sono HIGH ,
MEDIUM , LOW . Il valore predefinito è MEDIUM . |
ddlCreationTimeoutInMinutes |
(Facoltativo) Il timeout, in minuti, per le istruzioni DDL eseguite dal modello. Il valore predefinito è 30 minuti. |
earlyIndexCreateFlag |
(Facoltativo) Specifica se attivare la creazione anticipata dell'indice. Se il modello esegue un numero elevato di istruzioni DDL, è più efficiente creare gli indici prima di caricare i dati. Di conseguenza, il comportamento predefinito prevede la creazione degli indici prima quando il numero di istruzioni DDL supera una soglia. Per disattivare questa funzionalità, imposta earlyIndexCreateFlag
su false . Valore predefinito: true . |
waitForChangeStreams |
(Facoltativo) Se true , la pipeline attende la creazione dei modifiche in tempo reale. Se false , il job potrebbe essere completato mentre le modifiche
sono ancora in fase di creazione in background. Valore predefinito: true . |
waitForForeignKeys |
(Facoltativo) Se true , la pipeline attende la creazione delle chiavi esterne. Se false , il job potrebbe essere completato mentre le chiavi esterne sono ancora in fase di creazione in background. Valore predefinito: false . |
waitForIndexes |
(Facoltativo) Se true , la pipeline attende la creazione degli indici. Se false , il job potrebbe essere completato mentre gli indici sono ancora in fase di creazione in background. Valore predefinito: false . |
Esegui il modello
Console
- Vai alla pagina Crea job da modello di Dataflow. Vai a Crea job da modello
- Nel campo Nome job, inserisci un nome univoco per il job.
Affinché il job venga visualizzato nella pagina Istanze di Spanner della console Google Cloud, il nome del job deve corrispondere al formato seguente:
cloud-spanner-import-SPANNER_INSTANCE_ID-SPANNER_DATABASE_NAME
Sostituisci quanto segue:
SPANNER_INSTANCE_ID
: l'ID della tua istanza SpannerSPANNER_DATABASE_NAME
: nome del database Spanner
- (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. La regione predefinita è
us-central1
.Per un elenco delle regioni in cui puoi eseguire un job Dataflow, vedi Località Dataflow.
- Nel menu a discesa Modello Dataflow, seleziona the Avro Files on Cloud Storage to Cloud Spanner template.
- Nei campi dei parametri forniti, inserisci i valori dei parametri.
- Fai clic su Esegui job.
gcloud
Nella shell o nel terminale, esegui il modello:
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
Sostituisci quanto segue:
JOB_NAME
: un nome job univoco a tua sceltaVERSION
: la versione del modello che vuoi utilizzarePuoi utilizzare i seguenti valori:
latest
per utilizzare la versione più recente del modello, disponibile nella cartella padre senza data del bucket: gs://dataflow-templates-REGION_NAME/latest/- il nome della versione, come
2023-09-12-00_RC00
, per utilizzare una versione specifica del modello, che si trova nidificata nella rispettiva cartella padre con data all'interno del bucket: gs://dataflow-templates-REGION_NAME/
REGION_NAME
: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempious-central1
INSTANCE_ID
: l'ID dell'istanza Spanner che contiene il databaseDATABASE_ID
: l'ID del database Spanner in cui eseguire l'importazioneGCS_DIRECTORY
: il percorso Cloud Storage da cui vengono importati i file Avro, ad esempiogs://mybucket/somefolder
API
Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui relativi ambiti di autorizzazione, consulta 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" } }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto Google Cloud in cui vuoi eseguire il job DataflowJOB_NAME
: un nome job univoco a tua sceltaVERSION
: la versione del modello che vuoi utilizzarePuoi utilizzare i seguenti valori:
latest
per utilizzare la versione più recente del modello, disponibile nella cartella padre senza data del bucket: gs://dataflow-templates-REGION_NAME/latest/- il nome della versione, come
2023-09-12-00_RC00
, per utilizzare una versione specifica del modello, che si trova nidificata nella rispettiva cartella padre con data all'interno del bucket: gs://dataflow-templates-REGION_NAME/
LOCATION
: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempious-central1
INSTANCE_ID
: l'ID dell'istanza Spanner che contiene il databaseDATABASE_ID
: l'ID del database Spanner in cui eseguire l'importazioneGCS_DIRECTORY
: il percorso Cloud Storage da cui vengono importati i file Avro, ad esempiogs://mybucket/somefolder
Passaggi successivi
- Scopri di più sui modelli Dataflow.
- Consulta l'elenco dei modelli forniti da Google.