本教程使用 MongoDB 本机工具将数据库从本地或云实例的 MongoDB 脱机(一次性)迁移到 Azure DocumentDB。 MongoDB 本机工具是一组二进制文件,便于对现有 MongoDB 实例进行数据操作。 本文档的重点在于使用 mongoexport/mongoimport 或mongodump/mongorestore 将数据从 MongoDB 实例中迁移出来。 由于本机工具使用连接字符串连接到 MongoDB,因此可以在任意位置运行这些工具。 原生工具可以是处理小型数据集的最简单解决方案,因为在这种情况下,总迁移时间不太重要。
先决条件
Azure 订阅服务
- 如果没有 Azure 订阅,请创建 试用版
现有的 Azure DocumentDB 群集
- 如果没有群集,请 创建新群集
- 计算机上安装的 MongoDB 本机工具。
Prepare
在开始迁移之前,请确保已准备好 Azure DocumentDB 帐户和现有的 MongoDB 实例进行迁移。
- MongoDB 实例(源)
- 完成预迁移评估,以确定源实例和目标帐户之间是否存在不兼容项和警告的列表。
- 确保 MongoDB 本机工具与现有 (源) MongoDB 实例的版本匹配。
- 如果 MongoDB 实例的版本与 Azure DocumentDB 不同,请安装 MongoDB 本机工具版本,并分别使用适用于 MongoDB 和 Azure DocumentDB 的相应工具版本。
- 添加具有
readWrite权限的用户,除非已存在。 最终将此凭据与 mongoexport 和 mongodump 工具一起使用。
- Azure DocumentDB (目标)
小窍门
建议在 MongoDB 实例所在的同一网络中运行这些工具,以避免进一步的防火墙问题。
选择适当的 MongoDB 本机工具
为脱机迁移选择正确的 MongoDB 本机工具时,需要考虑一些高级注意事项。
执行迁移
使用首选本机工具将集合从源 MongoDB 实例迁移到目标 Azure DocumentDB 帐户。 有关选择工具的详细信息,请参阅 迁移选项。
小窍门
如果你只是有一个小的 JSON 文件想要导入到 Azure DocumentDB,mongoimport 工具是快速导入数据的解决方案。
- mongoexport/mongoimport
- mongodump/mongorestore
若要从源 MongoDB 实例导出数据,请打开终端并使用此处列出的三种方法中的任何一种。
指定要连接到和导出 JSON 记录的
--host、--username参数和--password参数。mongoexport \ --host <hostname><:port> \ --username <username> \ --password <password> \ --db <database-name> \ --collection <collection-name> \ --out <filename>.json通过添加
--query参数导出 MongoDB 数据的子集。 此参数确保该工具仅导出与筛选器匹配的文档。mongoexport \ --host <hostname><:port> \ --username <username> \ --password <password> \ --db <database-name> \ --collection <collection-name> \ --query '{ "quantity": { "$gte": 15 } }' \ --out <filename>.json从 Azure DocumentDB 导出数据。
mongoexport \ --uri <target-connection-string> --db <database-name> \ --collection <collection-name> \ --query '{ "quantity": { "$gte": 15 } }' \ --out <filename>.json
将以前导出的文件导入目标 Azure DocumentDB 帐户。
mongoimport \ --file <filename>.json \ --type json \ --db <database-name> \ --collection <collection-name> \ --ssl \ --uri <target-connection-string>监视 mongoimport 的终端输出。 输出将在终端打印文本行,同时更新导入操作的状态。