高可用性部署
在 us 多區域使用代理檢索服務時,可享有更高的服務可用性服務水準協議,即使發生區域性中斷,也能持續正常運作。
us 多區域提供的 API 與 Agent Retrieval 的其他部分相同,但有一些限制。us 多區域位置中的資料會複製到美國本土各區域,且 us 多區域中的所有有效索引,在這些區域中都有佈建備援伺服器。在正常運作條件下,系統會從網路用戶端延遲時間最佳的區域提供查詢。如果服務中斷或服務能力中斷,Google 的負載平衡器會將查詢重新導向至最近的可用區域。負載平衡和複製作業的設定與維護,完全由 Agent Retrieval 管理。
注意:為支援高可用性的代理式檢索,必須投入硬體和工程資源,因此客戶專案必須經過特別審查並加入許可清單,才能加入高可用性多區域。如要申請使用高可用性多區域,請填寫連結的申請表單。
新手上路
您必須申請加入許可清單,才能存取高可用性多區域。
確認專案已加入許可清單,可存取高可用性多區域後,您就能在 us 多區域位置建立新的集合、資料物件和索引。請按照標準 Agent Retrieval API 說明文件操作,並將通常指定單一區域 (例如 us-central1 或 europe-central2) 的位置替換為 us。
在 us 多區域中上傳的所有資料和執行的作業,都能享有更強大的複製、備援和高可用性功能。
帳單
多區域位置的計費費率高於標準單一區域,反映出複製成本增加和作業優先順序較高。
詳情請參閱定價。
限制
未實作儲存空間最佳化。多區域位置只能部署效能最佳化級別索引。
SearchDataObjects 對未正規化嵌入向量的索引呼叫,可能會在多區域位置回報非預期的距離指標。從這些索引擷取及排序資料點時,結果會正確無誤 (在近似最近鄰索引的限制範圍內)。建議您一律提供正規化嵌入向量,或依賴自動嵌入生成。
多區域位置僅支援 DOT_PRODUCT_DISTANCE。
多區域位置不支援稀疏嵌入。如果向量搜尋要求必須在特定欄位中包含特定權杖,則可在要求的篩選運算式中使用 $search 運算子。
多區域位置不使用 CreateIndex 和 UpdateIndex 要求中的 Index.dedicated_infrastructure.autoscaling_spec 欄位。
多區域位置不使用 SearchDataObjectsRequests 中的 SearchHint.IndexHint.dense_scann_params 欄位。多區域 ANN 索引經過調整,可提供約 95% 的喚回度,但實際喚回度可能會因資料具體情況而異。
從區域性部署作業遷移
如果區域代理式檢索集合中有資料,可以使用下列高階工作流程,將資料複製到 us 位置:
- 將集合資料匯出至託管集合的區域中的 bucket,並移除 etag。
- 從 bucket 匯入至託管於
us位置的集合。
事前準備
請確認您已備妥下列項目:
- 來源區域中的 bucket,用於匯出暫存區。
- 已安裝
gcloudCLI。 - IAM 權限:來源集合的讀取權限、目的地的寫入權限,以及 bucket 的讀取和寫入權限。
- 已在
us建立目的地集合,且結構定義與來源相同。
PROJECT_ID:要遷移的集合所在的專案。下列指令假設來源和目的地專案相同。
SOURCE_LOCATION:來源集合的位置,例如 us-central1。
SOURCE_COLLECTION:要遷移的集合名稱。
STAGING_BUCKET:bucket 內要匯出集合資料的目錄路徑,例如 gs://your-bucket-id。
步驟
每個程式碼片段都可以複製及貼上。請將每個區塊頂端的預留位置,替換成專案、來源位置、集合和 bucket 的特定值。
1. 從來源區域匯出
cat > request.json <<EOF
{
"gcsDestination": {
"exportUri": "STAGING_BUCKET/export/",
"format": "JSONL"
},
"field_filter": {
"excluded_fields": {
"fields": ["etag"]
}
}
}
EOF
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vectorsearch.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_LOCATION/collections/SOURCE_COLLECTION:exportDataObjects"
回應會包含作業名稱,例如 projects/.../locations/us-central1/operations/operation-...。輪詢作業,直到 "done": true 為止。
EXPORT_OPERATION_NAME
gcloud vector-search operations describe "EXPORT_OPERATION_NAME" \
--location="SOURCE_LOCATION"
2. 匯入至美國
DEST_COLLECTION:遷移後的集合名稱 (可與原始名稱相同)。
gcloud vector-search collections import-data-objects "DEST_COLLECTION" \
--location="us" \
--project="PROJECT_ID" \
--gcs-import-contents-uri="STAGING_BUCKET/export/" \
--gcs-import-error-uri="STAGING_BUCKET/import-errors/" \
--gcs-import-output-uri="STAGING_BUCKET/import-output/" \
--async
以匯出作業相同的方式,輪詢傳回的作業:
IMPORT_OPERATION_NAME
gcloud vector-search operations describe "IMPORT_OPERATION_NAME" \
--location="us"
3. 驗證匯入作業
- 檢查
gs://your-bucket-uscentral1/import-errors/是否有任何遭拒的記錄。 - 比較來源和目的地的記錄數量。
- 對兩者執行一些已知查詢,並比較結果。