6

我目前正在使用 Amazon Redshift 存储每天推送到 Amazon S3 中的存储桶的 50 - 100 GB(即数百万行)制表符分隔文件的聚合数据。

Redshift 通过提供一个copy可以直接针对 S3 存储桶的命令来批量加载数据,从而简化了这一过程。

我想将 Amazon Aurora RDS 用于同样的目的。目前关于 Aurora 的文档最多。有没有办法直接从 S3 批量加载到 Aurora?

据我所知,MySqlLOAD DATA INFILE需要磁盘上文件的路径,我想我可以通过将 tsv 下载到 AWS 实例并从那里运行命令来解决这个问题,但这并不理想。

我还尝试将 tsv 读入内存并构造多个insert语句。这显然是缓慢而笨重的。

想法?

2016 年 11 月更新:

从 Aurora 1.8 版开始,您现在可以使用以下命令批量加载 S3 数据:

LOAD DATA FROM S3

或者

LOAD XML FROM S3

来自 S3 的极光负载


2018 年 7 月更新:

更新了 AWS 文档链接。大喊马克福尔摩斯抓住了这一点。


4

2 回答 2

4

您可以使用 AWS 数据管道。甚至还有一个将数据从 S3 加载到 RDS 的模板:

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-template-copys3tords.html

于 2015-12-14T15:15:12.550 回答
3

仅供参考,截至 2018 年 7 月,上面的“来自 S3 的 Aurora 加载”链接只是转到用户指南主页。此链接直接转到描述 IAM 角色和其他安全先决条件的主题,然后 LOAD FROM S3 将成功:

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Integrating.LoadFromS3.html

这篇文章出现在我的搜索结果顶部附近,所以我想用当前信息更新它。

于 2018-07-26T18:30:14.533 回答