S3 Vectors 最佳实践
Amazon S3 Vectors 提供专门构建的、经过成本优化的向量存储,供支持人工智能的应用程序使用,也可以对存储在 Amazon S3 中的内容进行语义搜索。S3 Vectors 旨在为存储向量数据集提供 S3 级别的弹性和持久性,冷查询的查询性能为亚秒级,热查询的查询性能低至 100 毫秒,非常适合需要构建和扩展向量索引的应用程序。借助 S3 Vectors,可以使用一组专用的 API 操作来存储、访问向量数据并对向量数据执行相似性查询,而无需预置任何基础设施。有关更多信息,请参阅 使用 S3 Vectors 和向量存储桶。
为最大限度地利用 S3 Vectors 的优势,建议您执行以下最佳实践。
- 插入和删除向量
-
对于每个向量索引,您的应用程序每秒可处理最多 1000 个 PutVectors 或 DeleteVectors 请求,或者每秒最多可插入或删除最多 2500 个向量(以先达到的限制为准)。如果超过请求速率,则可能会收到
429 TooManyRequestsException错误。为优化成本,我们建议您大批量插入和删除向量,每个 API 请求的批量大小上限为 500 个向量。如果您的工作负载需要较小的批量,您可以发送并发请求,请求速率限制为最高每秒 1000 个。要达到每秒 2500 个向量的最大吞吐量,您可以每秒发送 5 个批量(每个批量 500 个向量),或每秒发送 1000 个批量(每个批量平均 2.5 个向量)。
- 访问和查询 S3 向量索引中的向量
-
应用程序对于每个 S3 向量索引,每秒可以实现数百个 QueryVectors、GetVectors 或 ListVectors 请求。如果超过请求速率,则可能会收到
429 TooManyRequestsException错误。我们建议您使用重试机制,并将应用程序配置为发送更少的请求。 - 跨向量索引进行扩展
-
为了提高每个向量索引的查询性能,请考虑配置应用程序,以便在可能的情况下将向量划分到多个向量索引。例如,如果您有多租户工作负载,并且应用程序独立查询每个租户,请考虑将每个租户的向量存储在单独的向量索引中。有关更多信息,请参阅 向量索引。
- 使用单独的向量索引实现多租赁
-
可以通过为每个租户使用单个向量索引来组织向量数据,从而实现多租赁。可以使用 IAM 策略和存储桶策略,来限制每个租户只能访问其指定的向量索引。这种方法无需为每个租户创建单独的存储桶,从而有助于保持数据隔离并简化管理。有关更多信息,请参阅 S3 Vectors 中的身份和访问权限管理。
- 为向量索引配置不可筛选的元数据字段
-
创建向量索引时,将不需要筛选的元数据字段配置为不可筛选的元数据键。例如,可将向量嵌入的文本分块存储为不可筛选的元数据字段(当这些字段只是供参考时)。有关更多信息,请参阅 不可筛选的元数据。