将 mysql 查询导出到亚马逊 S3 存储桶中。

17 浏览
0 Comments

将 mysql 查询导出到亚马逊 S3 存储桶中。

基于 这里 接受的答案,我能够使用以下方法将mysql查询结果导出到我在Amazon EC2实例上的 csv 文件中:

mysql -user -pass -e "SELECT * FROM table" > /data.csv

然而,由于导出的文件很大,我想将其导出到我可以从EC2实例访问的Amazon s3-bucket (s3:\\\\mybucket) 中

我尝试了:

mysql -user -pass -e "SELECT * FROM table" > s3:\\mybucket\data.csv

但它并没有导出文件。

admin 更改状态以发布 2023年5月21日
0
0 Comments

除了接受的回答外,如果您正在使用 Aurora,则可以执行以下操作

SELECT * FROM table INTO OUTFILE S3 's3:\\mybucket\table-data';

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.SaveIntoS3.html

另一种方法是

mysqldump -h [db_hostname] -u [db_user] -p[db_passwd] [databasename] [tablename] | aws s3 cp - s3://[s3_bucketname]/[mysqldump_filename]

它将直接将文件存储到 S3,而不占用空间。

0
0 Comments

如果您想使用mysql命令行程序,则有两个选择:

  • 增加实例的存储空间,以便创建文件。然后将文件复制到S3
  • 创建一个单独的程序或脚本,从标准输入读取并写入S3。

另一种解决方案是创建一个简单的程序,处理您的SELECT语句,直接写入S3。在Python、Java等语言中,这方面有许多示例。

0