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:

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