本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Zero-ETL 与亚马逊 OpenSearch 服务集成
以亚马逊 OpenSearch 服务为目的地
OpenSearch 与 Amazon DocumentDB 的服务集成使您能够将满负荷数据事件和更改数据事件传输到 OpenSearch 域。摄取基础设施以摄取管道的形式 OpenSearch 托管,为持续传输来自 Amazon DocumentDB 集合的数据提供了一种高规模、低延迟的机制。
在满负荷期间,Zero-ETL 集成首先 OpenSearch 使用摄取管道提取历史满负荷数据。摄取满载数据后, OpenSearch 摄取管道将开始从亚马逊文档数据库变更流中读取数据,并最终迎头赶上,以保持亚马逊文档数据库和之间近乎实时的数据一致性。 OpenSearch OpenSearch 将文档存储在索引中。从 Amazon DocumentDB 集合传入的数据可以发送到一个索引,也可以分割成不同的索引。摄取管道将同步 Amazon DocumentDB 集合中的所有创建、更新和删除事件,作为相应的 OpenSearch 文档创建、更新和删除事件,以保持两个数据系统同步。可以将摄取管道配置为从一个集合中读取数据并写入一个索引,或者从一个集合中读取数据并按条件路由到多个索引。
可以将摄取管道配置为使用以下方法将数据从 Amazon DocumentDB 流式传输到亚马逊 OpenSearch 服务:
-
仅完全加载
-
从 Amazon DocumentDB 流式传输变更流事件而不完全加载
-
完全加载,然后是来自 Amazon DocumentDB 的变更流
要设置摄取管道,请执行以下步骤:
第 1 步:创建亚马逊 OpenSearch 服务域名或 OpenSearch 无服务器集合
需要具有适当读取数据权限的亚马逊 OpenSearch 服务集合。请参阅《亚马逊 OpenSearch 服务开发者指南》中的 “亚马逊 OpenSearch 服务入门” 或 “亚马逊 OpenSearch 无服务器入门” 以创建集合。请参阅《亚马逊 OpenSearch 服务开发者指南》中的 Amazon OpenSearch Ingestion,创建具有正确权限的 AIM 角色,可以访问向集合或域写入数据。
步骤 2:在 Amazon DocumentDB 集群上启用变更流
确保在 Amazon DocumentDB 集群中的所需集合上启用变更流。有关更多信息,请参阅将变更流与 Amazon DocumentDB 结合使用。
步骤 3:设置管道角色,使其拥有写入 Amazon S3 存储桶和目标域或集合的权限
在创建 Amazon DocumentDB 集合并启用变更流后,设置要在管道配置中使用的管道角色,并在该角色中添加以下权限:
为了使 OpenSearch 管道向域写入数据,该 OpenSearch 域必须具有允许 sts_role_arn 管道角色访问数据的域级访问策略。以下示例域访问策略允许您在上一步中创建的名为 pipeline-role 的管道角色向名为 ingestion-domain 的域写入数据:
{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{your-account-id}:role/{pipeline-role}" }, "Action": ["es:DescribeDomain", "es:ESHttp*"], "Resource": "arn:aws:es:{region}:{your-account-id}:domain/{domain-name}/*" } ] }
步骤 4:添加管道角色所需的权限才能创建 X-ENI
步骤 5:创建管道
配置一个将 Amazon DocumentDB 指定为源的 OpenSearch 摄取管道。此示例管道配置假设采用变更流获取机制。有关更多信息,请参阅《亚马逊 OpenSearch 服务开发者指南》中的将 OpenSearch 摄取管道与 Amazon DocumentDB 配合使用。
限制
以下限制适用于亚马逊 DocumentDB OpenSearch 集成:
-
每个管道仅支持将一个 Amazon DocumentDB 集合作为源。
-
Cross-region 不支持数据摄取。您的 Amazon DocumentDB 集群和 OpenSearch 域必须位于同一个 AWS 区域集群和域中。
-
Cross-account 不支持数据摄取。您的 Amazon DocumentDB 集群和 OpenSearch 摄取管道必须位于同一个 AWS 账户中。
-
不支持 Amazon DocumentDB 弹性集群。仅支持 Amazon DocumentDB 基于实例的集群。
-
确保 Amazon DocumentDB 集群启用了使用 AWS 密钥的身份验证。 AWS 机密是唯一支持的身份验证机制。
-
无法更新现有管道配置以从不同的数据库或不同的集合中 and/or 提取数据。要更新管道的数据库 and/or 集合名称,必须创建新的管道。