有没有办法直接从 C# 中的 Amazon S3 制表符分隔文件批量插入 Amazon Aurora RDS?
Is there a way to bulk insert into Amazon Aurora RDS directly from Amazon S3 tab delimited files in C#?
我目前正在使用 Amazon Redshift 存储来自 50 - 100 GB(即数百万行)制表符分隔文件的聚合数据,这些文件每天被推送到 Amazon S3 中的存储桶。
Redshift 通过提供 copy
命令使这变得简单,该命令可以直接定位到 S3 存储桶以批量加载数据。
我想将 Amazon Aurora RDS 用于同样的目的。目前,关于 Aurora 的文档充其量是很薄的。有没有办法直接从 S3 批量加载到 Aurora?
据我所知,MySql 的 LOAD DATA INFILE
需要磁盘上文件的路径,我想我可以通过将 tsv 下载到 AWS 实例和 运行 来自那里的命令,虽然这并不理想。
我还尝试将 tsv 读入内存并构建多个 insert
语句。这显然又慢又笨重。
想法?
2016 年 11 月更新:
从 Aurora 1.8 版开始,您现在可以使用以下命令批量加载 S3 数据:
LOAD DATA FROM S3
或
LOAD XML FROM S3
2018 年 7 月更新:
更新了 AWS 文档 link。感谢 Mark Holmes 抓住了那个。
您可以使用 AWS Data Pipeline。甚至还有一个用于将数据从 S3 加载到 RDS 的模板:
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-template-copys3tords.html
仅供参考,截至 2018 年 7 月,上面的 "Aurora Load From S3" link 只是转到用户指南主页。 link 直接进入描述 IAM 角色和其他安全先决条件的主题,然后从 S3 加载成功:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Integrating.LoadFromS3.html
这个 post 出现在我搜索结果的顶部附近,所以我想用当前信息更新它。
我目前正在使用 Amazon Redshift 存储来自 50 - 100 GB(即数百万行)制表符分隔文件的聚合数据,这些文件每天被推送到 Amazon S3 中的存储桶。
Redshift 通过提供 copy
命令使这变得简单,该命令可以直接定位到 S3 存储桶以批量加载数据。
我想将 Amazon Aurora RDS 用于同样的目的。目前,关于 Aurora 的文档充其量是很薄的。有没有办法直接从 S3 批量加载到 Aurora?
据我所知,MySql 的 LOAD DATA INFILE
需要磁盘上文件的路径,我想我可以通过将 tsv 下载到 AWS 实例和 运行 来自那里的命令,虽然这并不理想。
我还尝试将 tsv 读入内存并构建多个 insert
语句。这显然又慢又笨重。
想法?
2016 年 11 月更新:
从 Aurora 1.8 版开始,您现在可以使用以下命令批量加载 S3 数据:
LOAD DATA FROM S3
或
LOAD XML FROM S3
2018 年 7 月更新:
更新了 AWS 文档 link。感谢 Mark Holmes 抓住了那个。
您可以使用 AWS Data Pipeline。甚至还有一个用于将数据从 S3 加载到 RDS 的模板:
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-template-copys3tords.html
仅供参考,截至 2018 年 7 月,上面的 "Aurora Load From S3" link 只是转到用户指南主页。 link 直接进入描述 IAM 角色和其他安全先决条件的主题,然后从 S3 加载成功:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Integrating.LoadFromS3.html
这个 post 出现在我搜索结果的顶部附近,所以我想用当前信息更新它。