使用亚马逊 DocumentDB 的兼容工具(兼容 MongoDB)来改善迁移

Amazon DocumentDB 是一种快速、可扩展、高度可用且完全托管的文档数据库服务,支持 MongoDB 工作负载。您可以使用相同的 MongoDB 3.6、4.0 和 5. 0 应用程序代码、驱动程序和工具在 Amazon DocumentDB 上运行、管理和扩展工作负载,而不必担心底层基础设施的管理。作为文档数据库,Amazon DocumentDB 可以轻松存储、查询和索引 JSON 数据。

Amazon DocumentDB 是专门从头开始构建的,通过分离计算和存储实现云原生。您可以利用在需要时自动增长的快速分布式底层存储;Amazon DocumentDB 集群容量可以增长到 最大 128 Ti B。此外,Amazon DocumentDB 可自动进行数据库集群和复制,从而无需手动配置和管理。为您处理准备实例故障、配置备份和升级计划的开销。如果您的主实例出现故障,Amazon DocumentDB 会自动升级副本实例。备份和恢复是完全托管的,您不必创建复杂的升级计划。借助 Amazon DocumentDB,您可以专注于为用户开发功能和创新。

在这篇文章中,我们介绍了 Amazon DocumentDB 的新功能版本,并讨论了将工作负载迁移到 Amazon DocumentDB 时兼容性工具的好处。

向后工作

在 亚马逊云科技,我们客户需求出发,反过来开发新的产品和功能;我们相信创新从那里开始,我们代表客户发明。例如,我们最近添加了以下更新和功能:

  • 性能洞察 使您可以快速评估数据库的负载并确定何时何地采取行动
  • DML 审计 以捕获读取和写入事件
  • 支持 $mergeObjects、$reduce 和 D ec imal 128 数据类型
  • 可通过 BI 工具连接的 JDBC 驱动程序
  • 支持存储、查询和索引 地理空间数据
  • 创建克隆 以快速创建使用相同的 DocumentDB 集群卷且具有与原始集群相同数据的新集群
  • 弹性集群 提供弹性扩展,可以处理几乎任意数量的写入和读取,存储容量为 PB
  • 客户端字段级加密 (FLE) ,用于在将敏感数据发送 到数据库之前使用 亚马逊云科技 Key Managem ent Service (亚马逊云科技 KMS) 选择性地加密应用程序中的敏感数据

自 Amazon DocumentDB 推出以来,我们已经为 Amazon DocumentDB 添加了 50 多项附加功能,并将继续从客户的角度反过来提供您需要的功能。

迁移到亚马逊文档数据库

在考虑将工作负载转移到 Amazon DocumentDB 时,请务必考虑 支持的 MongoDB API、操作和数据类型 。 功能兼容性不是百分比;您必须查看应用程序正在使用的功能并验证兼容性。审计现有工作负载,无论是直接审计数据库还是应用程序代码,都需要时间。这是必要的,因为必须验证您的工作负载能否继续运行并考虑任何 功能差异 在执行迁移时,除了使用 Amazon DocumentDB 测试您的工作负载以验证平稳切换外,别无选择。

为了帮助加快和简化应用程序的兼容性检查,Amazon DocumentDB 团队创建了 Amazon DocumentDB 兼容性工具 ,该工具可以检查您自行管理的 MongoDB 服务器日志文件或来自与 MongoDB 服务器交互的应用程序的源代码,以验证迁移是否可以无缝进行,并且您可以修改应用程序(如果确定)以绕过不支持的运算符。

兼容性工具

兼容性工具需要以下一项(或两项):

  • 访问应用程序的源代码
  • MongoDB 服务器分析日志,捕获尽可能多的应用程序工作负载

你可以在几分钟内下载并运行兼容性工具。

兼容性工具和示例源代码文件可在我们的 GitHub 存储库 中找到。

在第一个示例中,我们有一个名为 sample-python-1.py 的 Python 脚本, 与 Amazon DocumentDB 完全兼容。运行兼容性工具会生成以下输出:

$ python3 compat.py --file test/sample-python-1.py

processing file test/sample-python-1.py

Processed 1 files, skipped 0 files

No unsupported operators found

在第二个示例中,我们的 Python 脚本包含一个不支持的运算符并生成以下输出:

$ python3 compat.py --file test/sample-python-2.py

processing file test/sample-python-2.py

Processed 1 files, skipped 0 files

The following 1 unsupported operators were found
$sortByCount | found 1 time(s)

Unsupported operators by filename and line number
$sortByCount | lines = found 1 time(s)
test/sample-python-2.py | lines = [29]

当兼容性工具找到不支持的运算符时,它会显示每个运算符的特定文件和行号,从而可以轻松查看特定代码和实施变通方法。

这两个示例都显示了分析单个文件的兼容性工具。您可以使用 --directory 参数来分析目录中的更多文件,并以递归方式分析该目录中的目录。其他可选的命令行参数通过运行带有 -h 选项的工具来显示。

请注意,兼容性工具只是 迁移过程 中的一步 ;在实际生产迁移之前,对应用程序进行正确性测试、性能测试和负载测试非常重要。

摘要

亚马逊 DocumentDB 与 Apache 2.0 开源 MongoDB 3.6、4.0 和 5.0 API 进行交互。因此,您可以在 Amazon DocumentDB 中使用相同的 MongoDB 驱动程序、应用程序和工具,只需很少或根本不做任何更改。此外,您可以使用 Amazon DocumentDB 兼容性工具来简化和加快向 Amazon DocumentDB 的工作负载迁移。

借助 Amazon DocumentDB,您可以获得完全托管的文档数据库体验。这意味着您无需专注于实例故障转移、数据库备份和恢复或软件升级。您可以专注于构建应用程序并为客户进行创新。访问 亚马逊 DocumentDB 入门开始使用亚马 逊 DocumentDB。


作者简介

DBBLOG-2562 蒂姆·卡拉汉 是 A WS 首席文档数据库专家解决方案架构师。他喜欢与希望对现有数据驱动应用程序进行现代化改造并构建新应用程序的客户合作。在加入 亚马逊云科技 之前,他既是关系数据库和 NoSQL 数据库的创建者又是消费者,已有 30 多年。

DBBLOG-2562 科迪·艾伦 是一位来自德克萨斯州的资深DocumentDB专家解决方案架构师。他热衷于与客户并肩合作解决复杂的问题,并通过指导和知识转移为团队成员提供支持。他的职业生涯一直为B2B SaaS提供商、物资和物流供应商、美国空军以及其他国内和国际政府机构部署和管理系统、软件和基础设施。