Il modello Java Database Connectivity (JDBC) in Pub/Sub è una pipeline batch che importa i dati dall'origine JDBC e scrive i record risultanti in un Pub/Sub preesistente come stringa JSON.
Requisiti della pipeline
- L'origine JDBC deve esistere prima dell'esecuzione della pipeline.
- L'argomento di output Pub/Sub deve esistere prima dell'esecuzione della pipeline.
Parametri del modello
Parametri obbligatori
- driverClassName : il nome della classe del driver JDBC. (ad es. com.mysql.jdbc.Driver).
- connectionUrl : la stringa dell'URL di connessione JDBC. Puoi passare questo valore come stringa criptata con una chiave Cloud KMS e poi codificata in Base64. Rimuovi i caratteri di spaziatura dalla stringa codificata Base64. (Esempio: jdbc:mysql://some-host:3306/sampledb).
- driverJars: percorsi Cloud Storage separati da virgole per i driver JDBC. (Esempio: gs://your-bucket/driver_jar1.jar,gs://your-bucket/driver_jar2.jar).
- query: la query da eseguire sull'origine per estrarre i dati. (Esempio: seleziona * da sampledb.tabella_di_esempio).
- outputTopic: l'argomento Pub/Sub a cui pubblicare, nel formato projects/<PROJECT_ID>/topics/<TOPIC_NAME>. (Esempio: projects/your-project-id/topics/your-topic-name).
Parametri facoltativi
- username: il nome utente da utilizzare per la connessione JDBC. Puoi passare questo valore come stringa criptata con una chiave Cloud KMS e poi codificata in Base64. Ad esempio,
echo -n 'some_username' | glcloud kms encrypt --location=my_location --keyring=mykeyring --key=mykey --plaintext-file=- --ciphertext-file=- | base64
. - password : la password da utilizzare per la connessione JDBC. Puoi passare questo valore come stringa criptata con una chiave Cloud KMS e poi codificata in Base64. Ad esempio,
echo -n 'some_password' | glcloud kms encrypt --location=my_location --keyring=mykeyring --key=mykey --plaintext-file=- --ciphertext-file=- | base64
. - connectionProperties : la stringa delle proprietà da utilizzare per la connessione JDBC. Il formato della stringa deve essere
[propertyName=property;]*
. (Esempio: unicode=true;characterEncoding=UTF-8). - KMSEncryptionKey : la chiave di crittografia di Cloud KMS da utilizzare per decriptare il nome utente, la password e la stringa di connessione. Se viene passata una chiave Cloud KMS, il nome utente, la password e la stringa di connessione devono essere tutti passati criptati e con codifica base64. ad esempio projects/your-project/locations/global/keyRings/your-keyring/cryptoKeys/your-key.
- disabledAlgorithms: gli algoritmi da disattivare separati da virgole. Se questo valore è impostato su Nessuno, nessun algoritmo viene disabilitato. Utilizza questo parametro con cautela, perché gli algoritmi disattivati per impostazione predefinita potrebbero presentare vulnerabilità o problemi di prestazioni. (ad es. SSLv3, RC4).
- extraFilesToStage : percorsi Cloud Storage o secret di Secret Manager separati da virgola per i file da inserire nel worker. Questi file vengono salvati nella directory /extra_files in ogni worker. Esempio: gs://
- defaultLogLevel: imposta il livello di log nei worker. Le opzioni supportate sono OFF, ERROR, WARN, INFO, DEBUG, TRACE. Il valore predefinito è INFO.
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 Dataflow, seleziona the JDBC to Pub/Sub template.
- Inserisci i valori parametro negli appositi campi.
- 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/flex/Jdbc_to_PubSub \ --region REGION_NAME \ --parameters \ driverClassName=DRIVER_CLASS_NAME,\ connectionURL=JDBC_CONNECTION_URL,\ driverJars=DRIVER_PATHS,\ username=CONNECTION_USERNAME,\ password=CONNECTION_PASSWORD,\ connectionProperties=CONNECTION_PROPERTIES,\ query=SOURCE_SQL_QUERY,\ outputTopic=OUTPUT_TOPIC,\ KMSEncryptionKey=KMS_ENCRYPTION_KEY
Sostituisci quanto segue:
JOB_NAME
: un nome di 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 principale senza data del bucket: gs://dataflow-templates-REGION_NAME/latest/- il nome della versione, ad esempio
2023-09-12-00_RC00
, per utilizzare una versione specifica , che puoi trovare nidificata nella rispettiva cartella principale con data del bucket: gs://dataflow-templates-REGION_NAME/
REGION_NAME
: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempious-central1
DRIVER_CLASS_NAME
: il nome della classe del driverJDBC_CONNECTION_URL
: l'URL di connessione JDBCDRIVER_PATHS
: il percorso o i percorsi Cloud Storage separati da virgole di i driver JDBCCONNECTION_USERNAME
: il nome utente della connessione JDBCCONNECTION_PASSWORD
: la password di connessione JDBCCONNECTION_PROPERTIES
: le proprietà di connessione JDBC, se necessarioSOURCE_SQL_QUERY
: la query SQL da eseguire sul database di origineOUTPUT_TOPIC
: il Pub/Sub in cui pubblicareKMS_ENCRYPTION_KEY
: la chiave di crittografia Cloud KMS
API
Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per ulteriori informazioni sul
API e i 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/Jdbc_to_PubSub" "parameters": { "driverClassName": "DRIVER_CLASS_NAME", "connectionURL": "JDBC_CONNECTION_URL", "driverJars": "DRIVER_PATHS", "username": "CONNECTION_USERNAME", "password": "CONNECTION_PASSWORD", "connectionProperties": "CONNECTION_PROPERTIES", "query": "SOURCE_SQL_QUERY", "outputTopic": "OUTPUT_TOPIC", "KMSEncryptionKey":"KMS_ENCRYPTION_KEY" }, "environment": { "zone": "us-central1-f" } } }
Sostituisci quanto segue:
PROJECT_ID
: L'ID progetto Google Cloud in cui vuoi eseguire il job DataflowJOB_NAME
: un nome di 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 in cartella principale non-dated nel bucket: gs://dataflow-templates-REGION_NAME/latest/- il nome della versione, ad esempio
2023-09-12-00_RC00
, per utilizzare una versione specifica , che puoi trovare nidificata nella rispettiva cartella principale con data del bucket: gs://dataflow-templates-REGION_NAME/
LOCATION
: la regione in cui vuoi di eseguire il deployment del job Dataflow, ad esempious-central1
DRIVER_CLASS_NAME
: il nome della classe del conducenteJDBC_CONNECTION_URL
: l'URL di connessione JDBCDRIVER_PATHS
: il percorso o i percorsi Cloud Storage separati da virgole di i driver JDBCCONNECTION_USERNAME
: il nome utente della connessione JDBCCONNECTION_PASSWORD
: la password di connessione JDBCCONNECTION_PROPERTIES
: le proprietà di connessione JDBC, se necessarioSOURCE_SQL_QUERY
: la query SQL da eseguire sul database di origineOUTPUT_TOPIC
: il Pub/Sub in cui pubblicareKMS_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.