Menyinkronkan set data online dan offline dengan DataFrame BigQuery
Dengan menggunakan Bigtable bersama BigQuery, Anda dapat membuat database analisis real-time dan menggunakannya di pipeline machine learning (ML). Hal ini memungkinkan Anda membuat data tetap sinkron, mendukung manipulasi data dan pengembangan model (akses offline) serta penayangan aplikasi latensi rendah (akses online).
Untuk membuat database analisis real-time, Anda dapat menggunakan DataFrame BigQuery, serangkaian library Python open source untuk pemrosesan data BigQuery. BigQuery DataFrames memungkinkan Anda mengembangkan dan melatih model di BigQuery serta otomatis mereplikasi salinan nilai data terbaru yang digunakan untuk model ML di Bigtable untuk penayangan online.
Dokumen ini memberikan ringkasan tentang penggunaan bigframes.streaming API
untuk membuat tugas BigQuery yang secara otomatis mereplikasi dan menyinkronkan set data di seluruh BigQuery dan Bigtable. Sebelum
membaca dokumen ini, pastikan Anda memahami dokumen berikut:
- Ringkasan Bigtable
- Ringkasan BigQuery
- Mem-build database analisis real-time dengan Bigtable dan BigQuery
DataFrame BigQuery
BigQuery DataFrames membantu Anda mengembangkan dan melatih model di BigQuery serta otomatis mereplikasi salinan nilai data terbaru yang digunakan untuk model ML di Bigtable untuk penayangan online. Dengan begitu, Anda dapat melakukan hal berikut:
- Mengembangkan transformasi data di antarmuka yang kompatibel dengan Pandas
(
bigframes.pandas
) langsung terhadap data BigQuery - Melatih model menggunakan API seperti scikit-learn (
bigframes.ML
) - Sinkronkan data yang diperlukan untuk inferensi latensi rendah dengan Bigtable (
bigframes.streaming
) untuk mendukung aplikasi yang ditampilkan kepada pengguna
BigFrames StreamingDataFrame
bigframes.streaming.StreamingDataFrame
adalah jenis DataFrame dalam
paket BigQuery DataFrames. Dengan demikian, Anda dapat membuat objek StreamingDataFrame
yang dapat digunakan untuk membuat tugas yang terus berjalan yang melakukan streaming data dari tabel BigQuery yang ditetapkan ke Bigtable untuk penayangan online. Hal ini dilakukan dengan membuat
kueri berkelanjutan BigQuery.
BigFrames StreamingDataFrame
dapat melakukan hal berikut:
- Membuat
StreamingDataFrame
dari tabel BigQuery yang ditetapkan - Atau, lakukan operasi Pandas tambahan seperti memilih, memfilter, dan melihat pratinjau konten
- Membuat dan mengelola tugas streaming ke Bigtable
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna menggunakan BigQuery DataFrames di notebook BigQuery, minta administrator untuk memberi Anda peran IAM berikut:
Untuk mendapatkan izin yang diperlukan guna menulis data ke tabel Bigtable, minta administrator untuk memberi Anda peran IAM berikut:
Mulai
BigQuery DataFrames adalah paket open source. Untuk menginstal
versi terbaru, jalankan pip install --upgrade bigframes
.
Untuk membuat BigFrames StreamingDataFrame
pertama dan menyinkronkan data antara BigQuery dan Bigtable, jalankan cuplikan kode berikut.
Untuk contoh kode lengkap, lihat notebook GitHub BigFrames
StreamingDataFrame.
import bigframes.streaming as bst
bigframes.options._bigquery_options.project = "PROJECT"
sdf = bst.read_gbq_table("birds.penguins_bigtable_streaming")
job = sdf.to_bigtable(instance="BIGTABLE_INSTANCE",
table="TABLE",
app_profile=None,
truncate=True,
overwrite=True,`
auto_create_column_families=True,
bigtable_options={},
job_id=None,
job_id_prefix= "test_streaming_",)
print(job.running())
print(job.error_result)
Ganti kode berikut:
- PROJECT: ID Google Cloud project Anda
- BIGTABLE_INSTANCE: ID instance Bigtable yang berisi tabel yang Anda tulis
- TABLE: ID tabel Bigtable yang Anda tulis
Setelah diinisialisasi, tugas akan berjalan sebagai kueri berkelanjutan di BigQuery dan melakukan streaming perubahan data apa pun ke Bigtable.
Biaya
Tidak ada biaya tambahan untuk menggunakan BigQuery BigFrames API, tetapi Anda akan dikenai biaya untuk resource pokok yang digunakan untuk kueri berkelanjutan, Bigtable, dan BigQuery.
Kueri berkelanjutan menggunakan harga komputasi kapasitas BigQuery, yang diukur dalam slot. Untuk
menjalankan kueri berkelanjutan, Anda harus memiliki
reservasi
yang menggunakan edisi Enterprise atau Enterprise Plus dan
penetapan
reservasi
yang menggunakan jenis tugas CONTINUOUS
.
Penggunaan resource BigQuery lainnya, seperti penyerapan dan penyimpanan data, dikenai tarif yang ditampilkan di harga BigQuery.
Penggunaan layanan Bigtable yang menerima hasil kueri berkelanjutan dikenai biaya sesuai tarif harga Bigtable.
Batasan
Semua batasan fitur dan lokasi yang terkait dengan kueri berkelanjutan juga berlaku untuk streaming DataFrame.
Langkah berikutnya
- Mulai menggunakan Feast di Google Cloud
- Menyederhanakan Pengembangan ML dengan Feast
- Buat kueri data Bigtable yang disimpan dalam tabel eksternal.
- Mengekspor data dari BigQuery ke Bigtable.