Bigtable 變更串流到 Vector Search 範本

這個範本會建立串流管道,使用 Dataflow Portable Runner 串流 Bigtable 資料變更記錄,並將這些記錄寫入 Vertex AI 向量搜尋。

管道相關規定

  • Bigtable 來源執行個體必須存在。
  • Bigtable 來源資料表必須存在,且必須啟用變更串流。
  • Bigtable 應用程式設定檔必須存在。
  • 向量搜尋索引路徑必須存在。

範本參數

必要參數

  • embeddingColumn:儲存嵌入內容的完整資料欄名稱。格式為 cf:col。
  • embeddingByteSize:嵌入陣列中每個項目的位元組大小。使用 4 代表 Float,8 代表 Double。預設值為 4。
  • vectorSearchIndex:要串流變更的向量搜尋索引,格式為「projects/{projectID}/locations/{region}/indexes/{indexID}」(開頭或結尾不得有空格)。例如:projects/123/locations/us-east1/indexes/456。
  • bigtableChangeStreamAppProfile:Bigtable 應用程式設定檔 ID。應用程式設定檔必須使用單叢集轉送,並允許單列交易。
  • bigtableReadInstanceId:來源 Bigtable 執行個體 ID。
  • bigtableReadTableId:來源 Bigtable 資料表 ID。

執行範本

控制台

  1. 前往 Dataflow 的「Create job from template」(依據範本建立工作) 頁面。
  2. 前往「依範本建立工作」
  3. 在「Job name」(工作名稱) 欄位中,輸入專屬工作名稱。
  4. 選用:如要使用區域端點,請從下拉式選單中選取值。預設區域為 us-central1。

    如需可執行 Dataflow 工作的區域清單,請參閱「Dataflow 位置」。

  5. 從「Dataflow template」(Dataflow 範本) 下拉式選單中,選取「Bigtable Change Streams to Vector Search」(Bigtable 變更串流至向量搜尋) 範本。
  6. 在提供的參數欄位中輸入參數值。
  7. 按一下「Run Job」(執行工作)。

gcloud CLI

在殼層或終端機中執行範本:

gcloud dataflow flex-template run JOB_NAME \
    --template-file-gcs-location=gs://dataflow-templates/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,使用範本的最新版本,該版本位於 bucket 中非依日期命名的上層資料夾:gs://dataflow-templates/latest/
    • 版本名稱,例如 2023-09-12-00_RC00,可使用特定版本的範本,該範本會以巢狀結構存放在 bucket 中相應的依日期命名上層資料夾中:gs://dataflow-templates/
  • REGION_NAME:您要部署 Dataflow 工作的區域,例如 us-central1
  • EMBEDDING_COLUMN:嵌入資料欄
  • EMBEDDING_BYTE_SIZE:嵌入陣列的位元組大小。可以是 4 或 8。
  • VECTOR_SEARCH_INDEX:向量搜尋索引路徑
  • BIGTABLE_CHANGE_STREAM_APP_PROFILE:Bigtable 應用程式設定檔 ID
  • BIGTABLE_READ_INSTANCE_ID:來源 Bigtable 執行個體 ID
  • BIGTABLE_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/VERSION/flex/Bigtable_Change_Streams_to_Vector_Search",
     "environment": { "maxWorkers": "10" }
  }
}

更改下列內容:

  • PROJECT_ID:您要執行 Dataflow 工作的 Google Cloud 專案 ID
  • JOB_NAME:您選擇的不重複工作名稱
  • VERSION:您要使用的範本版本

    您可以使用下列值:

    • latest,使用範本的最新版本,該版本位於 bucket 中非依日期命名的上層資料夾:gs://dataflow-templates/latest/
    • 版本名稱,例如 2023-09-12-00_RC00,可使用特定版本的範本,該範本會以巢狀結構存放在 bucket 中相應的依日期命名上層資料夾中:gs://dataflow-templates/
  • LOCATION:您要部署 Dataflow 工作的區域,例如 us-central1
  • EMBEDDING_COLUMN:嵌入資料欄
  • EMBEDDING_BYTE_SIZE:嵌入陣列的位元組大小。可以是 4 或 8。
  • VECTOR_SEARCH_INDEX:向量搜尋索引路徑
  • BIGTABLE_CHANGE_STREAM_APP_PROFILE:Bigtable 應用程式設定檔 ID
  • BIGTABLE_READ_INSTANCE_ID:來源 Bigtable 執行個體 ID
  • BIGTABLE_READ_TABLE_ID:來源 Bigtable 資料表 ID