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

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

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

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

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

Azure Data Studio(联机)

适用于 Azure Data Studio 的 MongoDB 迁移扩展是将 MongoDB 工作负载迁移到用于 MongoDB vCore 的 API 的首选工具。

迁移过程分为两个阶段:

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

预迁移评估

评估涉及确定是否正在使用受支持的功能和语法。 此阶段的目的是发现当前 MongoDB 解决方案中存在的任何不兼容或警告。 在继续迁移过程之前,应解决评估结果中发现的问题。

提示

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

迁移

使用图形用户界面从头到尾管理整个迁移过程。 迁移在 Azure Data Studio 中启动,但在 Azure 托管资源的云中运行。

本机 MongoDB 工具(脱机)

可以使用本机 MongoDB 工具(如 mongodump/mongorestore、mongoexport/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 的详细分步说明。