Konektor Flink Bigtable

Apache Flink adalah framework pemrosesan streaming yang memungkinkan Anda memanipulasi data secara real time. Jika memiliki tabel Bigtable, Anda dapat menggunakan konektor Flink Bigtable untuk melakukan streaming, membuat serial, dan menulis data dari sumber data yang ditentukan ke Bigtable. Konektor ini memungkinkan Anda melakukan hal berikut, menggunakan Apache Flink Table API atau Datastream API:

  1. Membuat pipeline
  2. Menserialisasi nilai dari sumber data Anda ke dalam entri mutasi Bigtable
  3. Tulis entri tersebut ke tabel Bigtable Anda

Dokumen ini menjelaskan konektor Flink Bigtable dan hal-hal yang perlu Anda ketahui sebelum menggunakannya. Sebelum membaca dokumen ini, Anda harus memahami Apache Flink, model penyimpanan Bigtable, dan penulisan Bigtable.

Untuk menggunakan konektor, Anda harus memiliki tabel Bigtable yang sudah ada sebelumnya untuk berfungsi sebagai tujuan data. Anda harus membuat grup kolom tabel sebelum memulai pipeline; grup kolom tidak dapat dibuat saat menulis. Untuk mengetahui informasi selengkapnya, lihat Membuat dan mengelola tabel.

Konektor tersedia di GitHub. Untuk mengetahui informasi tentang cara menginstal konektor, lihat repositori Flink Bigtable Connector. Untuk contoh kode yang menunjukkan cara menggunakan konektor, lihat direktori flink-examples-gcp-bigtable.

Serializer

Konektor Flink memiliki tiga serializer bawaan yang dapat Anda gunakan untuk mengonversi data menjadi entri mutasi Bigtable:

  • GenericRecordToRowMutationSerializer: Untuk objek GenericRecord AVRO
  • RowDataToRowMutationSerializer: Untuk objek RowData Flink
  • FunctionRowMutationSerializer: Untuk logika serialisasi kustom menggunakan fungsi yang disediakan

Anda juga dapat memilih untuk membuat serializer kustom Anda sendiri yang diwarisi dari BaseRowMutationSerializer.

Mode serialisasi

Saat menggunakan konektor Flink, Anda memilih salah satu dari dua mode serialisasi. Mode menentukan cara data sumber Anda diserialisasi untuk merepresentasikan grup kolom Bigtable, lalu ditulis ke tabel Bigtable Anda. Anda harus menggunakan salah satu mode.

Mode grup kolom

Dalam mode grup kolom, semua data ditulis ke satu grup kolom tertentu. Kolom bertingkat tidak didukung.

Mode baris bertingkat

Dalam mode baris bertingkat, setiap kolom tingkat teratas mewakili family kolom. Nilai kolom tingkat teratas (RowKeyField) adalah kolom lain. Nilai kolom tersebut memiliki objek baris untuk setiap kolom dalam grup kolom Bigtable. Dalam mode baris bertingkat, semua kolom selain kolom tingkat teratas harus berupa objek baris. Baris bertingkat ganda tidak didukung.

Pemrosesan tepat satu kali

Di Apache Flink, tepat satu kali berarti bahwa setiap rekaman data dalam aliran diproses tepat satu kali, sehingga mencegah pemrosesan duplikat atau kehilangan data, bahkan jika terjadi kegagalan sistem.

Mutasi mutateRow Bigtable bersifat idempoten secara default, sehingga permintaan tulis yang memiliki row key, grup kolom, kolom, stempel waktu, dan nilai yang sama tidak akan membuat sel baru, meskipun dicoba lagi. Artinya, saat Anda menggunakan Bigtable sebagai tujuan data untuk framework Apache Flink, Anda akan mendapatkan perilaku tepat sekali secara otomatis, selama Anda tidak mengubah stempel waktu dalam percobaan ulang dan bagian pipeline lainnya juga memenuhi persyaratan tepat sekali.

Untuk mengetahui informasi selengkapnya tentang semantik tepat satu kali, lihat Ringkasan pemrosesan tepat satu kali end-to-end di Apache Flink.

Langkah berikutnya