Il modello da SQL Server a BigQuery è una pipeline batch che copia i dati da una tabella SQL Server a una tabella BigQuery esistente. Questa pipeline utilizza JDBC per la connessione a SQL Server. Per un ulteriore livello di protezione, puoi anche passare una chiave Cloud KMS insieme a nome utente, password e parametri della stringa di connessione codificati in Base64 e criptati con la chiave Cloud KMS. Per saperne di più sulla crittografia di nome utente, password e parametri della stringa di connessione, consulta l'endpoint di crittografia dell'API Cloud KMS.
Requisiti della pipeline
- La tabella BigQuery deve esistere prima dell'esecuzione della pipeline.
- La tabella BigQuery deve avere uno schema compatibile.
- Il database relazionale deve essere accessibile dalla subnet in cui viene eseguito Dataflow.
Parametri del modello
Parametro | Descrizione |
---|---|
connectionURL |
La stringa dell'URL di connessione JDBC. Ad esempio, jdbc:sqlserver://some-host:port-number/sampledb .
Puoi passare questo valore come stringa criptata con una chiave Cloud KMS e poi codificata in Base64.
Rimuovi gli spazi vuoti dalla stringa codificata in Base64. Per maggiori informazioni, consulta
Creazione dell'URL di connessione
nei tutorial di SQL Server. |
outputTable |
La posizione della tabella di output BigQuery, nel formato <my-project>:<my-dataset>.<my-table> . |
bigQueryLoadingTemporaryDirectory |
La directory temporanea per il processo di caricamento di BigQuery.
Ad esempio, gs://<my-bucket>/my-files/temp_dir . |
query |
La query da eseguire sull'origine per estrarre i dati. Ad esempio, select * from sampledb.sample_table .
Obbligatorio se non vengono utilizzate le partizioni. |
table |
La tabella da cui estrarre i dati. Questo parametro accetta anche una sottoquery tra parentesi.
Ad esempio, Person o (select id, name from Person) as subq .
Obbligatorio quando si utilizzano le partizioni. |
partitionColumn |
Il nome di una colonna da utilizzare per il partizionamento. Sono supportate solo colonne numeriche. Obbligatorio quando si utilizzano le partizioni. |
connectionProperties |
Facoltativo: la stringa delle proprietà da utilizzare per la connessione JDBC. Il formato della stringa deve essere [propertyName=property;]* .
Ad esempio, authentication=ActiveDirectoryIntegrated;domainName=DOMAIN . Per ulteriori informazioni, consulta le proprietà nei tutorial di SQL Server. |
username |
Facoltativo: il nome utente da utilizzare per la connessione JDBC. Puoi passare questo valore criptato da una chiave Cloud KMS come stringa con codifica Base64. |
password |
Facoltativo: la password da utilizzare per la connessione JDBC. Puoi passare questo valore criptato da una chiave Cloud KMS come stringa con codifica Base64. |
KMSEncryptionKey |
(Facoltativo) La chiave di crittografia di Cloud KMS da utilizzare per decriptare il nome utente, la password e la stringa di connessione. Se passi in una chiave Cloud KMS, devi criptare anche il nome utente, la password e la stringa di connessione. |
numPartitions |
(Facoltativo) Il numero di partizioni da utilizzare. Se non specificato, il worker usa un numero conservativo. |
disabledAlgorithms |
(Facoltativo) Algoritmi separati da virgole da disattivare. Se questo valore viene impostato su none , nessun algoritmo viene disattivato.
Utilizza questo parametro con cautela, perché gli algoritmi disattivati per impostazione predefinita potrebbero presentare vulnerabilità o problemi di prestazioni.
Ad esempio: SSLv3, RC4. |
extraFilesToStage |
Percorsi Cloud Storage o secret di Secret Manager separati da virgole per i file da inserire in un'area intermedia nel worker.
Questi file vengono salvati nella directory /extra_files di ciascun worker.
Ad esempio, gs://<my-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, vedi Località Dataflow.
- Nel menu a discesa Modello Dataflow, seleziona the SQL Server to BigQuery 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 flex-template run JOB_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/SQLServer_to_BigQuery \ --parameters \ connectionURL=JDBC_CONNECTION_URL,\ query=SOURCE_SQL_QUERY,\ outputTable=PROJECT_ID:DATASET.TABLE_NAME, bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS,\ connectionProperties=CONNECTION_PROPERTIES,\ username=CONNECTION_USERNAME,\ password=CONNECTION_PASSWORD,\ KMSEncryptionKey=KMS_ENCRYPTION_KEY
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
JDBC_CONNECTION_URL
: URL di connessione JDBCSOURCE_SQL_QUERY
: la query SQL da eseguire sul database di origineDATASET
: il tuo set di dati BigQueryTABLE_NAME
: nome della tua tabella BigQueryPATH_TO_TEMP_DIR_ON_GCS
: percorso Cloud Storage della directory temporaneaCONNECTION_PROPERTIES
: le proprietà di connessione JDBC, se necessarieCONNECTION_USERNAME
: il nome utente della connessione JDBCCONNECTION_PASSWORD
: password per la connessione JDBCKMS_ENCRYPTION_KEY
: la chiave di crittografia di Cloud KMS
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/flexTemplates:launch { "launchParameter": { "jobName": "JOB_NAME", "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/SQLServer_to_BigQuery" "parameters": { "connectionURL": "JDBC_CONNECTION_URL", "query": "SOURCE_SQL_QUERY", "outputTable": "PROJECT_ID:DATASET.TABLE_NAME", "bigQueryLoadingTemporaryDirectory": "PATH_TO_TEMP_DIR_ON_GCS", "connectionProperties": "CONNECTION_PROPERTIES", "username": "CONNECTION_USERNAME", "password": "CONNECTION_PASSWORD", "KMSEncryptionKey":"KMS_ENCRYPTION_KEY" }, "environment": { "zone": "us-central1-f" } } }
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
JDBC_CONNECTION_URL
: URL di connessione JDBCSOURCE_SQL_QUERY
: la query SQL da eseguire sul database di origineDATASET
: il tuo set di dati BigQueryTABLE_NAME
: nome della tua tabella BigQueryPATH_TO_TEMP_DIR_ON_GCS
: percorso Cloud Storage della directory temporaneaCONNECTION_PROPERTIES
: le proprietà di connessione JDBC, se necessarieCONNECTION_USERNAME
: il nome utente della connessione JDBCCONNECTION_PASSWORD
: password per la connessione JDBCKMS_ENCRYPTION_KEY
: la chiave di crittografia di Cloud KMS
Passaggi successivi
- Scopri di più sui modelli Dataflow.
- Consulta l'elenco dei modelli forniti da Google.