本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
从 Amazon S3 向量导入到 OpenSearch 无服务器
Amazon S3 Vectors 推出首个支持存储和查询向量的云对象存储。S3 Vectors 提供经济高效、弹性且持久的向量存储,可根据语义含义和相似性进行查询。S3 Vectors 提供亚秒级的查询响应时间,向量上传、存储和查询的成本最高可降低 90%。
Amazon S3 Vectors 推出 S3 向量存储桶,您可以使用该存储桶存储、访问和查询向量数据,无需预置任何基础设施。在向量存储桶中,可以在向量索引中组织向量数据。您的向量存储桶可包含多个向量索引,且每个向量索引可存储数百万个向量。有关更多信息,请参阅《Amazon S3 用户指南》中的 Working with Amazon S3 Vectors and vector buckets。
每个向量包括:
-
唯一键
-
向量数据
-
采用 JSON 格式的可选元数据
向量索引支持欧几里得距离和余弦距离函数,用于相似性搜索操作。
注意
向量存储桶的主要优势在于能够以极低的成本存储海量数据集,同时为向量操作提供直接的 API 访问权限。
有关 Amazon S3 向量存储桶的更多信息,包括如何创建的信息,请参阅《Amazon S3 用户指南》中的 Working with Amazon S3 Vectors and vector buckets。除了本主题所述内容之外,有关与 OpenSearch 服务集成的更多信息,请参阅将 S3 向量与 OpenSearch 服务一起使用
当查询频率较低时,您可以使用 S3 Vector OpenSearch s 和 Amazon Serv OpenSearch ice 来降低矢量存储的成本,然后在需求增加时将这些数据集快速移至该数据集或增强搜索能力。
OpenSearch 该服务与 Amazon S3 矢量存储桶集成,可提供比 Amazon S3 矢量存储桶本身所能提供的更高的性能和功能。如果您需要,请考虑此集成:
-
更高的查询吞吐量
-
亚秒级搜索延迟
-
高级分析功能,例如聚合
-
结合文本和向量数据的混合搜索
当多个应用程序使用具有不同性能要求的相同向量数据时,这种集成尤为有用。对于成本敏感的用例,您可以让某些应用程序直接与 Amazon S3 矢量存储桶交互,而其他应用程序则利用 OpenSearch 集成来执行性能关键型操作。
集成架构
该集成使用 Amazon OpenSearch Ingestion (OSI) 作为 Amazon S3 矢量索引和亚马逊 OpenSearch 无服务器矢量集合之间的数据管道。 OpenSearch Ingestion 会自动从您指定的向量索引中导出矢量数据,并将其摄取到 OpenSearch 无服务器矢量集合中,以实现高性能搜索操作。
注意
导出后,您的数据仍保留在 S3 向量索引中。您拥有两个数据副本。
每个向量索引都映射到 OpenSearch Serverless 集合中的相应索引。该集成:
-
保留向量维度
-
保留元数据
-
优化向量搜索功能的数据结构 OpenSearch
配置完成后, OpenSearch Ingestion 会使用 Amazon S3 ListVectors API 使用来自指定向量索引的向量,从而开始数据导出过程。该服务并行处理向量以优化摄取速度,同时遵守摄取和 Amazon Serverless 的扩展限制 OpenSearch 。 OpenSearch
摄取期间,该服务:
-
转换矢量数据以匹配服务的预期格式 OpenSearch
-
保留基本信息,包括向量值、元数据和距离度量
-
通过智能重试机制处理故障场景
-
将问题记录存入作为死信队列使用的 Amazon S3 存储桶,以便后续分析
该集成可高效处理海量数据集,其性能取决于向量维度、数据集大小以及配置的扩缩限制。OSI 可以将每个管道最多扩展 16 个工作人员,而 OpenSearch Serverless 则根据摄取需求自动调整容量。默认情况下,将 OpenSearch 无服务器端的maxSearch OpenSearch 计算单元 (OCU) OpenSearch 增加到 100。
注意
该集成优先实现成本效益,方式如下:
-
导出完成后自动关闭管道
-
OpenSearch 无服务器集合扩展
-
Pay-per-use 资源模型
所需的 IAM 权限
集成需要仔细配置 IAM 权限,以实现服务之间的安全通信。 OpenSearch 摄取需要权限才能读取 Amazon S3 矢量索引、写入 OpenSearch 服务矢量集合以及管理相关安全策略。
当您通过本主题后文所述的步骤启用集成时,可选择以下任一选项进行权限管理:
-
允许系统自动创建具有所需权限的服务角色
-
提供符合要求的现有角色
自动创建的角色包含适用于以下内容的策略:
-
访问亚马逊 S3 向量索引 APIs
-
管理 OpenSearch 服务收集操作
-
处理摄取尝试失败的死信队列操作
如果选择指定现有角色,则验证该角色是否具备以下 IAM 权限:
(必需): OpenSearch 摄取和无服务器之间的数据管道权限 OpenSearch
(必需):Ingestion 和 OpenSearch Amazon S3 死信队列之间的数据提取权限
(必需):摄取和 OpenSearch Amazon S3 矢量之间的数据提取权限
(如果启用了 AWS KMS 加密,则为必填项): OpenSearch Ingestion 和 Amazon S3 矢量之间通信的解密权限
配置 Amazon S3 矢量集成 OpenSearch
使用以下过程将 Amazon S3 矢量与 OpenSearch 无服务器集成。
注意
如果您通过选择 V ector buckets 页面中的导出至 OpenSearch选项开始从 Amazon S3 控制台配置集成的过程,则以下过程中的某些步骤不适用,如过程中所述。
配置 Amazon S3 矢量与 OpenSearch 无服务器集成
-
在 Amazon OpenSearch 服务控制台中打开 “将 S3 向量索引导入 OpenSearch 矢量引擎” 页面。如果您在 Amazon S3 控制台 OpenSearch中单击 “导出到”,则会自动显示该页面。如果您是从 OpenSearch 控制台开始的,请在左侧导航栏中选择 “集成”,然后选择 “导入 S3 矢量索引”。
-
在源部分,如果从 Amazon S3 控制台开始,请确认已指定向量索引的名称及其Amazon 资源名称(ARN)。如果您是从 OpenSearch控制台开始的,请在 S3 向量索引 ARN 字段中输入索引 ARN。
-
在服务访问部分中,选择一个选项。如果选择现有角色,请验证该角色是否具备集成所需的所有权限,如 所需的 IAM 权限 中所述。
-
(可选)展开其他设置。对于启用冗余(活动副本),我们建议在生产环境中保持该选项勾选状态。当你创建第一个集合时, OpenSearch Serverless 会实例化两个 OCUs ——一个用于索引,一个用于搜索。为了确保高可用性,它还会在另一个可用区中启动一组备用节点。出于开发和测试目的,您可以禁用集合的启用冗余设置,这将消除两个备用副本,只实例化两个副本。 OCUs默认情况下,冗余活动副本处于启用状态,这意味着账户中的第一个集合总共实例化了四个 OCUs 副本。
对于为 Amazon OpenSearch Serverless 向量添加客户管理的 AWS KMS 密钥,请选择此选项以使用客户管理的密钥对矢量集合中的数据进行加密。默认情况下, OpenSearch 使用 AWS 托管式密钥。
-
如果您通过单击 Amazon S3 控制台中的 “导出至” OpenSearch 选项开始此过程,则导出详情部分列出了接下来 OpenSearch 将采取的步骤。准备就绪后,选择导出。
如果您在 OpenSearch 服务控制台中启动了此过程,则导入详细信息部分列出了接下来 OpenSearch 将采取的步骤。准备就绪后,选择导入。
OpenSearch 打开历史记录页面以显示 OpenSearch 无服务器索引 exports/imports 的所有 Amazon S3 向量索引。
成功摄取后,OSI 会自动停止管道以避免不必要的成本,同时将导出的数据保留在中。 OpenSearch您可以通过 CloudWatch 指标监控集成进度,并访问详细日志以进行故障排除。
初始摄取完成后,该 OpenSearch 集合将保持活动状态并可供查询。您可以执行以下操作:
-
相似性搜索
-
聚合
-
分析操作