我目前正在使用Amazon Redshift存储50-100 GB(即数百万行)制表符分隔文件的聚合数据,这些文件每天都会被推送到Amazon S3中的存储桶。
Redshift通过提供copy
命令使这很容易,该命令可以直接定位到S3存储桶以批量加载数据。
我想将Amazon Aurora RDS用于同样的目的。关于Aurora的文档目前很少。有没有办法直接从S3批量加载到Aurora?
据我所知,MySql的LOAD DATA INFILE
需要磁盘上文件的路径,我想我可以通过将tsv下载到AWS实例并从那里运行命令来解决这个问题。虽然这不是理想的。
我还试图将tsv读入内存并构造多个insert
语句。这显然是缓慢而笨重的。
想法?
更新11/2016:
从Aurora 1.8版开始,您现在可以使用以下命令批量加载S3数据:
LOAD DATA FROM S3
或
LOAD XML FROM S3
更新7/2018:
更新了AWS文档链接。向马克·霍姆斯致敬。
答案 0 :(得分:4)
您可以使用AWS Data Pipeline。甚至还有一个模板用于将数据从S3加载到RDS:
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-template-copys3tords.html
答案 1 :(得分:2)
截至2018年7月,仅供参考,上面的“ S3的Aurora加载”链接仅进入用户指南主页。此链接直接转到该主题,该主题描述了IAM角色和LOAD FROM S3成功之前的安全性其他先决条件:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Integrating.LoadFromS3.html
此帖子出现在我搜索结果的顶部附近,因此我想用当前信息进行更新。