View a markdown version of this page

监控向量索引容量 - Amazon DynamoDB

监控向量索引容量

要监控向量索引操作的容量消耗,请在 SearchVectors 请求中将 ReturnConsumedCapacity 参数设置为 INDEXES 或 TOTAL,在写入 API 请求中则设置为 INDEXES。

向量索引操作分为两个单位进行计量,独立于基表使用的读取和写入容量单位:

  • 向量搜索(VS):该单位计量 SearchVectors 操作。VS 使用量报告为 VectorSearchRequestBytes,随搜索检查和返回的向量数据大小而扩展。

  • 向量写入(VWR):该单位计量复制到向量索引中的写入。VWR 使用量报告为 VectorWriteRequestBytes,随复制到索引的数据大小而扩展。

以下示例显示了 SearchVectors 请求返回的 ConsumedCapacity。

{ "ConsumedCapacity": { "VectorSearchRequestBytes": 41714.0 } }

对于写入操作(PutItem、UpdateItem、DeleteItem、BatchWriteItem、TransactWriteItems),响应的 ConsumedCapacity 中包含一个 VectorIndexes 映射,以索引名称作为键。对于在将更改复制到每个向量索引时使用的容量,每个条目都会报告 VectorWriteRequestBytes。

{ "ConsumedCapacity": { "TableName": "Products", "CapacityUnits": 5.0, "Table": { "CapacityUnits": 5.0 }, "VectorIndexes": { "ProductEmbeddingIndex": { "VectorWriteRequestBytes": 4125.0 } } } }

向量索引容量以处理的字节数为单位进行计量,与基表的读取和写入容量分开报告。使用以下字段来了解向量索引成本的来源:

  • 搜索成本 (VectorSearchRequestBytes) 主要根据搜索所需检查的向量大小而扩展,而这个大小会随着索引中维度的数量和返回的数据量增长而增长。将搜索限制为单个分区键值可以减少所检查的数据量。在结果中返回向量属性会进一步增加成本,因为响应包含了完整的向量数据。搜索成本的增长与索引中的项目数量不成比例。如果维度数、TopK 值和投影保持不变,则随着您添加项目,搜索所检查的数据量将以对数方式增长。这是因为近似最近邻搜索只遍历索引的一个小子集,而不是读取每个向量。使索引中的项目数量翻倍,每次搜索所检查的数据只会增加少而恒定的量。

  • 写入成本 (VectorWriteRequestBytes) 在每次写入、更新或删除的项目导致向量索引属性发生更改时,都会产生该成本,该成本随复制到索引的数据大小而扩展。如果写入没有更改已索引的属性,就不会产生向量写入容量。

更高维度的嵌入会同时增加搜索和写入成本,因为每个向量都承载更多的数据。有关当前定价,请参阅 AWS 网站上的 Amazon DynamoDB 定价。

DynamoDB 还会将向量索引容量发布给 CloudWatch 作为 VectorSearchRequestBytes 和 VectorWriteRequestBytes 指标,以 TableName 和 VectorIndexName 为维度。使用这些指标可跟踪向量索引随时间变化的使用情况和设置警报。有关指标定义,请参阅 VectorSearchRequestBytes 和 VectorWriteRequestBytes。

每请求的最小计量值

DynamoDB 对向量索引容量的计量标准为每个请求至少 1 KB,超出该最小值的部分按字节计费。这同时适用于两种请求类型。检查的向量数据少于 1 KB 的 SearchVectors 请求将按 1 KB 计量。向表的向量索引中复制的数据少于 1 KB 的写入请求也按 1 KB 计量。

最小值适用于每个请求,而不是每个索引。即使 ConsumedCapacity 按每个索引报告 VectorWriteRequestBytes,更新表的多个向量索引中向量的写入操作也不会对每个索引分别产生 1 KB 的最小计量值。

因此,低维向量不会按比例降低计量费用。维数较少的向量只能容纳几个字节的 32 位浮点数据,但仍按 1 KB 的最小值计量。

超过最小值后,VectorSearchRequestBytes 反映的是搜索在索引中检查的向量数据,而非您提供的查询向量的大小。因此,VectorSearchRequestBytes 大于单独的查询向量。

如前所述,搜索成本以对数方式增长,但这种关系并不是估算账单的公式。VectorSearchRequestBytes 还包括搜索所返回的数据。该数据随 TopK 以及您投影的属性而扩展。该指标的下限同样为每个请求 1 KB 的最小值。在 TopK 较高且使用完整投影时,返回的数据可能会超过检查的数据。

请勿根据维度数量估算向量索引成本。使用您自己的工作负载返回的 VectorSearchRequestBytes 和 VectorWriteRequestBytes 值,或使用相应的 CloudWatch 指标。在调整工作负载大小之前,请先根据代表性数据集进行验证。