這個範本會建立串流管道,串流 Bigtable 資料變更記錄,並使用 Dataflow Runner V2 將這些記錄寫入 Vertex AI Vector Search。
管道相關規定
- Bigtable 來源執行個體必須存在。
- Bigtable 來源資料表必須存在,且該資料表必須啟用變更串流。
- Bigtable 應用程式設定檔必須存在。
- Vector Search 索引路徑必須存在。
範本參數
參數 | 說明 |
---|---|
embeddingColumn |
儲存嵌入內容的完整欄名稱。格式為 cf:col。 |
embeddingByteSize |
嵌入陣列中每個項目的位元組大小。使用 4 代表浮點數,8 代表雙精度浮點數。預設值為 4 。 |
vectorSearchIndex |
要串流變更的向量搜尋索引,格式為「projects/{projectID}/locations/{region}/indexes/{indexID}」(開頭或結尾不得有空格)。例如:
projects/123/locations/us-east1/indexes/456 。 |
bigtableChangeStreamAppProfile |
用於區分 Bigtable 中工作負載的應用程式設定檔。 |
bigtableReadInstanceId |
包含資料表的 Bigtable 執行個體 ID。 |
bigtableReadTableId |
要讀取的 Bigtable 資料表。 |
bigtableMetadataTableTableId |
(選用) 建立的中繼資料表 ID。如未設定,Bigtable 會產生 ID。 |
crowdingTagColumn |
選用:儲存群眾外包標記的完整欄名,格式為 cf:col 。 |
allowRestrictsMappings |
選用:以半形逗號分隔的完整資料欄名稱清單,用做 allow 限制,以及這些資料欄的別名。每個資料欄名稱的格式都必須為 cf:col->alias 。 |
denyRestrictsMappings |
選用:以半形逗號分隔的完整資料欄名稱清單,用做 deny 限制,以及這些資料欄的別名。每個資料欄名稱的格式都必須為 cf:col->alias 。 |
intNumericRestrictsMappings |
選用:以半形逗號分隔的完整資料欄名稱,這些資料欄會做為整數 numeric_restricts 使用,加上別名。每個資料欄名稱的格式都必須為 cf:col->alias 。 |
floatNumericRestrictsMappings |
選用:以半形逗號分隔的完整資料欄名稱,這些資料欄會做為浮點數 (4 個位元組) 使用
numeric_restricts ,以及這些資料欄的別名。每個資料欄名稱的格式都必須為 cf:col->alias |
doubleNumericRestrictsMappings |
選用:以逗號分隔的完整資料欄名稱,這些資料欄會做為雙精度浮點數 (8 個位元組) 使用,加上這些資料欄的別名。numeric_restricts 每個資料欄名稱的格式都必須為 cf:col->alias |
upsertMaxBatchSize |
選用:將批次 upsert 至 Vector Search 索引前,要緩衝處理的 upsert 數量上限。當有 upsertBatchSize 筆記錄準備就緒時,系統就會傳送批次。範例:10 。 |
upsertMaxBufferDuration |
選用:將一批 upsert 送至 Vector Search 前的延遲時間上限。當有 upsertBatchSize 筆記錄準備就緒時,系統就會傳送批次。允許的格式為:以秒為單位的 Ns (例如 5s)、以分鐘為單位的 Nm (例如 12m),以及以小時為單位的 Nh (例如 2h)。預設值:10s 。 |
deleteMaxBatchSize |
選用:從 Vector Search 索引刪除批次前,要緩衝的刪除作業數量上限。當有以下情況時,系統會傳送批次:
deleteBatchSize 記錄已備妥。
例如:10 。 |
deleteMaxBufferDuration |
選用:將一批刪除作業傳送至 Vector Search 前的最大延遲時間。當有 deleteBatchSize 筆記錄準備就緒時,系統就會傳送批次。允許的格式為:Ns 代表秒 (例如 5s)、Nm 代表分鐘 (例如 12m),以及 Nh 代表小時 (例如 2h)。預設值:10s 。 |
dlqDirectory |
選填:儲存任何未處理記錄的路徑,以及處理失敗的原因。預設值是 Dataflow 工作暫時位置下的目錄。預設值適用於大多數情況。 |
bigtableChangeStreamMetadataInstanceId |
選用:用於變更串流連接器中繼資料表的 Bigtable 執行個體。預設為空白。 |
bigtableChangeStreamMetadataTableTableId |
選用:要使用的 Bigtable 變更串流連接器中繼資料表 ID。如果未提供,系統會在管道流程中自動建立 Bigtable 變更串流連接器中繼資料表。預設為空白。 |
bigtableChangeStreamCharset |
選用:讀取值和資料欄限定符時,Bigtable 變更串流會提供字元集名稱。預設值為 UTF-8。 |
bigtableChangeStreamStartTimestamp |
選用:用於讀取變更串流的開始 DateTime (含) (https://tools.ietf.org/html/rfc3339)。例如: 2022-05-05T07:59:59Z。預設為管道啟動時的時間戳記。 |
bigtableChangeStreamIgnoreColumnFamilies |
選用:以半形逗號分隔的資料欄系列名稱清單,列出不會擷取的變更。預設為空白。 |
bigtableChangeStreamIgnoreColumns |
選用:以半形逗號分隔的資料欄名稱清單,這些資料欄的變更不會遭到擷取。預設為空白。 |
bigtableChangeStreamName |
選填:用戶端管道的專屬名稱。這個參數可讓您從先前管道停止運作的點繼續處理。預設為自動產生的名稱。如要瞭解使用的值,請參閱 Dataflow 工作記錄。 |
bigtableChangeStreamResume |
選用:如果設為 true,新的管道會從先前同名管道停止處理的點繼續處理。如果過去從未執行過該名稱的管道,新的管道就無法啟動。使用 如果設為 false,系統會啟動新的管道。如果過去已針對指定來源執行名稱相同的管道,新的管道就無法啟動。 預設值為 false。 |
bigtableReadProjectId |
選用:用於讀取 Bigtable 資料的專案。這項參數的預設值是執行 Dataflow 管道的專案。 |
執行範本
控制台
- 前往 Dataflow 的「Create job from template」(透過範本建立工作) 頁面。 前往「依據範本建立工作」
- 在「工作名稱」欄位中,輸入專屬工作名稱。
- 選用:如要使用區域端點,請從下拉式選單中選取值。預設區域為
us-central1
。如需可執行 Dataflow 工作的地區清單,請參閱「Dataflow 位置」。
- 從「Dataflow template」(Dataflow 範本) 下拉式選單中選取 the Bigtable Change Streams to Vector Search template。
- 在提供的參數欄位中輸入參數值。
- 按一下「Run Job」(執行工作)。
gcloud CLI
在殼層或終端機中執行範本:
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,\
更改下列內容:
JOB_NAME
: 您選擇的不重複工作名稱VERSION
: 您要使用的範本版本您可以使用下列值:
latest
,使用範本的最新版本,該版本位於值區中非依日期命名的上層資料夾:gs://dataflow-templates-REGION_NAME/latest/- 版本名稱 (例如
2023-09-12-00_RC00
),用於指定範本版本,該版本會以巢狀結構存放在值區中依日期命名的上層資料夾中:gs://dataflow-templates-REGION_NAME/
REGION_NAME
: 您要部署 Dataflow 工作的地區,例如us-central1
EMBEDDING_COLUMN
:Embedding 資料欄EMBEDDING_BYTE_SIZE
:嵌入陣列的位元組大小。可以是 4 或 8。VECTOR_SEARCH_INDEX
:Vector Search 索引路徑BIGTABLE_CHANGE_STREAM_APP_PROFILE
:Bigtable 應用程式設定檔 IDBIGTABLE_READ_INSTANCE_ID
:來源 Bigtable 執行個體 IDBIGTABLE_READ_TABLE_ID
:來源 Bigtable 資料表 ID
API
如要使用 REST API 執行範本,請傳送 HTTP POST 要求。如要進一步瞭解 API 和授權範圍,請參閱 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" } } }
更改下列內容:
PROJECT_ID
: 您要執行 Dataflow 工作的專案 ID Google CloudJOB_NAME
: 您選擇的不重複工作名稱VERSION
: 您要使用的範本版本您可以使用下列值:
latest
,使用範本的最新版本,該版本位於值區中非依日期命名的上層資料夾:gs://dataflow-templates-REGION_NAME/latest/- 版本名稱 (例如
2023-09-12-00_RC00
),用於指定範本版本,該版本會以巢狀結構存放在值區中依日期命名的上層資料夾中:gs://dataflow-templates-REGION_NAME/
LOCATION
: 您要部署 Dataflow 工作的地區,例如us-central1
EMBEDDING_COLUMN
:Embedding 資料欄EMBEDDING_BYTE_SIZE
:嵌入陣列的位元組大小。可以是 4 或 8。VECTOR_SEARCH_INDEX
:Vector Search 索引路徑BIGTABLE_CHANGE_STREAM_APP_PROFILE
:Bigtable 應用程式設定檔 IDBIGTABLE_READ_INSTANCE_ID
:來源 Bigtable 執行個體 IDBIGTABLE_READ_TABLE_ID
:來源 Bigtable 資料表 ID