可使用哪些选项将数据从 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 的详细分步说明。
相关内容
- 使用本机 MongoDB 工具将数据迁移到基于 vCore 的 Azure Cosmos DB for MongoDB。