是否可以将 AWS Athena 中的数据卸载到单个文件中?

Is it possible to unload data in AWS Athena to a single file?

doc 表示

UNLOAD results are written to multiple files in parallel.

我想这对于读取和写入都更有效率,所以卸载到单个文件没有意义。但是,如果出于某种原因最终用户希望输出为单个文件,这可能吗?

运行 Athena 中的 SELECT 查询在 Amazon S3 中生成未压缩 CSV 格式的单个结果文件,这是默认行为。

如果您的查询预计会输出大量结果集,那么将花费大量时间将结果作为单个文件写入 Amazon S3。使用 UNLOAD,您可以将结果拆分为 Amazon S3 中的多个文件,从而减少写入阶段花费的时间,从而提高性能,您甚至可以使用 parquet.

等压缩技术

您尝试做的不是卸载的目的。一种解决方案是编写某种 post 处理器,它将在写入完成后合并文件。也许使用在 S3 写入时触发的 lambda 函数。