Il modello File Avro di Cloud Storage in Spanner è una pipeline batch che legge i file Avro esportati da Spanner e 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 delle autorizzazioni di scrittura per il database Spanner di destinazione.
- Il percorso Cloud Storage di input deve esistere e deve includere un
spanner-export.jsonfile 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 è obbligatorio se il file Avro definisce la chiave primaria.
Parametri del modello
Parametri obbligatori
- instanceId: l'ID istanza del database Spanner.
- databaseId: l'ID database del database Spanner.
- inputDir: il percorso Cloud Storage da cui vengono importati i file Avro.
Parametri facoltativi
- spannerHost: l'endpoint Cloud Spanner da chiamare nel modello. Utilizzato solo per i test. Ad esempio,
https://batch-spanner.googleapis.com. Il valore predefinito è https://batch-spanner.googleapis.com. - waitForIndexes: se
true, la pipeline attende la creazione degli indici. Sefalse, il job potrebbe essere completato mentre gli indici sono ancora in fase di creazione in background. Il valore predefinito èfalse. - waitForForeignKeys: se
true, la pipeline attende la creazione delle chiavi esterne. Sefalse, il job potrebbe essere completato mentre le chiavi esterne sono ancora in fase di creazione in background. Il valore predefinito èfalse. - waitForChangeStreams: se
true, la pipeline attende la creazione degli stream di modifiche in tempo reale. Sefalse, il job potrebbe essere completato mentre gli stream di modifiche in tempo reale sono ancora in fase di creazione in background. Il valore predefinito ètrue. - waitForSequences: per impostazione predefinita, la pipeline di importazione è bloccata durante la creazione della sequenza. Se
false, la pipeline di importazione potrebbe essere completata mentre le sequenze sono ancora in fase di creazione in background. - earlyIndexCreateFlag: specifica se la creazione anticipata dell'indice è abilitata. Se il modello esegue un numero elevato di istruzioni DDL, è più efficiente creare gli indici prima di caricare i dati. Pertanto, il comportamento predefinito consiste nel creare prima gli indici quando il numero di istruzioni DDL supera una soglia. Per disattivare questa funzionalità, imposta
earlyIndexCreateFlagsufalse. Il valore predefinito ètrue. - spannerProjectId: l'ID del progetto Google Cloud che contiene il database Spanner. Se non è impostato, viene utilizzato il progetto Google Cloud predefinito.
- ddlCreationTimeoutInMinutes: il timeout in minuti per le istruzioni DDL eseguite dal modello. Il valore predefinito è 30 minuti.
- spannerPriority: la priorità della richiesta per le chiamate Spanner. I valori possibili sono
HIGH,MEDIUMeLOW. Il valore predefinito èMEDIUM. - earlyIndexCreateThreshold: la soglia per il numero di indici e chiavi esterne che determina se creare gli indici prima del caricamento dei dati. Se il numero totale di indici e chiavi esterne è maggiore di questa soglia, verranno creati prima dell'importazione dei dati per migliorare le prestazioni. Il valore predefinito è 40.
Esegui il modello
Console
- Vai alla pagina Dataflow Crea job da modello. Vai a Crea job da modello
- Nel campo Nome job, inserisci un nome job univoco.
Affinché il job venga visualizzato nella pagina Istanze Spanner Instances della Google Cloud console, il nome del job deve corrispondere al seguente formato:
cloud-spanner-import-SPANNER_INSTANCE_ID-SPANNER_DATABASE_NAME
Sostituisci quanto segue:
SPANNER_INSTANCE_ID: l'ID dell'istanza SpannerSPANNER_DATABASE_NAME: il nome del database Spanner
- (Facoltativo) Per Endpoint regionale, seleziona un valore dal menu a discesa. La regione predefinita è
us-central1.Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta Località di Dataflow.
- Dal menu a discesa Modello Dataflow, seleziona il modello File Avro in Cloud Storage in Cloud Spanner.
- 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/ \ --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:
latestper utilizzare la versione più recente del modello, disponibile nella cartella principale non datata nel bucket: gs://dataflow-templates-REGION_NAME/latest/- il nome della versione, ad esempio
2023-09-12-00_RC00, per utilizzare una versione specifica del modello, che si trova nidificata nella rispettiva cartella principale datata nel bucket: gs://dataflow-templates-REGION_NAME/
REGION_NAME: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempious-central1INSTANCE_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 HTTP POST. Per saperne di più 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/ { "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 progetto in cui vuoi eseguire il job Dataflow Google CloudJOB_NAME: un nome job univoco a tua sceltaVERSION: la versione del modello che vuoi utilizzarePuoi utilizzare i seguenti valori:
latestper utilizzare la versione più recente del modello, disponibile nella cartella principale non datata nel bucket: gs://dataflow-templates-REGION_NAME/latest/- il nome della versione, ad esempio
2023-09-12-00_RC00, per utilizzare una versione specifica del modello, che si trova nidificata nella rispettiva cartella principale datata nel bucket: gs://dataflow-templates-REGION_NAME/
LOCATION: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempious-central1INSTANCE_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.