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

本文档介绍用于将 MongoDB 工作负载直接迁移到基于 vCore 的 Azure Cosmos DB for 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 应用定价计划提供可缩放的性能。

本机 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 中运行。

此工具支持以下 MongoDB 源:

  • MongoDB VM
  • MongoDB Atlas
  • AWS DocumentDB
  • Azure Cosmos DB MongoDB RU(仅脱机版)

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