我在mysql中有一个包含5亿条记录的表。我想把这个表导入amazon dynamodb,我知道有两种方法:
Java API:这种方法的问题是它很慢,有时与数据库的连接也会下降。
amazon数据导入管道:看起来很有前途,但是如何将mysql中的数据导出到dynamodb所识别的格式?
请让我在两者之间找到最好的办法。

最佳答案

aws有两个服务可以帮助您执行该操作。
数据管道
带蜂巢的EMR集群
数据管道
一个非常简单的方法-如果您的“模式”相似(我总是觉得很难谈论dynamodb的模式)-将mysql导出到s3,然后从s3导入到dynamodb。
数据管道有两个教程可帮助您设置任务
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-copydata-mysql.html
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-importexport-ddb-part1.html
通过开发执行导入和导出的单个管道,可以进一步改进此过程。如果需要在导入和导出之间转换数据,则需要开发转换代码并从管道中执行。
在数据管道术语中,这称为活动。活动可能像shell脚本一样简单,也可能像emr closer上运行的hive/hadoop/pig应用程序一样复杂。
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-concepts-activities.html
数据管道还允许您按固定的时间间隔安排执行。
蜂箱和EMR
hive是一个hadoop工具,用于编写sql命令来操作数据源。配置单元在群集上运行的hadoop应用程序中转换sql。
您可以在aws elastic map reduce集群(托管服务hadoop集群)上运行配置单元。
emr上的配置单元可以连接到非关系数据源,如s3或dynamodb数据库上的文件。它允许您在dynamodb之上编写sql语句!
在您的用例中,您需要编写一个从mysql读取并写入dynamodb的hive脚本。可以使用标准(配置单元)SQL表达式转换数据。
有关EMR上的Hive的更多信息:
http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-hive.html
关于dynamodb和hive的更多信息:
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/EMRforDynamoDB.Walkthrough.html
http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/EMRforDynamoDB.html

08-07 15:30
查看更多