如何将大量 csv.gz 文件加载到 Postgresql 中而不解压到 csv 文件,因为我尝试了管道命令(mkfifo pipelinename),但它对我不起作用。还有其他解决方案可以解决这个问题吗?
我尝试使用以下命令将其从本地加载到 postgresql 命令:zcat file.csv.gz | psql -U 用户名 -d 数据库;
结果:内存不足
需要:我想从centos加载一个大尺寸的csv.gz(大约15+ GB)文件到postgresql数据库。
请注意,这也应该从内部起作用
psql
:
\copy TABLE_NAME FROM PROGRAM 'gzip -dc FILENAME.csv.gz' DELIMITER ',' CSV HEADER NULL ''
只是分享我使用 zcat 而不是 gzip 的简单示例。只是减少打字。我正在使用 zcat 来扩展 gzip 压缩文件。
\copy tmptable from program 'zcat O1variant.tab.gz' with (format csv, delimiter E'\t', header TRUE)
它对我有用:
7z e -so file.csv.gz | psql -U username -d databasename -c "COPY tablename FROM STDIN WITH (FORMAT csv, HEADER true);"