Bigtable mengubah aliran data ke template Vector Search

Template ini membuat pipeline streaming untuk melakukan streaming kumpulan data perubahan data Bigtable dan menulisnya ke Vertex AI Vector Search menggunakan Dataflow Runner V2.

Persyaratan pipeline

  • Instance sumber Bigtable harus ada.
  • Tabel sumber Bigtable harus ada, dan tabel tersebut harus mengaktifkan aliran data perubahan.
  • Profil aplikasi Bigtable harus ada.
  • Jalur indeks Penelusuran Vektor harus ada.

Parameter template

Parameter Deskripsi
embeddingColumn Nama kolom yang sepenuhnya memenuhi syarat tempat embeddings disimpan. Dalam format cf:col.
embeddingByteSize Ukuran byte setiap entri dalam array embedding. Gunakan 4 untuk {i>float<i} dan 8 untuk {i>double<i}. Nilai defaultnya adalah 4.
vectorSearchIndex Indeks Vector Search tempat perubahan akan di-streaming, dalam format 'projects/{projectID}/locations/{region}/indexes/{indexID}' (tanpa spasi di bagian awal atau akhir). Contoh: projects/123/locations/us-east1/indexes/456.
bigtableChangeStreamAppProfile Profil aplikasi yang digunakan untuk membedakan beban kerja di Bigtable.
bigtableReadInstanceId ID instance Bigtable yang berisi tabel.
bigtableReadTableId Tabel Bigtable untuk dibaca.
bigtableMetadataTableTableId Opsional: ID untuk tabel metadata yang dibuat. Jika tidak disetel, Bigtable akan menghasilkan ID.
crowdingTagColumn Opsional: Nama kolom yang sepenuhnya memenuhi syarat tempat tag kerumunan disimpan, dalam format cf:col.
allowRestrictsMappings Opsional: Nama kolom yang sepenuhnya memenuhi syarat dan dipisahkan koma untuk digunakan sebagai pembatasan allow, serta aliasnya. Setiap nama kolom harus menggunakan format cf:col->alias.
denyRestrictsMappings Opsional: Nama kolom yang sepenuhnya memenuhi syarat dan dipisahkan koma untuk digunakan sebagai pembatasan deny, serta aliasnya. Setiap nama kolom harus menggunakan format cf:col->alias.
intNumericRestrictsMappings Opsional: Nama kolom yang sepenuhnya memenuhi syarat dan dipisahkan koma untuk digunakan sebagai bilangan bulat numeric_restricts, beserta aliasnya. Setiap nama kolom harus menggunakan format cf:col->alias.
floatNumericRestrictsMappings Opsional: Nama kolom yang sepenuhnya memenuhi syarat dan dipisahkan koma dari kolom yang akan digunakan sebagai numeric_restricts float (4 byte), beserta aliasnya. Setiap nama kolom harus dalam format cf:col->alias
doubleNumericRestrictsMappings Opsional: Nama kolom yang sepenuhnya memenuhi syarat dan dipisahkan koma untuk digunakan sebagai numeric_restricts ganda (8 byte) beserta aliasnya. Setiap nama kolom harus dalam format cf:col->alias
upsertMaxBatchSize Opsional: Jumlah maksimum pembaruan dan penyisipan yang akan di-buffer sebelum pembaruan dan penyisipan batch ke indeks Vector Search. Batch dikirim jika ada data upsertBatchSize yang siap. Contoh: 10.
upsertMaxBufferDuration Opsional: Penundaan maksimum sebelum sekumpulan pembaruan dan penyisipan dikirim ke Vector Search. Batch dikirim jika sudah ada data upsertBatchSize yang siap. Format yang diizinkan adalah: Ns untuk detik (contoh: 5 detik), Nm untuk menit (contoh: 12 menit), dan Nh untuk jam (contoh: 2 jam). Default: 10s.
deleteMaxBatchSize Opsional: Jumlah maksimum penghapusan yang akan di-buffer sebelum menghapus batch dari indeks Vector Search. Batch dikirim jika sudah ada data deleteBatchSize yang siap. Contoh: 10.
deleteMaxBufferDuration Opsional: Penundaan maksimum sebelum batch penghapusan dikirim ke Vector Search. Batch dikirim jika sudah ada data deleteBatchSize yang siap. Format yang diizinkan adalah: Ns untuk detik (contoh: 5 detik), Nm untuk menit (contoh: 12 menit), dan Nh untuk jam (contoh: 2 jam). Default: 10s.
dlqDirectory Opsional: Jalur untuk menyimpan data yang belum diproses dengan alasan kegagalan tersebut untuk diproses. Defaultnya adalah direktori di bawah lokasi sementara tugas Dataflow. Nilai default sesuai untuk sebagian besar skenario.
bigtableChangeStreamMetadataInstanceId Opsional: Instance Bigtable yang akan digunakan untuk tabel metadata konektor aliran perubahan. Nilai defaultnya adalah kosong.
bigtableChangeStreamMetadataTableTableId Opsional: ID tabel metadata konektor perubahan stream Bigtable yang akan digunakan. Jika tidak disediakan, tabel metadata konektor aliran data perubahan Bigtable akan otomatis dibuat selama alur pipeline. Nilai defaultnya adalah kosong.
bigtableChangeStreamCharset Opsional: Bigtable mengubah aliran nama charset saat membaca nilai dan penentu kolom. Defaultnya adalah UTF-8.
bigtableChangeStreamStartTimestamp Opsional: DateTime awal, inklusif, yang akan digunakan untuk membaca aliran data perubahan (https://tools.ietf.org/html/rfc3339). Misalnya, 2022-05-05T07:59:59Z. Setelan defaultnya adalah stempel waktu saat pipeline dimulai.
bigtableChangeStreamIgnoreColumnFamilies Opsional: Daftar perubahan nama keluarga kolom yang dipisahkan koma yang tidak akan ditangkap. Nilai defaultnya adalah kosong.
bigtableChangeStreamIgnoreColumns Opsional: Daftar perubahan nama kolom yang dipisahkan koma yang tidak akan ditangkap. Nilai defaultnya adalah kosong.
bigtableChangeStreamName Opsional: Nama unik untuk pipeline klien. Parameter ini memungkinkan Anda melanjutkan pemrosesan dari titik di mana pipeline yang sebelumnya berjalan telah berhenti. Setelan defaultnya adalah nama yang dibuat secara otomatis. Lihat log tugas Dataflow untuk nilai yang digunakan.
bigtableChangeStreamResume

Opsional: Jika disetel ke benar (true), pipeline baru akan melanjutkan pemrosesan dari titik di mana pipeline yang sebelumnya berjalan dengan nama yang sama dihentikan. Jika pipeline dengan nama tersebut tidak pernah berjalan sebelumnya, pipeline baru akan gagal dimulai. Gunakan parameter bigtableChangeStreamName untuk menentukan jalur pipeline.

Jika disetel ke salah (false), pipeline baru akan dimulai. Jika pipeline dengan nama yang sama seperti bigtableChangeStreamName sudah berjalan sebelumnya untuk sumber tertentu, pipeline baru akan gagal dimulai.

Nilai defaultnya adalah false (salah).

bigtableReadProjectId Opsional: Project yang akan dibaca data Bigtable. Default untuk parameter ini adalah project tempat pipeline Dataflow dijalankan.

Menjalankan template

Konsol

  1. Buka halaman Create job from template Dataflow.
  2. Buka Buat tugas dari template
  3. Di kolom Job name, masukkan nama tugas yang unik.
  4. Opsional: Untuk Regional endpoint, pilih nilai dari menu drop-down. Region default adalah us-central1.

    Untuk mengetahui daftar region tempat Anda dapat menjalankan tugas Dataflow, lihat Lokasi Dataflow.

  5. Dari menu drop-down Dataflow template, pilih the Bigtable Change Streams to Vector Search template.
  6. Di kolom parameter yang disediakan, masukkan nilai parameter Anda.
  7. Klik Run job.

gcloud CLI

Di shell atau terminal Anda, jalankan template:

gcloud dataflow flex-template run JOB_NAME \
    --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/Bigtable_Change_Streams_to_Vector_Search \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       embeddingColumn=EMBEDDING_COLUMN,\
       embeddingByteSize=EMBEDDING_BYTE_SIZE,\
       vectorSearchIndex=VECTOR_SEARCH_INDEX,\
       bigtableChangeStreamAppProfile=BIGTABLE_CHANGE_STREAM_APP_PROFILE,\
       bigtableReadInstanceId=BIGTABLE_READ_INSTANCE_ID,\
       bigtableReadTableId=BIGTABLE_READ_TABLE_ID,\

Ganti kode berikut:

  • JOB_NAME: nama pekerjaan unik pilihan Anda
  • VERSION: versi template yang ingin Anda gunakan

    Anda dapat menggunakan nilai berikut:

  • REGION_NAME: region tempat Anda ingin men-deploy tugas Dataflow, misalnya us-central1
  • EMBEDDING_COLUMN: kolom Penyematan
  • EMBEDDING_BYTE_SIZE: Ukuran byte dari array embedding. Bisa 4 atau 8.
  • VECTOR_SEARCH_INDEX: Jalur indeks Penelusuran Vektor
  • BIGTABLE_CHANGE_STREAM_APP_PROFILE: ID profil aplikasi Bigtable
  • BIGTABLE_READ_INSTANCE_ID: ID Instance Bigtable sumber
  • BIGTABLE_READ_TABLE_ID: ID tabel Bigtable sumber

API

Untuk menjalankan template menggunakan REST API, kirim permintaan POST HTTP. Untuk informasi selengkapnya tentang API dan cakupan otorisasinya, lihat projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launchParameter": {
     "jobName": "JOB_NAME",
     "parameters": {
       "embeddingColumn": "EMBEDDING_COLUMN",
       "embeddingByteSize": "EMBEDDING_BYTE_SIZE",
       "vectorSearchIndex": "VECTOR_SEARCH_INDEX",
       "bigtableChangeStreamAppProfile": "BIGTABLE_CHANGE_STREAM_APP_PROFILE",
       "bigtableReadInstanceId": "BIGTABLE_READ_INSTANCE_ID",
       "bigtableReadTableId": "BIGTABLE_READ_TABLE_ID",
     },
     "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/Bigtable_Change_Streams_to_Vector_Search",
     "environment": { "maxWorkers": "10" }
  }
}

Ganti kode berikut:

  • PROJECT_ID: ID project Google Cloud tempat Anda ingin menjalankan tugas Dataflow
  • JOB_NAME: nama pekerjaan unik pilihan Anda
  • VERSION: versi template yang ingin Anda gunakan

    Anda dapat menggunakan nilai berikut:

  • LOCATION: region tempat Anda ingin men-deploy tugas Dataflow, misalnya us-central1
  • EMBEDDING_COLUMN: kolom Penyematan
  • EMBEDDING_BYTE_SIZE: Ukuran byte dari array embedding. Bisa 4 atau 8.
  • VECTOR_SEARCH_INDEX: Jalur indeks Penelusuran Vektor
  • BIGTABLE_CHANGE_STREAM_APP_PROFILE: ID profil aplikasi Bigtable
  • BIGTABLE_READ_INSTANCE_ID: ID Instance Bigtable sumber
  • BIGTABLE_READ_TABLE_ID: ID tabel Bigtable sumber