向量搜尋的儲存空間最佳化效能層級,專為索引及搜尋大量資料集而設計。這個層級會實作以磁碟為基礎的架構,而非使用 RAM,可大幅降低營運成本。如果您的首要考量是大規模提升成本效益,而非盡可能降低查詢延遲時間,那麼儲存空間最佳化層級就是最佳選擇。
使用儲存空間最佳化索引的時機
如有下列任一情況,請考慮使用儲存空間最佳化索引:
非常龐大的資料集:您必須為大量向量建立索引,但主機代管大量經過效能最佳化的分片成本過高。
低 QPS 工作負載:在低查詢量應用程式中,使用較少分片可大幅節省成本。
彈性的延遲時間規定:應用程式可容許查詢延遲時間略為增加,也就是取得搜尋結果所需的時間。
效能取捨
與預設的效能最佳化索引相比,儲存空間最佳化索引具有下列特徵:
- 查詢延遲時間增加:在特定召回層級,查詢的延遲時間會稍微增加。
如何設定儲存空間最佳化索引
如要建立儲存空間最佳化的索引,請在索引設定中將 shardSize 參數設為 SHARD_SIZE_SO_DYNAMIC。
範例:建立儲存空間最佳化索引
下列範例顯示建立新的儲存空間最佳化串流索引所需的 JSON。
{
"displayName": "my-storage-optimized-index",
"description": "An index configured to prioritize storage over performance.",
"metadata": {
"contentsDeltaUri": "gs://your-bucket/source-data/",
"config": {
"dimensions": 100,
"approximateNeighborsCount": 150,
"distanceMeasureType": "DOT_PRODUCT_DISTANCE",
"shardSize": "SHARD_SIZE_SO_DYNAMIC"
}
},
"indexUpdateMethod": "STREAM_UPDATE"
}
在本範例中,shardSize 設為 SHARD_SIZE_SO_DYNAMIC,這會指示 Vector Search 建立密度較高的索引。這可讓每個分片保存更多資料點,進而減少資料集所需的分片總數。其他欄位 (例如 dimensions 和 distanceMeasureType) 則會根據您的需求設定。
端點
儲存空間最佳化部署作業可搭配任何現有端點使用。
部署索引
以下範例展示將儲存空間最佳化索引部署至所建立端點時,所需的 JSON。
{
"deployedIndex": {
"id": "PROJECT_UNIQUE_ID_NAME",
"index": "projects/PROJECT_ID/locations/LOCATION/indexes/INDEX_ID",
"displayName": "INDEX_DISPLAY_NAME",
"deploymentTier": "STORAGE"
}
}
將 deploymentTier 設為 STORAGE,即可將指定 displayName 的儲存空間最佳化索引部署至端點。
您也可以指定最小副本數 (minReplicaCount) 和最大副本數 (minReplicaCount),控管要部署的機器副本數量。系統不支援設定機型 (machineType)。