

# 监控向量索引容量
<a name="VectorSearchMonitoring"></a>

要监控向量索引操作的容量消耗，请在 `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`) 主要根据搜索所需检查的向量大小而扩展，而这个大小会随着索引中维度的数量和返回的数据量增长而增长。将搜索限制为单个分区键值可以减少所检查的数据量。在结果中返回向量属性会进一步增加成本，因为响应包含了完整的向量数据。
+ **写入成本** (`VectorWriteRequestBytes`) 在每次写入、更新或删除的项目导致向量索引属性发生更改时，都会产生该成本，该成本随复制到索引的数据大小而扩展。如果写入没有更改已索引的属性，就不会产生向量写入容量。

更高维度的嵌入会同时增加搜索和写入成本，因为每个向量都承载更多的数据。有关当前定价，请参阅 AWS 网站上的 [Amazon DynamoDB 定价](https://aws.amazon.com/dynamodb/pricing/)。

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