适用于 Vector Search 的存储优化型性能层级专为海量数据集的索引和搜索需求而设计。该层级采用基于磁盘的架构,而非使用 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
的存储优化型索引部署到端点。向量搜索会动态选择合适的机器类型,以实现最佳性能。