Streaming perubahan Bigtable ke template Vector Search

Template ini membuat pipeline streaming untuk melakukan streaming data perubahan 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 harus mengaktifkan aliran perubahan.
  • Profil aplikasi Bigtable harus ada.
  • Jalur indeks Vector Search harus ada.

Parameter template

Parameter Deskripsi
embeddingColumn Nama kolom yang sepenuhnya memenuhi syarat tempat penyematan disimpan. Dalam format cf:col.
embeddingByteSize Ukuran byte setiap entri dalam array penyematan. Gunakan 4 untuk float dan 8 untuk double. Nilai defaultnya adalah 4.
vectorSearchIndex Indeks Penelusuran Vektor tempat perubahan akan di-streaming, dalam format 'projects/{projectID}/locations/{region}/indexes/{indexID}' (tanpa spasi di awal atau di 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 yang akan dibaca.
bigtableMetadataTableTableId Opsional: ID untuk tabel metadata yang dibuat. Jika tidak ditetapkan, Bigtable akan membuat ID.
crowdingTagColumn Opsional: Nama kolom yang sepenuhnya memenuhi syarat tempat tag kepadatan disimpan, dalam format cf:col.
allowRestrictsMappings Opsional: Nama kolom yang sepenuhnya memenuhi syarat dan dipisahkan koma dari kolom yang akan digunakan sebagai allow membatasi, ditambah aliasnya. Setiap nama kolom harus dalam format cf:col->alias.
denyRestrictsMappings Opsional: Nama kolom yang sepenuhnya memenuhi syarat dan dipisahkan koma dari kolom yang akan digunakan sebagai deny membatasi, ditambah aliasnya. Setiap nama kolom harus dalam format cf:col->alias.
intNumericRestrictsMappings Opsional: Nama kolom yang sepenuhnya memenuhi syarat dan dipisahkan koma dari kolom yang akan digunakan sebagai bilangan bulat numeric_restricts, ditambah aliasnya. Setiap nama kolom harus dalam format cf:col->alias.
floatNumericRestrictsMappings Opsional: Nama kolom yang sepenuhnya memenuhi syarat dan dipisahkan koma dari kolom yang akan digunakan sebagai float (4 byte) numeric_restricts, ditambah aliasnya. Setiap nama kolom harus dalam format cf:col->alias
doubleNumericRestrictsMappings Opsional: Nama kolom yang sepenuhnya memenuhi syarat dan dipisahkan koma dari kolom yang akan digunakan sebagai numeric_restricts ganda (8 byte), ditambah aliasnya. Setiap nama kolom harus dalam format cf:col->alias
upsertMaxBatchSize Opsional: Jumlah maksimum pembaruan dan penyisipan untuk di-buffer sebelum memperbarui dan menyisipkan batch ke indeks Penelusuran Vektor. Batch dikirim saat ada upsertBatchSize data yang siap. Contoh: 10.
upsertMaxBufferDuration Opsional: Penundaan maksimum sebelum batch pembaruan dan penyisipan dikirim ke Vector Search. Batch dikirim saat ada upsertBatchSize data yang siap. Format yang diizinkan adalah: Ns untuk detik (contoh: 5d), Nm untuk menit (contoh: 12m), dan Nh untuk jam (contoh: 2h). Default: 10s.
deleteMaxBatchSize Opsional: Jumlah maksimum penghapusan yang akan di-buffer sebelum menghapus batch dari indeks Penelusuran Vektor. Batch dikirim saat ada deleteBatchSize data yang siap. Contoh: 10.
deleteMaxBufferDuration Opsional: Penundaan maksimum sebelum batch penghapusan dikirim ke Vector Search. Batch dikirim saat ada data deleteBatchSize yang siap. Format yang diizinkan adalah: Ns untuk detik (contoh: 5d), Nm untuk menit (contoh: 12m), dan Nh untuk jam (contoh: 2h). Default: 10s.
dlqDirectory Opsional: Jalur untuk menyimpan data yang belum diproses dengan alasan kegagalan pemrosesannya. Default 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 data perubahan. Default-nya adalah kosong.
bigtableChangeStreamMetadataTableTableId Opsional: ID tabel metadata konektor aliran perubahan Bigtable yang akan digunakan. Jika tidak diberikan, tabel metadata konektor aliran perubahan Bigtable akan otomatis dibuat selama alur pipeline. Default-nya adalah kosong.
bigtableChangeStreamCharset Opsional: Bigtable mengubah nama set karakter aliran saat membaca nilai dan penentu kolom. Setelan defaultnya adalah UTF-8.
bigtableChangeStreamStartTimestamp Opsional: DateTime awal, inklusif, yang akan digunakan untuk membaca aliran perubahan (https://tools.ietf.org/html/rfc3339). Misalnya, 2022-05-05T07:59:59Z. Default-nya adalah stempel waktu saat pipeline dimulai.
bigtableChangeStreamIgnoreColumnFamilies Opsional: Daftar nama keluarga kolom yang dipisahkan koma yang akan diubah dan tidak akan dicatat. Default-nya adalah kosong.
bigtableChangeStreamIgnoreColumns Opsional: Daftar nama kolom yang dipisahkan koma yang akan diubah dan tidak akan dicatat. Default-nya adalah kosong.
bigtableChangeStreamName Opsional: Nama unik untuk pipeline klien. Parameter ini memungkinkan Anda melanjutkan pemrosesan dari titik saat pipeline yang sebelumnya berjalan dihentikan. Secara default, nama yang dibuat secara otomatis. Lihat log tugas Dataflow untuk mengetahui nilai yang digunakan.
bigtableChangeStreamResume

Opsional: Jika ditetapkan ke benar, pipeline baru akan melanjutkan pemrosesan dari titik saat 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 baris pipeline.

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

Nilai defaultnya adalah salah (false).

bigtableReadProjectId Opsional: Project tempat membaca data Bigtable. Default untuk parameter ini adalah project tempat pipeline Dataflow berjalan.

Menjalankan template

Konsol

  1. Buka halaman Create job from template Dataflow.
  2. Buka Buat tugas dari template
  3. Di kolom Nama tugas, masukkan nama tugas yang unik.
  4. Opsional: Untuk Endpoint regional, pilih nilai dari menu drop-down. Region defaultnya 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, 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 tugas 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 Embedding
  • EMBEDDING_BYTE_SIZE: Ukuran byte array penyematan. Dapat berupa 4 atau 8.
  • VECTOR_SEARCH_INDEX: Jalur indeks Vector Search
  • 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 mengetahui 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 tugas 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 Embedding
  • EMBEDDING_BYTE_SIZE: Ukuran byte array penyematan. Dapat berupa 4 atau 8.
  • VECTOR_SEARCH_INDEX: Jalur indeks Vector Search
  • 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