导出为CSV并在postgres中使用GZIP进行压缩

问题描述 投票:24回答:3

我需要将一个大表导出到csv文件并进行压缩。

我可以使用COPY命令从类似-的Postgres导出它>

COPY foo_table to '/tmp/foo_table.csv' delimiters',' CSV HEADER;

然后可以使用gzip压缩它-

gzip -c foo_table.csv > foo.gz

这种方法的问题是,在我得到最终的压缩文件之前,我需要创建这个本身很大的中间csv文件。

是否有一种方法可以在csv中导出表并一步压缩文件?

关于,苏吉特

我需要将一个大表导出到csv文件并进行压缩。我可以使用COPY命令从postgres导出它,例如-COPY foo_table到'/tmp/foo_table.csv'delimiters','CSV HEADER;然后可以...

postgresql backup gzip compression
3个回答
45
投票

诀窍是使COPY将其输出发送到stdout,然后通过gzip将输出传递给管道:


7
投票

在下面扩展@Joey的答案,增加了对the manual中可用的几个功能的支持。


0
投票

根据文档,您可以直接使用https://www.postgresql.org/docs/9.4/sql-copy.html

© www.soinside.com 2019 - 2024. All rights reserved.