Template ini membuat pipeline streaming untuk menstreamingkan rekaman perubahan data Bigtable dan menuliskannya 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.
- Path 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 sematan. Gunakan 4 untuk float dan 8 untuk double. Nilai defaultnya adalah 4 . |
vectorSearchIndex |
Indeks Vector Search 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 disetel, 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 pembatasan allow , 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 pembatasan deny , 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 ganda (8 byte)
numeric_restricts , ditambah
aliasnya. Setiap nama kolom harus dalam format cf:col->alias |
upsertMaxBatchSize |
Opsional: Jumlah maksimum operasi upsert yang akan di-buffer sebelum melakukan upsert batch ke indeks Vector Search. Batch dikirim saat
ada upsertBatchSize catatan yang siap.
Contoh: 10 . |
upsertMaxBufferDuration |
Opsional: Penundaan maksimum sebelum batch operasi upsert dikirim ke Vector Search. Batch dikirim saat ada
upsertBatchSize catatan yang siap. Format yang diizinkan adalah:
Ns untuk detik (contoh: 5s), 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 Vector Search.
Batch dikirim saat ada
deleteBatchSize catatan yang siap.
Contoh: 10 . |
deleteMaxBufferDuration |
Opsional: Penundaan maksimum sebelum batch penghapusan dikirim
ke Vector Search. Batch dikirim saat ada
rekaman deleteBatchSize yang siap. Format yang diizinkan adalah: Ns untuk detik (contoh: 5s), Nm untuk menit (contoh: 12m), dan Nh untuk jam (contoh: 2h). Default: 10s . |
dlqDirectory |
Opsional: Jalur untuk menyimpan semua data yang belum diproses beserta alasan kegagalan pemrosesannya. 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 data perubahan. Nilai defaultnya adalah kosong. |
bigtableChangeStreamMetadataTableTableId |
Opsional: ID tabel metadata konektor aliran perubahan Bigtable yang akan digunakan. Jika tidak diberikan, tabel metadata konektor aliran perubahan Bigtable akan dibuat secara otomatis selama alur pipeline. Nilai defaultnya adalah kosong. |
bigtableChangeStreamCharset |
Opsional: Nama set karakter aliran perubahan Bigtable saat membaca nilai dan penentu kolom. 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. Secara default, nilainya adalah stempel waktu saat pipeline dimulai. |
bigtableChangeStreamIgnoreColumnFamilies |
Opsional: Daftar nama family kolom yang dipisahkan koma yang perubahannya tidak akan direkam. Nilai defaultnya adalah kosong. |
bigtableChangeStreamIgnoreColumns |
Opsional: Daftar nama kolom yang dipisahkan koma yang perubahannya tidak akan direkam. Nilai defaultnya adalah kosong. |
bigtableChangeStreamName |
Opsional: Nama unik untuk pipeline klien. Parameter ini memungkinkan Anda melanjutkan pemrosesan dari titik saat pipeline yang sebelumnya berjalan berhenti. Secara default, nama 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 saat pipeline yang berjalan sebelumnya
dengan nama yang sama berhenti. Jika pipeline dengan nama tersebut tidak pernah dijalankan sebelumnya, pipeline baru akan gagal dimulai.
Gunakan parameter Jika disetel ke salah (false), pipeline baru akan dimulai. Jika pipeline
dengan nama yang sama seperti Nilai defaultnya adalah salah (false). |
bigtableReadProjectId |
Opsional: Project untuk membaca data Bigtable. Parameter ini secara default adalah project tempat pipeline Dataflow berjalan. |
Menjalankan template
Konsol
- Buka halaman Dataflow Create job from template. Buka Membuat tugas dari template
- Di kolom Nama tugas, masukkan nama tugas yang unik.
- Opsional: Untuk Endpoint regional, pilih nilai dari menu drop-down. Region
default-nya adalah
us-central1
.Untuk mengetahui daftar region tempat Anda dapat menjalankan tugas Dataflow, lihat Lokasi Dataflow.
- Dari menu drop-down Template Dataflow, pilih the Bigtable Change Streams to Vector Search template.
- Di kolom parameter yang disediakan, masukkan nilai parameter Anda.
- 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 tugas unik pilihan AndaVERSION
: versi template yang ingin Anda gunakanAnda dapat menggunakan nilai berikut:
latest
untuk menggunakan versi template terbaru, yang tersedia di folder induk tanpa tanggal di bucket— gs://dataflow-templates-REGION_NAME/latest/- nama versi, seperti
2023-09-12-00_RC00
, untuk menggunakan versi template tertentu, yang dapat ditemukan bertingkat di folder induk yang diberi tanggal di bucket— gs://dataflow-templates-REGION_NAME/
REGION_NAME
: region tempat Anda ingin men-deploy tugas Dataflow—misalnya,us-central1
EMBEDDING_COLUMN
: kolom EmbeddingEMBEDDING_BYTE_SIZE
: Ukuran byte array embedding. Dapat berupa 4 atau 8.VECTOR_SEARCH_INDEX
: Jalur indeks Vector SearchBIGTABLE_CHANGE_STREAM_APP_PROFILE
: ID profil aplikasi BigtableBIGTABLE_READ_INSTANCE_ID
: ID Instance Bigtable sumberBIGTABLE_READ_TABLE_ID
: ID tabel Bigtable sumber
API
Untuk menjalankan template menggunakan REST API, kirim permintaan HTTP POST. 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 Google Cloud project tempat Anda ingin menjalankan tugas DataflowJOB_NAME
: nama tugas unik pilihan AndaVERSION
: versi template yang ingin Anda gunakanAnda dapat menggunakan nilai berikut:
latest
untuk menggunakan versi template terbaru, yang tersedia di folder induk tanpa tanggal di bucket— gs://dataflow-templates-REGION_NAME/latest/- nama versi, seperti
2023-09-12-00_RC00
, untuk menggunakan versi template tertentu, yang dapat ditemukan bertingkat di folder induk yang diberi tanggal di bucket— gs://dataflow-templates-REGION_NAME/
LOCATION
: region tempat Anda ingin men-deploy tugas Dataflow—misalnya,us-central1
EMBEDDING_COLUMN
: kolom EmbeddingEMBEDDING_BYTE_SIZE
: Ukuran byte array embedding. Dapat berupa 4 atau 8.VECTOR_SEARCH_INDEX
: Jalur indeks Vector SearchBIGTABLE_CHANGE_STREAM_APP_PROFILE
: ID profil aplikasi BigtableBIGTABLE_READ_INSTANCE_ID
: ID Instance Bigtable sumberBIGTABLE_READ_TABLE_ID
: ID tabel Bigtable sumber