aws_s3.query_export_to_s3 PostgreSQL RDS 扩展使用 header 将所有 multi-part 个 CSV 文件导出到 S3

aws_s3.query_export_to_s3 PostgreSQL RDS extension exporting all multi-part CSV files to S3 with a header

我正在使用 aws_s3.query_export_to_s3 函数以 CSV 格式将数据从 Amazon Aurora Postgresql 数据库导出到 S3,其中包含 header 行。

这有效。

但是,当导出较大并输出到多个零件文件时,第一个零件文件具有 CSV header 行,而后续零件文件则没有。

SELECT * FROM aws_s3.query_export_to_s3(
  'SELECT ...',
  aws_commons.create_s3_uri(...),
  options:='format csv, HEADER true'
);

如何使此导出将 header 行添加到所有 CSV 文件部分?

我正在使用 Apache Spark 加载此 CSV 数据,它需要在每个单独的部分文件中有一个 header 行。

How can I make this export add the header row to all part filess?

不幸的是,这是不可能的。

aws_s3.query_export_to_s3 函数在后台使用 PostgreSQL COPY 命令,然后根据大小适当地分块文件。

除非扩展选择 HEADER true 选项,缓存 header 然后提供一个选项将其应用于生成的每个 CSV 文件,否则你就不走运了。

期望文件在下载后在目的地合并 文件处理器有一些读取部分文件的机制 文件处理器只需要 header 一次。