use*_*428 5 mysql amazon-web-services amazon-dynamodb
我在MySQL中有一个包含5亿条记录的表.我想将此表导入Amazon DynamoDB.我知道有两种方法可以实现:
JAVA Api:这种方法的问题在于它很慢,有时也会丢弃与数据库的连接.
亚马逊数据导入管道:似乎很有希望,但是如何将数据从MySQL导出到DynamoDB识别的格式?
请让我在两者之间采取最佳方法.
AWS有两项服务可以帮助您执行该操作.
数据管道
一个非常简单的方法 - 如果你的"模式"相似(我总是觉得谈论DynamoDB的模式很尴尬) - 将从MySQL导出到S3,然后从S3导入到DynamoDB.
Data Pipeline有两个教程可帮助您设置任务
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 close上运行的Hive/Hadoop/Pig应用程序一样复杂. http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-concepts-activities.html
数据管道还允许您以固定的时间间隔安排执行.
蜂巢和EMR
Hive是一个编写SQL命令来操作数据源的hadoop工具.Hive在集群上运行的Hadoop应用程序中转换SQL.您可以在AWS Elastic Map Reduce Cluster(托管服务hadoop集群)上运行Hive.
EMR上的Hive可以连接到非关系数据源,例如S3或DynamoDB数据库上的文件.它允许您在DynamoDB上编写SQL语句!
在您的用例中,您需要编写一个Hive脚本,该脚本将从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
| 归档时间: |
|
| 查看次数: |
8237 次 |
| 最近记录: |