Template Java Database Connectivity (JDBC) ke Pub/Sub adalah pipeline batch yang menyerap data dari sumber JDBC dan menulis kumpulan data yang dihasilkan ke topik Pub/Sub yang sudah ada sebagai string JSON.
Persyaratan pipeline
- Sumber JDBC harus ada sebelum menjalankan pipeline.
- Topik output Pub/Sub harus ada sebelum menjalankan pipeline.
Parameter template
Parameter | Deskripsi |
---|---|
driverClassName |
Nama class driver JDBC. Misalnya, com.mysql.jdbc.Driver . |
connectionUrl |
String URL koneksi JDBC. Misalnya, jdbc:mysql://some-host:3306/sampledb .
Anda dapat meneruskan nilai ini sebagai string yang dienkripsi dengan kunci Cloud KMS lalu berenkode Base64.
Menghapus karakter spasi kosong dari string berenkode Base64. |
driverJars |
Jalur Cloud Storage yang dipisahkan koma untuk driver JDBC. Misalnya, gs://your-bucket/driver_jar1.jar,gs://your-bucket/driver_jar2.jar . |
username |
Opsional: Nama pengguna yang akan digunakan untuk koneksi JDBC. Anda dapat meneruskan nilai ini yang dienkripsi oleh kunci Cloud KMS sebagai string berenkode Base64. |
password |
Opsional: Sandi yang akan digunakan untuk koneksi JDBC. Anda dapat meneruskan nilai ini yang dienkripsi oleh kunci Cloud KMS sebagai string berenkode Base64. |
connectionProperties |
Opsional: String properti yang akan digunakan untuk koneksi JDBC. Format string harus [propertyName=property;]* . Contoh, unicode=true;characterEncoding=UTF-8 . |
query |
Kueri yang akan dijalankan pada sumber untuk mengekstrak data. Misalnya, select * from sampledb.sample_table . |
outputTopic |
Topik Pub/Sub yang akan menjadi tujuan publikasi, dalam format projects/<project>/topics/<topic> . |
KMSEncryptionKey |
Opsional: Kunci Enkripsi Cloud KMS untuk mendekripsi nama pengguna, sandi, dan string koneksi. Jika kunci Cloud KMS diteruskan, nama pengguna, sandi, dan string koneksi harus diteruskan secara terenkripsi. |
extraFilesToStage |
Jalur Cloud Storage yang dipisahkan koma atau rahasia Secret Manager untuk file yang akan di-stage di worker. File ini akan disimpan dalam direktori /extra_files di setiap pekerja. Contoh, gs://<my-bucket>/file.txt,projects/<project-id>/secrets/<secret-id>/versions/<version-id> . |
Menjalankan template
Konsol
- Buka halaman Create job from template Dataflow. Buka Buat tugas dari template
- Di kolom Job name, masukkan nama pekerjaan yang unik.
- Opsional: Untuk Endpoint regional, pilih nilai dari menu drop-down. Region
default-nya adalah
us-central1
.Untuk daftar region tempat Anda dapat menjalankan tugas Dataflow, lihat Lokasi Dataflow.
- Dari menu drop-down Dataflow template, pilih the JDBC to Pub/Sub template.
- Di kolom parameter yang disediakan, masukkan parameter value Anda.
- Klik Run job.
gcloud
Di shell atau terminal Anda, jalankan template:
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
Ganti kode berikut:
JOB_NAME
: nama pekerjaan unik pilihan AndaVERSION
: versi template yang ingin Anda gunakanAnda dapat menggunakan nilai berikut:
latest
untuk menggunakan versi terbaru template, yang tersedia di folder induk tidak bertanggal di bucket— gs://dataflow-templates-REGION_NAME/latest/- nama versi, seperti
2023-09-12-00_RC00
, untuk menggunakan versi template tertentu, yang dapat ditemukan bertingkat di folder induk bertanggal masing-masing dalam bucket— gs://dataflow-templates-REGION_NAME/
REGION_NAME
: region tempat Anda ingin men-deploy tugas Dataflow, misalnyaus-central1
DRIVER_CLASS_NAME
: nama class pengemudiJDBC_CONNECTION_URL
: URL koneksi JDBCDRIVER_PATHS
: jalur Cloud Storage yang dipisahkan koma dari driver JDBCCONNECTION_USERNAME
: nama pengguna koneksi JDBCCONNECTION_PASSWORD
: sandi koneksi JDBCCONNECTION_PROPERTIES
: properti koneksi JDBC, jika diperlukanSOURCE_SQL_QUERY
: kueri SQL yang akan dijalankan di database sumberOUTPUT_TOPIC
: Pub/Sub yang menjadi tujuan publikasiKMS_ENCRYPTION_KEY
: Kunci Enkripsi Cloud KMS
API
Untuk menjalankan template menggunakan REST API, kirim permintaan HTTP POST. Untuk informasi selengkapnya tentang API dan cakupan otorisasinya, lihat 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" } } }
Ganti kode berikut:
PROJECT_ID
: ID project Google Cloud tempat Anda ingin menjalankan tugas DataflowJOB_NAME
: nama pekerjaan unik pilihan AndaVERSION
: versi template yang ingin Anda gunakanAnda dapat menggunakan nilai berikut:
latest
untuk menggunakan versi terbaru template, yang tersedia di folder induk tidak bertanggal di bucket— gs://dataflow-templates-REGION_NAME/latest/- nama versi, seperti
2023-09-12-00_RC00
, untuk menggunakan versi template tertentu, yang dapat ditemukan bertingkat di folder induk bertanggal masing-masing dalam bucket— gs://dataflow-templates-REGION_NAME/
LOCATION
: region tempat Anda ingin men-deploy tugas Dataflow, misalnyaus-central1
DRIVER_CLASS_NAME
: nama class pengemudiJDBC_CONNECTION_URL
: URL koneksi JDBCDRIVER_PATHS
: jalur Cloud Storage yang dipisahkan koma dari driver JDBCCONNECTION_USERNAME
: nama pengguna koneksi JDBCCONNECTION_PASSWORD
: sandi koneksi JDBCCONNECTION_PROPERTIES
: properti koneksi JDBC, jika diperlukanSOURCE_SQL_QUERY
: kueri SQL yang akan dijalankan di database sumberOUTPUT_TOPIC
: Pub/Sub yang menjadi tujuan publikasiKMS_ENCRYPTION_KEY
: Kunci Enkripsi Cloud KMS
Langkah selanjutnya
- Pelajari Template Dataflow.
- Lihat daftar template yang disediakan Google.