Konektor Bigtable HBase Beam
Untuk membantu Anda menggunakan Bigtable dalam pipeline Dataflow, dua konektor I/O Bigtable Beam open source tersedia.
Jika Anda bermigrasi dari HBase ke Bigtable atau aplikasi Anda memanggil HBase API, gunakan konektor Bigtable HBase Beam (CloudBigtableIO
) yang dibahas di halaman ini.
Dalam semua kasus lainnya, 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 mengetahui informasi selengkapnya tentang model pemrograman Apache Beam, lihat dokumentasi Beam.
Mulai menggunakan HBase
Konektor Bigtable HBase Beam ditulis dalam Java dan dibangun di klien HBase Bigtable untuk Java. Kompatibel dengan Dataflow SDK 2.x untuk Java, yang berbasis Apache Beam. Kode sumber konektor ada di GitHub dalam repositori googleapis/java-bigtable-hbase.
Halaman ini memberikan ringkasan cara menggunakan transformasi Read
dan Write
.
Menyiapkan autentikasi
Untuk menggunakan contoh Java di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Untuk informasi selengkapnya, lihat Set up authentication for a local development environment.
Untuk informasi tentang cara menyiapkan autentikasi bagi lingkungan produksi, lihat Set up Application Default Credentials for code running on 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:
Tentukan konfigurasi Bigtable
Buat antarmuka opsi untuk mengizinkan input guna menjalankan pipeline Anda:
Saat membaca dari atau menulis ke Bigtable, Anda harus menyediakan objek konfigurasi CloudBigtableConfiguration
. Objek ini menentukan
project ID dan instance ID untuk tabel Anda, serta nama tabel
itu sendiri:
Untuk membaca, berikan 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 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 di
CloudBigtableScanConfiguration
.
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 apply
operasi
CloudBigtableIO.writeToTable
. Anda harus melakukan operasi ini
pada objek PCollection
HBase Mutation
, yang dapat
mencakup objek Put
dan Delete
.
Tabel Bigtable harus sudah ada dan harus memiliki grup kolom yang sesuai. Konektor Dataflow tidak membuat tabel dan family kolom secara langsung. Anda dapat menggunakan
cbt
CLI
untuk membuat tabel dan menyiapkan column family,
atau Anda dapat melakukannya secara terprogram.
Sebelum menulis ke Bigtable, Anda harus membuat pipeline Dataflow agar operasi put dan delete dapat diserialisasi melalui jaringan:
Secara umum, Anda harus melakukan transformasi, seperti ParDo
, untuk memformat
data output Anda menjadi kumpulan objek HBase Put
atau Delete
. Contoh
berikut menunjukkan transformasi DoFn
yang mengambil nilai saat ini
dan menggunakannya sebagai kunci baris untuk Put
. Kemudian, Anda dapat menulis objek Put
ke
Bigtable.
Untuk mengaktifkan kontrol alur penulisan batch, tetapkan
BIGTABLE_ENABLE_BULK_MUTATION_FLOW_CONTROL
ke true
. Fitur ini otomatis membatasi laju 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.