mongoimport是MongoDB数据库自带的恢复工具。您可以在本地设备或ECS实例中安装MongoDB数据库,然后借助该工具将Amazon DynamoDB数据库迁移至阿里云。

说明 本文以本地设备为例介绍操作流程。

前提条件

已经创建阿里云MongoDB实例,详情请参见创建副本集实例创建分片集群实例

注意事项

  • 该操作为全量数据迁移,暂不支持增量数据迁移。为避免迁移前后数据不一致,在迁移开始前请停止源库的数据写入。
  • 请在安装有MongoDB服务的服务器上执行mongoimport命令,并非在mongo shell环境下执行。

术语/概念对应关系

DynamoDB中的术语/概念 MongoDB中的术语/概念
Table Collection
Item Document
Attribute Field

环境准备

在本地设备上安装MongoDB程序,程序版本与阿里云MongoDB数据库的版本一致。该设备将作为数据迁移的中转。本案例将MongoDB程序安装在Ubuntu Linux上进行演示。

  1. 在本地设备上安装MongoDB程序,详情请参见安装MongoDB
    说明 该设备仅作为数据备份与恢复的临时中转平台,迁移操作完成后不再需要。
  2. 将本地设备的公网IP地址,加入至阿里云MongoDB实例的白名单中,详情请参见设置白名单及安全组

操作步骤

  1. 登录DynamoDB控制台。
  2. 在左侧导航栏,单击
  3. 选择需要迁移的表,本案例选择customer表。选择DynamoDB表
  4. 选择需要迁移的数据,导出为.csv格式。选择DynamoDB待迁移数据
    1. 单击项目页签。
    2. 选择需要迁移的数据。
    3. 单击操作 > 导出到.csv
  5. 将导出的.csv文件复制到环境准备中的本地设备。
  6. 登录阿里云MongoDB控制台,获取阿里云MongoDB实例的公网连接地址。
    • 如要迁移至阿里云MongoDB副本集实例,请获取Primary节点公网连接地址,详情请参见副本集实例连接说明
    • 如要迁移至阿里云MongoDB分片集群实例,请获取任一Mongos节点的公网连接地址,详情请参见分片集群实例连接说明
    说明 公网连接地址需要手动申请,详情请参见申请公网连接地址
  7. 在本地设备上,执行以下命令将数据库数据导入至阿里云MongoDB数据库。
    mongoimport --host <mongodb_host:port> --authenticationDatabase admin -u <username> --db <database> --collection <collection> --file <filename>  --type csv --headerline                    
    说明
    • <mongodb_host:port>:阿里云MongoDB副本集实例的Primary节点或分片集群实例的Mongos节点连接地址。
    • <username>:阿里云MongoDB实例的数据库用户名,初始账号为root。该用户需具备目标数据库的readWrite权限。
    • <database>:鉴权数据库名,即数据库账号所属的数据库。当数据库账号为root时,对应的数据库为admin。
    • <collection>:指定要导入数据的集合名。
    • <filename> :.csv文件的路径和名称。
    示例:将customer.csv中的数据导入至mongodbtest数据库的customer集合中。
    mongoimport --host dds-bpxxxxxxxx-pub.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u root --db mongodbtest --collection customer --file ~/download/customer.csv  --type csv --headerline
  8. 当命令行提示 Enter password:时,输入阿里云MongoDB数据库账号对应的密码并按回车键确认。
    说明 如果还有其他表需要迁移,请重复步骤3到步骤8。

等待数据导入完成,即完成Amazon DynamoDB数据迁移至阿里云的操作。

后续操作

为提升数据操作的性能,数据导入后您还需要根据业务需求建立索引,详情请参见db.collection.createIndex