可使用哪些选项将数据从 MongoDB 迁移到基于 vCore 的 Azure Cosmos DB for MongoDB?

本文档介绍用于将 MongoDB 工作负载直接迁移到基于 vCore 的 Azure Cosmos DB for MongoDB 产品/服务的各种选项。

可以通过两种方式完成迁移:

  • 脱机迁移:基于快照从源批量复制到目标。 在未将快照复制到目标的情况下,在源上添加/更新/删除数据。 所需的应用程序关闭时间取决于完成批量复制活动所需的时间。

  • 联机迁移:除了脱机迁移中完成的批量数据复制活动之外,更改流还会监视所有添加/更新/删除操作。 大容量数据复制完成后,更改流中的数据将复制到目标。 此过程可确保迁移过程中所做的所有更新也会传输到目标。 所需的应用程序关闭时间很短。

迁移前评估

使用 Azure Data Studio 的 MongoDB 迁移扩展 来执行兼容性评估。 此阶段的目的是发现当前 MongoDB 解决方案中存在的任何不兼容或警告。 在继续迁移过程之前,应解决评估结果中发现的问题。

提示

建议在实际迁移之前详细查看支持的功能和语法,并执行概念证明。

迁移

本文中讨论的工具有助于从以下源迁移 MongoDB 工作负载:

  • MongoDB 虚拟机
  • MongoDB Atlas
  • AWS DocumentDB

Web 应用实用工具 (联机)

使用专为提高效率、可靠性和易用性而设计的 MongoMigrationwebBasedUtility,简化迁移到基于 vCore 的 Azure Cosmos DB for MongoDB 的过程。 存储库提供了有关迁移工作负荷的详细分步说明。 此工具为联机和脱机数据迁移提供无缝体验。 此过程是用户友好的,只需提供源和目标详细信息。 它使你能够毫不费力地迁移 MongoDB 集合,同时保持控制、安全性和可伸缩性,从而解锁 Azure Cosmos DB 的全部潜力。

主要功能包括:

  • 支持虚拟网络中的专用部署以提高安全性
  • 出现连接断开或暂时性错误时的自动恢复功能
  • 用户友好的界面
  • 访问 GitHub 上的 C# 源代码

该工具支持灵活的部署选项,无需依赖于其他 Azure 资源即可独立运行。 此外,它还通过可自定义的 Azure Web 应用定价计划提供可缩放的性能。

Azure Data Studio(联机)

适用于 Azure Data Studio 的 MongoDB 迁移扩展是一种简单且成本零的工具,旨在帮助你将 MongoDB 工作负载迁移到基于 vCore 的 Azure Cosmos DB for MongoDB。

重要

此工具不支持以下方案:

  • 在源帐户或目标帐户启用了专用终结点的情况下进行迁移。
  • 在源帐户或目标帐户的防火墙无法接受宽 IP 地址范围的情况下进行迁移。 此工具要求你允许从全局 Azure 数据中心连接到源帐户和目标帐户。 有关详细信息,请参阅 全局 Azure IP 地址范围

此工具分为两个阶段:

  • 预迁移评估 - 评估当前的 MongoDB 数据资产,以确定是否存在任何不兼容。
  • 迁移 - 使用 Azure 托管服务的迁移操作。

使用图形用户界面,你可以从头到尾监督整个预迁移评估和迁移过程,也可以选择只执行预迁移评估。 在 Azure Data Studio 中启动迁移时,它实际上在 Azure 托管资源的云中运行。

本机 MongoDB 工具(脱机)

还可以使用本机 MongoDB 工具(例如 mongodump/mongorestoremongoexport/mongoimport )将数据集脱机(无需复制实时更改)迁移到基于 vCore 的 Azure Cosmos DB for MongoDB 产品/服务。

场景 MongoDB 本机工具
移动数据库数据的子集(基于 JSON/CSV) mongoexport/mongoimport
移动整个数据库(基于 BSON) mongodump/mongorestore
  • mongoexport/mongoimport 是迁移 MongoDB 数据库子集的最佳迁移工具组合。
    • mongoexport 将现有的数据导出为可读的 JSON 或 CSV 文件。 mongoexport 通过一个参数来指定要导出的现有数据的子集。
    • mongoimport 会打开 JSON 或 CSV 文件,并将内容插入到目标数据库实例中 (在本例中为基于 vCore 的 Azure Cosmos DB for MongoDB)。
    • JSON 和 CSV 不是压缩格式,mongoimport 将数据发送到基于 vCore 的 Azure Cosmos DB for MongoDB 时,可能会产生额外的网络费用。
  • mongodump/mongorestore 是迁移整个 MongoDB 数据库的最佳迁移工具组合。 在基于 vCore 的 Azure Cosmos DB for MongoDB 中插入数据时,压缩 BSON 格式将更有效地利用网络资源。
    • mongodump 会将现有数据导出为 BSON 文件。
    • mongorestore 会将 BSON 文件转储导入基于 vCore 的 Azure Cosmos DB for MongoDB。

注意

MongoDB 本机工具只能以主机硬件允许的速度移动数据。

使用 Azure Databricks 进行数据迁移(联机)

在某些情况下,在迁移期间,可能需要更大的控制和更高的吞吐量。 使用 Azure Databricks 进行迁移可以完全控制迁移速率。 此方法还能够处理大小为 TB 的大型数据集。 Spark 迁移工具在 Databricks 中作为作业运行。

注册 Azure Cosmos DB for MongoDB Spark 迁移以便能够访问 Spark 迁移工具 GitHub 存储库。 该存储库提供了有关将工作负载从各种 Mongo 源迁移到基于 vCore 的 Azure Cosmos DB for MongoDB 的详细分步说明。