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

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

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

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

结果:内存不足

需要:我想从centos加载一个大尺寸的csv.gz(大约15+ GB)文件到postgresql数据库。

postgresql
3个回答
7
投票

请注意,这也应该从内部起作用

psql

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


4
投票

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

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

0
投票

它对我有用:

7z e -so file.csv.gz | psql -U username -d databasename -c "COPY tablename FROM STDIN WITH (FORMAT csv, HEADER true);"


我使用 7zip 来做到这一点。例如,您可以使用 gzip

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