有没有办法直接从C#中的Amazon S3制表符分隔文件批量插入Amazon Aurora RDS?

时间:2015-09-17 16:51:27

标签: c# amazon-s3 amazon-rds-aurora

我目前正在使用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

Aurora Load From S3

更新7/2018:

更新了AWS文档链接。向马克·霍姆斯致敬。

2 个答案:

答案 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

此帖子出现在我搜索结果的顶部附近,因此我想用当前信息进行更新。