DynamoDB迁移至GeminiDB DynamoDB操作指导
GeminiX迁移工具是一款自研工具,支持将DynamoDB数据按照DynamoDB接口语义无缝迁移到GeminiDB DynamoDB的自动化工具。本章节介绍AWS DynamoDB迁移至GeminiDB DynamoDB的场景。
迁移原理
本方案分为两个模块全量迁移和增量迁移,需要创建弹性云服务器作为数据中转。GeminiX工具具备分布式迁移的能力,支持多台机器并行迁移业务多张表。
- 全量迁移阶段首先将DynamoDB提供的Scan接口将全量数据以分段方式读取出来写入到GeminiDB DynamoDB中。
- 增量迁移阶段使用DynamoDB的流接口将增量数据同步到GeminiDB DynamoDB中。
前提条件
- 已成功创建GeminiDB DynamoDB实例,且实例状态正常。
- 已创建弹性云服务器,其中弹性云服务器规格为16U64G,磁盘空间大于100GB。创建弹性云服务器的方法,请参见《弹性云服务器快速入门》中“创建弹性云服务器”章节。
- AWS DynamoDB与弹性云服务器之间通过专线传输数据,请确保弹性云服务器和AWS DynamoDB以及GeminiDB DynamoDB网络通畅。
- GeminiDB DynamoDB存储容量不得小于AWS DynamoDB存储容量。
- AWS DynamoDB开启流接口。
操作步骤
- 部署迁移工具。
- 获取开源工具GeminiX。
- 修改配置文件“conf.yaml”,修改时需要注意以下配置项。
source: endpoint: 'https://dynamodb.us-west-2.amazonaws.com' #AWS DynamoDB的域名信息。 access_key_id: 'xx' #AWS DynamoDB的AK信息。 secret_access_key: 'xx' #AWS DynamoDB的SK信息。 target: endpoint: ***.***.***.*** #GeminiDB DynamoDB的域名信息。 access_key_id: 'xx' #GeminiDB DynamoDB的AK信息。 secret_access_key: 'xx' #GeminiDB DynamoDB的SK信息。
- 全量数据迁移。
执行全量迁移命令:
nohup ./bin/migration.sh fullsync -c conf/conf.yaml >run.log 2>&1 &
执行日志中出现如下信息,代表全量数据同步完成。finish syncing all tables and indexes
- 增量数据迁移。
在执行增量迁移命令前,GeminiX中需要配置DynamoDB和GeminiDB DynamoDB的连接信息以及增量迁移的表名,具体配置方法参见b。
执行增量迁移命令:nohup ./bin/migration.sh incresync -c conf/conf.yaml >run.log 2>&1 &
- 迁移完成后,将业务流量切到GeminiDB DynamoDB。