Untuk membaca data dari Bigtable ke Dataflow, gunakan konektor I/O Bigtable Apache Beam.
Keparalelan
Keparalelan dikontrol oleh jumlah node di cluster Bigtable. Setiap node mengelola satu atau beberapa rentang kunci, meskipun rentang kunci dapat berpindah antar-node sebagai bagian dari load balancing. Untuk mengetahui informasi selengkapnya, lihat Pembacaan dan performa dalam dokumentasi Bigtable.
Anda akan dikenai biaya untuk jumlah node di cluster instance. Lihat Harga Bigtable.
Performa
Tabel berikut menunjukkan metrik performa untuk operasi baca Bigtable. Beban kerja dijalankan pada satu pekerja e2-standard2, menggunakan Apache Beam SDK 2.48.0 untuk Java. Beban kerja tersebut tidak menggunakan Runner Portabel.
| 100 juta data | 1 kB | 1 kolom | Throughput (byte) | Throughput (elemen) |
|---|---|---|
| Membaca | 180 MBps | 170.000 elemen per detik |
Metrik ini didasarkan pada pipeline batch sederhana. Metrik ini dimaksudkan untuk membandingkan performa antar-konektor I/O, dan tidak selalu mewakili pipeline dunia nyata. Performa pipeline Dataflow bersifat kompleks, dan merupakan fungsi dari jenis VM, data yang diproses, performa sumber dan sink eksternal, serta kode pengguna. Metrik didasarkan pada menjalankan Java SDK, dan tidak mewakili karakteristik performa SDK bahasa lain. Untuk mengetahui informasi selengkapnya, lihat Performa Beam IO.
Praktik terbaik
Untuk pipeline baru, gunakan konektor
BigtableIO, bukanCloudBigtableIO.Buat profil aplikasi terpisah untuk setiap jenis pipeline. Profil aplikasi memungkinkan metrik yang lebih baik untuk membedakan traffic antar-pipeline, baik untuk dukungan maupun untuk melacak penggunaan.
Pantau node Bigtable. Jika Anda mengalami bottleneck performa, periksa apakah resource seperti pemanfaatan CPU dibatasi dalam Bigtable. Untuk mengetahui informasi selengkapnya, baca bagian Monitoring.
Secara umum, waktu tunggu default disesuaikan dengan baik untuk sebagian besar pipeline. Jika a pipeline streaming tampak macet saat membaca dari Bigtable, coba panggil
withAttemptTimeoutuntuk menyesuaikan waktu tunggu percobaan.Pertimbangkan untuk mengaktifkan penskalaan otomatis Bigtable, atau mengubah ukuran cluster Bigtable agar dapat diskalakan sesuai dengan ukuran tugas Dataflow Anda.
Pertimbangkan untuk menetapkan
maxNumWorkerspada tugas Dataflow untuk membatasi beban pada cluster Bigtable.Jika pemrosesan signifikan dilakukan pada elemen Bigtable sebelum shuffle, panggilan ke Bigtable mungkin akan mencapai waktu tunggu. Dalam hal ini, Anda dapat memanggil
withMaxBufferElementCountuntuk melakukan buffering elemen. Metode ini mengonversi operasi baca dari streaming ke halaman, yang menghindari masalah tersebut.Jika Anda menggunakan satu cluster Bigtable untuk pipeline streaming dan batch, dan performa menurun di sisi Bigtable, pertimbangkan untuk menyiapkan replikasi di cluster. Kemudian, pisahkan pipeline batch dan streaming, sehingga keduanya membaca dari replika yang berbeda. Untuk mengetahui informasi selengkapnya, lihat Ringkasan replikasi.
Langkah berikutnya
- Baca dokumentasi konektor I/O Bigtable.
- Lihat daftar template yang disediakan Google.