I/O yang dikelola Dataflow

Konektor I/O terkelola adalah transformasi Apache Beam yang menyediakan API umum untuk membuat sumber dan sink.

Ringkasan

Anda membuat konektor I/O terkelola menggunakan kode Apache Beam, seperti konektor I/O lainnya. Anda menentukan sumber atau sink untuk membuat instance dan meneruskan serangkaian parameter konfigurasi. Anda juga dapat memasukkan parameter konfigurasi ke dalam file YAML dan memberikan URL ke file tersebut.

Di backend, Dataflow memperlakukan konektor I/O terkelola sebagai layanan, yang memungkinkan Dataflow mengelola operasi runtime untuk konektor. Kemudian, Anda dapat berfokus pada logika bisnis dalam pipeline, bukan mengelola detail ini.

Untuk informasi selengkapnya tentang API I/O terkelola, lihat Managed dalam dokumentasi Apache Beam Java SDK.

Apache Iceberg

I/O Terkelola mendukung kemampuan berikut untuk Apache Iceberg:

Katalog Pembacaan batch Operasi tulis batch Penulisan streaming Pembuatan tabel dinamis Tujuan dinamis
Hadoop Didukung Didukung Didukung Didukung Didukung
Hive Didukung Didukung Didukung Didukung Didukung
Katalog berbasis REST Didukung Didukung Didukung Didukung Didukung

Untuk tabel BigQuery untuk Apache Iceberg, gunakan konektor BigQueryIO dengan BigQuery Storage API. Tabel harus sudah ada; pembuatan tabel dinamis tidak didukung.

I/O Terkelola menggunakan parameter konfigurasi berikut untuk Apache Iceberg:

Nama Jenis data Deskripsi
table string ID tabel Apache Iceberg. Contoh: "db.table1".
catalog_name string Nama katalog. Contoh: "local".
catalog_properties map Peta properti konfigurasi untuk katalog Apache Iceberg. Properti yang diperlukan bergantung pada katalog. Untuk informasi selengkapnya, lihat CatalogUtil dalam dokumentasi Apache Iceberg.
config_properties map Kumpulan properti konfigurasi Hadoop opsional. Untuk informasi selengkapnya, lihat CatalogUtil dalam dokumentasi Apache Iceberg.
triggering_frequency_seconds bilangan bulat Untuk pipeline operasi tulis streaming, frekuensi saat sink mencoba membuat snapshot, dalam detik.
drop daftar string Daftar nama kolom yang akan dihapus saat menulis tabel.
keep daftar string Daftar nama kolom yang akan disimpan saat menulis tabel.
only string Nama satu kolom yang akan disimpan saat menulis tabel. Semua kolom lainnya akan dihapus. Nilai kolom harus berupa jenis baris.

Untuk informasi selengkapnya, termasuk contoh kode, lihat topik berikut:

Apache Kafka

Untuk Apache Kafka, I/O Terkelola menggunakan parameter konfigurasi berikut.

Konfigurasi baca dan tulis Jenis data Deskripsi
bootstrap_servers string Wajib. Daftar server bootstrap Kafka yang dipisahkan koma. Contoh: localhost:9092.
topic string Wajib. Topik Kafka yang akan dibaca.
file_descriptor_path string Jalur ke kumpulan deskripsi file buffering protokol. Hanya berlaku jika data_format adalah "PROTO".
data_format string Format pesan. Nilai yang didukung: "AVRO", "JSON", "PROTO", "RAW". Nilai defaultnya adalah "RAW", yang membaca atau menulis byte mentah payload pesan.
message_name string Nama pesan buffering protokol. Wajib jika data_format adalah "PROTO".
schema string

Skema pesan Kafka. Jenis skema yang diharapkan bergantung pada format data:

Untuk pipeline baca, parameter ini akan diabaikan jika confluent_schema_registry_url ditetapkan.

Membaca konfigurasi
auto_offset_reset_config string

Menentukan perilaku saat tidak ada offset awal atau offset saat ini tidak ada lagi di server Kafka. Nilai berikut didukung:

  • "earliest": Mereset offset ke offset paling awal.
  • "latest": Mereset offset ke offset terbaru.

Nilai defaultnya adalah "latest".

confluent_schema_registry_subject string Subjek registry skema Confluent. Wajib jika confluent_schema_registry_url ditentukan.
confluent_schema_registry_url string URL registry skema Confluent. Jika ditentukan, parameter schema akan diabaikan.
consumer_config_updates map Menetapkan parameter konfigurasi untuk konsumen Kafka. Untuk informasi selengkapnya, lihat Config konsumen dalam dokumentasi Kafka. Anda dapat menggunakan parameter ini untuk menyesuaikan konsumen Kafka.
max_read_time_seconds int Waktu baca maksimum, dalam detik. Opsi ini menghasilkan PCollection terbatas dan terutama ditujukan untuk pengujian atau skenario non-produksi lainnya.
Konfigurasi tulis
producer_config_updates map Menetapkan parameter konfigurasi untuk produsen Kafka. Untuk informasi selengkapnya, lihat Config produsen dalam dokumentasi Kafka. Anda dapat menggunakan parameter ini untuk menyesuaikan produsen Kafka.

Untuk membaca pesan Avro atau JSON, Anda harus menentukan skema pesan. Untuk menetapkan skema secara langsung, gunakan parameter schema. Untuk menyediakan skema melalui registry skema Confluent, tetapkan parameter confluent_schema_registry_url dan confluent_schema_registry_subject.

Untuk membaca atau menulis pesan Buffer Protokol, tentukan skema pesan atau tetapkan parameter file_descriptor_path.