I/O terkelola Dataflow untuk database

Dataflow mendukung pembacaan dari dan penulisan ke database menggunakan Java Database Connectivity (JDBC). Dataflow menggunakan konektor Apache Beam JdbcIO untuk terhubung ke sumber dan tujuan data JDBC. I/O Terkelola untuk Database mendukung driver JDBC standar untuk berbagai database, termasuk PostgreSQL, MySQL, dan Microsoft SQL Server.

Persyaratan

SDK berikut mendukung I/O terkelola untuk database:

  • Apache Beam SDK untuk Java versi 2.69.0 atau yang lebih baru
  • Apache Beam SDK untuk Python versi 2.69.0 atau yang lebih baru

Konfigurasi

I/O Terkelola untuk Database mendukung parameter konfigurasi berikut:

POSTGRES Baca

Konfigurasi Jenis Deskripsi
jdbc_url str URL koneksi untuk sumber JDBC.
connection_properties str Digunakan untuk menetapkan properti koneksi yang diteruskan ke driver JDBC yang belum ditentukan sebagai parameter mandiri (misalnya, nama pengguna dan sandi dapat ditetapkan menggunakan parameter di atas). Format string harus "key1=value1;key2=value2;".
fetch_size int32 Metode ini digunakan untuk mengganti ukuran data yang akan diambil dan dimuat dalam memori per setiap panggilan database. Parameter ini HANYA boleh digunakan jika nilai default memunculkan error memori.
lokasi str Nama tabel yang akan dibaca.
num_partitions int32 Jumlah partisi
output_parallelization boolean Apakah akan mengacak ulang PCollection yang dihasilkan sehingga hasil didistribusikan ke semua pekerja.
partition_column str Nama kolom jenis numerik yang akan digunakan untuk partisi.
sandi str Sandi untuk sumber JDBC. Dapat ditentukan sebagai sandi biasa, atau sebagai spesifikasi secret dalam format JSON jika digunakan dengan pengelola secret.
read_query str Kueri SQL yang digunakan untuk membuat kueri sumber JDBC.
secret_manager str Secret Manager yang akan digunakan untuk mengambil nilai secret. Opsi yang tersedia: 'GoogleCloudSecretManager', 'GoogleCloudHsmGeneratedSecretManager'. Jika tidak disetel, tidak ada pengelola rahasia yang digunakan dan sandi diperlakukan sebagai sandi biasa.
nama pengguna str Nama pengguna untuk sumber JDBC.

POSTGRES Menulis

Konfigurasi Jenis Deskripsi
jdbc_url str URL koneksi untuk sink JDBC.
autosharding boolean Jika benar (true), memungkinkan penggunaan sejumlah shard yang ditentukan secara dinamis untuk menulis.
batch_size int64 t/a
connection_properties str Digunakan untuk menetapkan properti koneksi yang diteruskan ke driver JDBC yang belum ditentukan sebagai parameter mandiri (misalnya, nama pengguna dan sandi dapat ditetapkan menggunakan parameter di atas). Format string harus "key1=value1;key2=value2;".
lokasi str Nama tabel yang akan ditulis.
sandi str Sandi untuk sumber JDBC. Dapat ditentukan sebagai sandi biasa, atau sebagai spesifikasi secret dalam format JSON jika digunakan dengan pengelola secret.
secret_manager str Secret Manager yang akan digunakan untuk mengambil nilai secret. Opsi yang tersedia: 'GoogleCloudSecretManager', 'GoogleCloudHsmGeneratedSecretManager'. Jika tidak disetel, tidak ada pengelola rahasia yang digunakan dan sandi diperlakukan sebagai sandi biasa.
nama pengguna str Nama pengguna untuk sumber JDBC.
write_statement str Kueri SQL yang digunakan untuk menyisipkan data ke dalam sink JDBC.

MYSQL Baca

Konfigurasi Jenis Deskripsi
jdbc_url str URL koneksi untuk sumber JDBC.
connection_init_sql list[str] Menetapkan pernyataan SQL inisialisasi koneksi yang digunakan oleh Driver. Hanya MySQL dan MariaDB yang mendukungnya.
connection_properties str Digunakan untuk menetapkan properti koneksi yang diteruskan ke driver JDBC yang belum ditentukan sebagai parameter mandiri (misalnya, nama pengguna dan sandi dapat ditetapkan menggunakan parameter di atas). Format string harus "key1=value1;key2=value2;".
disable_auto_commit boolean Apakah akan menonaktifkan commit otomatis saat membaca. Nilai defaultnya adalah benar (true) jika tidak diberikan. Kebutuhan akan konfigurasi ini bervariasi, bergantung pada platform database. Informix mengharuskan setelan ini disetel ke false, sedangkan Postgres mengharuskan setelan ini disetel ke true.
fetch_size int32 Metode ini digunakan untuk mengganti ukuran data yang akan diambil dan dimuat dalam memori per setiap panggilan database. Parameter ini HANYA boleh digunakan jika nilai default memunculkan error memori.
lokasi str Nama tabel yang akan dibaca.
num_partitions int32 Jumlah partisi
output_parallelization boolean Apakah akan mengacak ulang PCollection yang dihasilkan sehingga hasil didistribusikan ke semua pekerja.
partition_column str Nama kolom jenis numerik yang akan digunakan untuk partisi.
sandi str Sandi untuk sumber JDBC. Dapat ditentukan sebagai sandi biasa, atau sebagai spesifikasi secret dalam format JSON jika digunakan dengan pengelola secret.
read_query str Kueri SQL yang digunakan untuk membuat kueri sumber JDBC.
secret_manager str Secret Manager yang akan digunakan untuk mengambil nilai secret. Opsi yang tersedia: 'GoogleCloudSecretManager', 'GoogleCloudHsmGeneratedSecretManager'. Jika tidak disetel, tidak ada pengelola rahasia yang digunakan dan sandi diperlakukan sebagai sandi biasa.
nama pengguna str Nama pengguna untuk sumber JDBC.

