Aurora MySQL使用SELECT INTO OUTFILE S3仅导出部分数据的解决方法
Aurora MySQL 2.11.2导出S3仅部分行的修复方案
核心原因及快速修复
Aurora MySQL 2.11.2版本中,会话变量aurora_select_into_s3_max_rows默认值为200,这就是你只导出200行的直接原因。按以下步骤修复:
- 先执行会话变量设置命令,调整导出行数上限:
SET SESSION aurora_select_into_s3_max_rows = 10000; - 再执行原导出语句,即可导出全部10k行数据。如果后续有更大表的导出需求,可将值设得更大(比如100000)。
备选方案:分批导出
如果无法调整会话变量,可按主键/自增ID分段分批导出:
-- 导出第一部分 SELECT * FROM my_database_table WHERE id BETWEEN 1 AND 5000 INTO OUTFILE S3 's3://my-bucket/folder/mytable_part1' FORMAT CSV HEADER MANIFEST ON OVERWRITE ON; -- 导出第二部分(注意去掉HEADER避免重复表头) SELECT * FROM my_database_table WHERE id BETWEEN 5001 AND 10000 INTO OUTFILE S3 's3://my-bucket/folder/mytable_part2' FORMAT CSV MANIFEST ON OVERWRITE ON;
导出完成后可在S3端合并分文件。
长期方案:升级版本
如果业务允许,可考虑升级到更高版本的Aurora MySQL(比如3.x系列),新版本已调整该参数的默认值,同时修复了部分导出相关的限制问题。升级前务必做好数据备份和兼容性测试。
内容的提问来源于stack exchange,提问作者SpikeLee235
相关产品推荐
相关产品推荐

