Menyinkronkan set data online dan offline dengan BigQuery DataFrames

Dengan menggunakan Bigtable dan BigQuery, Anda dapat membangun database analisis real-time dan menggunakannya dalam pipeline machine learning (ML). Dengan demikian, Anda dapat menjaga data Anda tetap sinkron, mendukung manipulasi data dan pengembangan model (akses offline) serta inferensi aplikasi latensi rendah (akses online).

Untuk membangun database analisis real-time, Anda dapat menggunakan BigQuery DataFrames, sekumpulan library Python open source untuk pemrosesan data BigQuery. Dengan BigQuery DataFrames, Anda dapat mengembangkan dan melatih model di BigQuery serta mereplikasi salinan nilai data terbaru yang digunakan untuk model ML Anda di Bigtable secara otomatis 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 BigQuery dan Bigtable. Sebelum Anda membaca dokumen ini, pastikan Anda memahami dokumen berikut:

DataFrame BigQuery

DataFrame BigQuery membantu Anda mengembangkan dan melatih model di BigQuery serta mereplikasi salinan nilai data terbaru yang digunakan untuk model ML Anda di Bigtable secara otomatis untuk penayangan online. Dengan alat ini, 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. Hal ini memungkinkan Anda membuat objek StreamingDataFrame yang dapat digunakan untuk membuat tugas yang berjalan terus-menerus yang melakukan streaming data dari tabel BigQuery yang ditentukan 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 ditentukan
  • 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 untuk menggunakan DataFrame BigQuery di notebook BigQuery, minta administrator Anda untuk memberi Anda peran IAM berikut:

Untuk mendapatkan izin yang Anda perlukan untuk menulis data ke tabel Bigtable, minta administrator Anda 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 tugas diinisialisasi, tugas akan berjalan sebagai kueri berkelanjutan di BigQuery dan melakukan streaming perubahan data 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 pemesanan yang menggunakan edisi Enterprise atau Enterprise Plus dan penetapan pemesanan yang menggunakan jenis tugas CONTINUOUS.

Penggunaan resource BigQuery lainnya, seperti penyerapan dan penyimpanan data, ditagih sesuai 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 DataFrame streaming.

Langkah berikutnya