Konektor HBase Beam Bigtable
Untuk membantu Anda menggunakan Bigtable dalam pipeline Dataflow, tersedia dua konektor I/O Bigtable Beam open source.
Jika Anda bermigrasi dari HBase ke Bigtable atau jika aplikasi Anda memanggil HBase API, gunakan konektor Bigtable HBase Beam (CloudBigtableIO
) yang dibahas di halaman ini.
Pada kasus lain, Anda harus menggunakan konektor Bigtable Beam (BigtableIO
) bersama dengan klien Cloud Bigtable untuk Java yang berfungsi dengan Cloud Bigtable API. Untuk mulai menggunakan konektor tersebut, lihat konektor Bigtable Beam.
Untuk informasi model pemrograman Apache Beam selengkapnya, lihat dokumentasi Beam.
Mulai menggunakan HBase
Konektor Bigtable HBase Beam ditulis dalam Java dan dibuat di klien HBase Bigtable untuk Java. Versi ini kompatibel dengan Dataflow SDK 2.x untuk Java, yang didasarkan pada Apache Beam. Kode sumber konektor ada di GitHub di repositori googleapis/java-bigtable-hbase.
Halaman ini memberikan ringkasan cara menggunakan transformasi Read
dan Write
.
Menyiapkan autentikasi
Untuk menggunakan contoh Java di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Siapkan autentikasi untuk lingkungan pengembangan lokal.
Untuk informasi tentang cara menyiapkan autentikasi bagi lingkungan produksi, lihat Siapkan Kredensial Default Aplikasi untuk kode yang berjalan di Google Cloud.
Menambahkan konektor ke project Maven
Untuk menambahkan
konektor Bigtable HBase Beam ke project Maven, tambahkan
artefak Maven ke file pom.xml
Anda sebagai dependensi:
Menentukan konfigurasi Bigtable
Buat antarmuka opsi agar input dapat menjalankan pipeline Anda:
Saat membaca dari atau menulis ke Bigtable, Anda harus menyediakan objek konfigurasi CloudBigtableConfiguration
. Objek ini menentukan project ID dan ID instance untuk tabel Anda, serta nama tabel itu sendiri:
Untuk membaca, sediakan objek konfigurasi CloudBigtableScanConfiguration
,
yang memungkinkan Anda menentukan objek Scan
Apache HBase yang
membatasi dan memfilter hasil pembacaan. Lihat Membaca dari
Bigtable untuk mengetahui detailnya.
Membaca dari Bigtable
Untuk membaca dari tabel Bigtable, Anda akan menerapkan transformasi Read
ke hasil operasi CloudBigtableIO.read
. Transformasi Read
menampilkan
PCollection
objek Result
HBase, dengan setiap elemen
dalam PCollection
mewakili satu baris dalam tabel.
Secara default, operasi CloudBigtableIO.read
menampilkan semua baris dalam tabel Anda. Anda dapat menggunakan objek Scan
HBase untuk membatasi pembacaan ke rentang kunci baris dalam tabel Anda, atau untuk menerapkan filter ke hasil pembacaan. Untuk menggunakan objek Scan
, sertakan objek tersebut dalam
CloudBigtableScanConfiguration
Anda.
Misalnya, Anda dapat menambahkan Scan
yang hanya menampilkan pasangan nilai kunci pertama dari setiap baris dalam tabel, yang berguna saat menghitung jumlah baris dalam tabel:
Menulis ke Bigtable
Untuk menulis ke tabel Bigtable, Anda harus melakukan apply
operasi CloudBigtableIO.writeToTable
. Anda harus melakukan operasi ini
pada PCollection
objek Mutation
HBase, yang dapat
menyertakan objek Put
dan Delete
.
Tabel Bigtable harus sudah ada dan harus memiliki kelompok kolom yang sesuai yang telah ditentukan. Konektor Dataflow tidak membuat tabel dan grup kolom dengan cepat. Anda dapat menggunakan CLI cbt
untuk membuat tabel dan menyiapkan grup kolom, atau Anda dapat melakukannya secara terprogram.
Sebelum menulis ke Bigtable, Anda harus membuat pipeline Dataflow agar proses pemindahan dan penghapusan dapat diserialisasi melalui jaringan:
Secara umum, Anda harus melakukan transformasi, seperti ParDo
, untuk memformat
data output ke dalam kumpulan objek Put
atau Delete
HBase. Contoh
berikut menunjukkan transformasi DoFn
yang mengambil nilai saat ini
dan menggunakannya sebagai kunci baris untuk Put
. Selanjutnya, Anda dapat menulis objek Put
ke
Bigtable.
Untuk mengaktifkan kontrol alur penulisan batch, tetapkan
BIGTABLE_ENABLE_BULK_MUTATION_FLOW_CONTROL
ke true
. Fitur ini secara otomatis membatasi kapasitas traffic untuk permintaan penulisan batch dan memungkinkan penskalaan otomatis Bigtable menambahkan atau menghapus node secara otomatis untuk menangani tugas Dataflow Anda.
Berikut adalah contoh penulisan lengkap, termasuk variasi yang memungkinkan kontrol alur penulisan batch.