本指南可以帮助您将 Amazon DynamoDB 与 Amazon OpenSearch Service 集成,以实现实时搜索。大多数应用程序应该使用 Amazon DynamoDB 与 Amazon OpenSearch Service 的零 ETL 集成。对于要求与零 ETL 集成不一致的应用程序,本指南演示了如何通过并行函数将 DynamoDB 中的初始数据加载到 OpenSearch Service,以及如何将新数据复制到 OpenSearch Service。通过将数据保存在两个位置,您可以将查询定位到最适合您要求的数据库:DynamoDB 可以支持任何对性能和可扩展性有需求的固定访问模式,OpenSearch Service 则可以支持对搜索和筛选灵活性有要求的访问模式。

请注意:[免责声明]

架构图

[架构图描述]

下载架构图 PDF 

Well-Architected 支柱

当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。

上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。

  • AWS Cloud Development Kit(AWS CDK)将解决方案的基础设施定义为代码,帮助您实现一致的部署。Lambda 将工作划分为较小的工作单元,每个工作单元负责不同的应用程序功函数。这些单一任务函数可减少人为错误,并支持小规模的增量更改,执行失败时更容易回滚。

    阅读《卓越运营》白皮书 
  • 在适用情况下,本指南优先在专用 Amazon Virtual Private Cloud(Amazon VPC)网络中,而不是公共网络中启动服务。通过 Amazon VPC 建立的专用网络可以控制数据的访问方式,从而保障各层的安全性。此外,使用单一用途、最低权限的 AWS Identity and Access Management(IAM)策略有助于防止权限更改产生更广泛的、意想不到的后果,并降低用户错误处理敏感数据的风险。AWS Secrets Manager 生成并安全地存储管理员机密,防止用户将凭证存储在有泄露风险的代码或环境变量中。

    阅读《安全性》白皮书 
  • 如果部分导入失败,Amazon SQS 会提供自动重试机制,帮助您快速从失败中恢复。作为记录系统,DynamoDB 使用时间点恢复进行持续备份,可以恢复到过去 35 天内的任何一秒钟。OpenSearch Service 通过使用“创建”操作进行初始数据加载,防止旧数据覆盖新数据,从而帮助您防止两个数据库之间出现偏差。OpenSearch Service 设置为使用单节点集群,但您可以将其更改为多可用区集群以保持生产中的可用性。

    阅读《可靠性》白皮书 
  • Lambda 支持并行化工作负载:从 DynamoDB 进行读取会经过分段并行扫描,这些扫描分布在多个 Lambda 函数调用中。这种并行化可实现比单个线程管理的吞吐量高得多的吞吐量。

    阅读《性能效率》白皮书 
  • Lambda 批量读取 DynamoDB 项目,而不是将其作为单个 GetItem 请求读取。因此,本指南消耗的读取容量单位较少。通过减少在初始化连接等任务上的工作量,使用批处理可以缩短计算时间并减少 Lambda 调用次数,从而降低计算成本。此外,OpenSearch Service 批处理操作非常高效,可帮助您降低计算资源的总体成本。

    阅读《成本优化》白皮书 
  • Lambda 仅在需要将数据移入 OpenSearch Service 时调用函数,不会在空闲时运行。这可以帮助您最大限度地利用计算资源。此外,作为一项无服务器的托管服务,DynamoDB 有助于减少效率低下的情况并降低工作负载消耗的总功率。

    阅读《可持续性》白皮书 
博客

Amazon DynamoDB 与 Amazon OpenSearch Service 的零 ETL 集成现已可用

这篇博客文章演示了如何开始使用 Amazon DynamoDB 与 Amazon OpenSearch Service 的零 ETL 集成。

免责声明

示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。

本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。

此页内容对您是否有帮助?