将压缩的CSV(filename.csv.gz)文件加载到PostgreSQL表

时间:2018-09-04 14:13:19

标签: postgresql

因为我尝试了管道命令(mkfifo pipename),但是如何将大量的csv.gz文件加载到Postgresql中而不解压缩到csv文件,但是它对我不起作用。还有其他解决方案可以解决此问题吗?

我尝试使用以下命令将其从本地加载到PostgreSQL 命令:zcat file.csv.gz | psql -U用户名-d数据库;

结果:内存不足

需要:我想从centos加载一个较大的csv.gz(大约15 GB以上)文件到Postgresql数据库。

2 个答案:

答案 0 :(得分:0)

请注意,这也应从psql内部进行:

\copy TABLE_NAME FROM PROGRAM 'gzip -dc FILENAME.csv.gz' DELIMITER ',' CSV HEADER NULL ''

答案 1 :(得分:0)

仅使用zcat而不是gzip共享我的简单示例。只需减少打字。我正在使用zcat扩展压缩文件。

\copy tmptable from program 'zcat O1variant.tab.gz' with (format csv, delimiter E'\t', header TRUE)