MYSQL Menulis

Konfigurasi Jenis Deskripsi
jdbc_url str URL koneksi untuk sink JDBC.
autosharding boolean Jika benar (true), memungkinkan penggunaan sejumlah shard yang ditentukan secara dinamis untuk menulis.
batch_size int64 t/a
connection_init_sql list[str] Menetapkan pernyataan SQL inisialisasi koneksi yang digunakan oleh Driver. Hanya MySQL dan MariaDB yang mendukungnya.
connection_properties str Digunakan untuk menetapkan properti koneksi yang diteruskan ke driver JDBC yang belum ditentukan sebagai parameter mandiri (misalnya, nama pengguna dan sandi dapat ditetapkan menggunakan parameter di atas). Format string harus "key1=value1;key2=value2;".
lokasi str Nama tabel yang akan ditulis.
sandi str Sandi untuk sumber JDBC. Dapat ditentukan sebagai sandi biasa, atau sebagai spesifikasi secret dalam format JSON jika digunakan dengan pengelola secret.
secret_manager str Secret Manager yang akan digunakan untuk mengambil nilai secret. Opsi yang tersedia: 'GoogleCloudSecretManager', 'GoogleCloudHsmGeneratedSecretManager'. Jika tidak disetel, tidak ada pengelola rahasia yang digunakan dan sandi diperlakukan sebagai sandi biasa.
nama pengguna str Nama pengguna untuk sumber JDBC.
write_statement str Kueri SQL yang digunakan untuk menyisipkan data ke dalam sink JDBC.

SQLSERVER Baca

Konfigurasi Jenis Deskripsi
jdbc_url str URL koneksi untuk sumber JDBC.
connection_properties str Digunakan untuk menetapkan properti koneksi yang diteruskan ke driver JDBC yang belum ditentukan sebagai parameter mandiri (misalnya, nama pengguna dan sandi dapat ditetapkan menggunakan parameter di atas). Format string harus "key1=value1;key2=value2;".
disable_auto_commit boolean Apakah akan menonaktifkan commit otomatis saat membaca. Nilai defaultnya adalah benar (true) jika tidak diberikan. Kebutuhan akan konfigurasi ini bervariasi, bergantung pada platform database. Informix mengharuskan setelan ini disetel ke false, sedangkan Postgres mengharuskan setelan ini disetel ke true.
fetch_size int32 Metode ini digunakan untuk mengganti ukuran data yang akan diambil dan dimuat dalam memori per setiap panggilan database. Parameter ini HANYA boleh digunakan jika nilai default memunculkan error memori.
lokasi str Nama tabel yang akan dibaca.
num_partitions int32 Jumlah partisi
output_parallelization boolean Apakah akan mengacak ulang PCollection yang dihasilkan sehingga hasil didistribusikan ke semua pekerja.
partition_column str Nama kolom jenis numerik yang akan digunakan untuk partisi.
sandi str Sandi untuk sumber JDBC. Dapat ditentukan sebagai sandi biasa, atau sebagai spesifikasi secret dalam format JSON jika digunakan dengan pengelola secret.
read_query str Kueri SQL yang digunakan untuk membuat kueri sumber JDBC.
secret_manager str Secret Manager yang akan digunakan untuk mengambil nilai secret. Opsi yang tersedia: 'GoogleCloudSecretManager', 'GoogleCloudHsmGeneratedSecretManager'. Jika tidak disetel, tidak ada pengelola rahasia yang digunakan dan sandi diperlakukan sebagai sandi biasa.
nama pengguna str Nama pengguna untuk sumber JDBC.

SQLSERVER Menulis

Konfigurasi Jenis Deskripsi
jdbc_url str URL koneksi untuk sink JDBC.
autosharding boolean Jika benar (true), memungkinkan penggunaan sejumlah shard yang ditentukan secara dinamis untuk menulis.
batch_size int64 t/a
connection_properties str Digunakan untuk menetapkan properti koneksi yang diteruskan ke driver JDBC yang belum ditentukan sebagai parameter mandiri (misalnya, nama pengguna dan sandi dapat ditetapkan menggunakan parameter di atas). Format string harus "key1=value1;key2=value2;".
lokasi str Nama tabel yang akan ditulis.
sandi str Sandi untuk sumber JDBC. Dapat ditentukan sebagai sandi biasa, atau sebagai spesifikasi secret dalam format JSON jika digunakan dengan pengelola secret.
secret_manager str Secret Manager yang akan digunakan untuk mengambil nilai secret. Opsi yang tersedia: 'GoogleCloudSecretManager', 'GoogleCloudHsmGeneratedSecretManager'. Jika tidak disetel, tidak ada pengelola rahasia yang digunakan dan sandi diperlakukan sebagai sandi biasa.
nama pengguna str Nama pengguna untuk sumber JDBC.
write_statement str Kueri SQL yang digunakan untuk menyisipkan data ke dalam sink JDBC.

Langkah berikutnya

Untuk mengetahui informasi selengkapnya dan contoh kode, lihat dokumen berikut: