Il modello SourceDB to Spanner è una pipeline batch che copia i dati da un database relazionale in un database Spanner esistente. Questa pipeline utilizza JDBC per connettersi al database relazionale. Puoi utilizzare questo modello per copiare i dati da qualsiasi database relazionale con driver JDBC disponibili in Spanner. Supporta solo un insieme limitato di tipi di MySQL
Per un ulteriore livello di protezione, puoi anche passare una chiave Cloud KMS insieme a parametri di nome utente, password e stringa di connessione codificati in Base64 criptati con la chiave Cloud KMS. Consulta l'endpoint Crittografia API Cloud KMS per ulteriori dettagli sulla crittografia dei parametri di nome utente, password e stringa di connessione.
Requisiti della pipeline
- I driver JDBC per il database relazionale devono essere disponibili.
- Le tabelle Spanner devono esistere prima dell'esecuzione della pipeline.
- Le tabelle Spanner devono avere uno schema compatibile.
- Il database relazionale deve essere accessibile dalla subnet in cui viene eseguito Dataflow.
Parametri del modello
Parametro | Descrizione |
---|---|
sourceConfigURL |
Stringa dell'URL di connessione JDBC. Ad esempio,
jdbc:mysql://127.4.5.30:3306/my-db?autoReconnect=true&maxReconnects=10&unicode=true&characterEncoding=UTF-8
o la configurazione dello shard. |
instanceId |
L'istanza Cloud Spanner di destinazione. |
databaseId |
Il database Cloud Spanner di destinazione. |
projectId |
Questo è il nome del progetto Cloud Spanner. |
outputDirectory |
Questa directory viene utilizzata per scaricare i record non riusciti/ignorati/filtrati in una migrazione. |
jdbcDriverJars |
(Facoltativo) L'elenco separato da virgole dei file JAR del driver. Ad esempio:
gs://your-bucket/driver_jar1.jar,gs://your-bucket/driver_jar2.jar . Il valore predefinito è vuoto. |
jdbcDriverClassName |
(Facoltativo) Il nome della classe del driver JDBC. Ad esempio: com.mysql.jdbc.Driver . Il valore predefinito è:
com .mysql.jdbc.Driver. |
username |
(Facoltativo) Il nome utente da utilizzare per la connessione JDBC. Il valore predefinito è vuoto. |
password |
(Facoltativo) La password da utilizzare per la connessione JDBC. Il valore predefinito è vuoto. |
tables |
(Facoltativo) Tabelle di cui eseguire la migrazione dall'origine. Il valore predefinito è vuoto. |
numPartitions |
(Facoltativo) Il numero di partizioni. Questi valori, insieme al limite inferiore e superiore, formano gli incrementi delle partizioni per le espressioni della clausola WHERE generate
utilizzate per dividere uniformemente la colonna di partizione. Quando l'input è inferiore a 1, il numero viene impostato su 1.
Valore predefinito: 0 . |
spannerHost |
(Facoltativo) L'endpoint Cloud Spanner da chiamare nel modello. Ad esempio:
https://batch-spanner.googleapis.com . Il valore predefinito è: https://batch-spanner .googleapis.com. |
maxConnections |
(Facoltativo) Configura il pool di connessioni JDBC su ogni worker con il numero massimo di connessioni. Utilizza un numero negativo per
nessun limite. Ad esempio: -1 . Valore predefinito: 0 . |
sessionFilePath |
(Facoltativo) Il percorso della sessione in Cloud Storage che contiene le informazioni di mappatura di Spanner Migration Tool. Il valore predefinito è vuoto. |
transformationJarPath |
(Facoltativo) Posizione JAR personalizzata in Cloud Storage che contiene la logica di trasformazione personalizzata per l'elaborazione dei record. Il valore predefinito è vuoto. |
transformationClassName |
(Facoltativo) Nome della classe completo con la logica di trasformazione personalizzata. È un campo obbligatorio se viene specificato transformationJarPath. Il valore predefinito è vuoto. |
transformationCustomParameters |
(Facoltativo) Stringa contenente eventuali parametri personalizzati da passare alla classe di trasformazione personalizzata. Il valore predefinito è vuoto. |
disabledAlgorithms |
(Facoltativo) Algoritmi separati da virgole da disattivare. Se questo valore è impostato su none, nessun algoritmo viene disattivato. Utilizza questo parametro con
cautela, perché gli algoritmi disabilitati per impostazione predefinita potrebbero presentare vulnerabilità o problemi di prestazioni. Ad esempio:
SSLv3, RC4 . |
extraFilesToStage |
(Facoltativo) Percorsi Cloud Storage o secret Secret Manager separati da virgole per i file da preparare nel worker. Questi file
vengono salvati nella directory /extra_files di ogni worker. Ad esempio:
gs://<BUCKET>/file.txt,projects/<PROJECT_ID>/secrets/<SECRET_ID>/versions/<VERSION_ID> . |
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.
- (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, consulta Località di Dataflow.
- Dal menu a discesa Modello di dataflow, seleziona the Sourcedb to Spanner template.
- Nei campi dei parametri forniti, inserisci i valori dei parametri.
- Fai clic su Esegui job.
Interfaccia a riga di comando gcloud
Nella shell o nel terminale, esegui il modello:
gcloud dataflow flex-template run JOB_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/Sourcedb_to_Spanner_Flex \ --project=PROJECT_ID \ --region=REGION_NAME \ --parameters \ sourceConfigURL=SOURCE_CONFIG_URL,\ instanceId=INSTANCE_ID,\ databaseId=DATABASE_ID,\ projectId=PROJECT_ID,\ outputDirectory=OUTPUT_DIRECTORY,\
Sostituisci quanto segue:
JOB_NAME
: un nome univoco del job a tua sceltaVERSION
: la versione del modello che vuoi utilizzarePuoi utilizzare i seguenti valori:
latest
per utilizzare l'ultima versione del modello, disponibile nella cartella principale senza data 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 con data nel bucket: gs://dataflow-templates-REGION_NAME/
REGION_NAME
: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempious-central1
SOURCE_CONFIG_URL
: l'URL per connettersi all'host del database di origine. Può essere 1. L'URL di connessione JDBC, che deve contenere l'host, la porta e il nome del database di origine e può contenere facoltativamente proprietà come autoReconnect, maxReconnects e così via. Formato: `jdbc:mysql://{host}:{port}/{dbName}?{parameters}`2. Il percorso di configurazione dello shardINSTANCE_ID
: l'ID istanza Cloud Spanner.DATABASE_ID
: l'ID del database Cloud Spanner.PROJECT_ID
: l'ID progetto Cloud Spanner.OUTPUT_DIRECTORY
: la directory di output per gli eventi non riusciti/saltati/filtrati
API
Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per ulteriori informazioni sull'API e sui relativi ambiti di autorizzazione, consulta projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launchParameter": { "jobName": "JOB_NAME", "parameters": { "sourceConfigURL": "SOURCE_CONFIG_URL", "instanceId": "INSTANCE_ID", "databaseId": "DATABASE_ID", "projectId": "PROJECT_ID", "outputDirectory": "OUTPUT_DIRECTORY", }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/Sourcedb_to_Spanner_Flex", "environment": { "maxWorkers": "10" } } }
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto Google Cloud in cui vuoi eseguire il job DataflowJOB_NAME
: un nome univoco del job a tua sceltaVERSION
: la versione del modello che vuoi utilizzarePuoi utilizzare i seguenti valori:
latest
per utilizzare l'ultima versione del modello, disponibile nella cartella principale senza data 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 con data nel bucket: gs://dataflow-templates-REGION_NAME/
LOCATION
: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempious-central1
SOURCE_CONFIG_URL
: l'URL per connettersi all'host del database di origine. Può essere 1. L'URL di connessione JDBC, che deve contenere l'host, la porta e il nome del database di origine e può contenere facoltativamente proprietà come autoReconnect, maxReconnects e così via. Formato: `jdbc:mysql://{host}:{port}/{dbName}?{parameters}`2. Il percorso di configurazione dello shardINSTANCE_ID
: l'ID istanza Cloud Spanner.DATABASE_ID
: l'ID del database Cloud Spanner.PROJECT_ID
: l'ID progetto Cloud Spanner.OUTPUT_DIRECTORY
: la directory di output per gli eventi non riusciti/saltati/filtrati