экспортировать таблицу в csv файл с COPY в postgres и предложением уменьшить размер файла csv - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь экспортировать таблицу в Postgres БД в файл csv с помощью команды COPY, и размер файла CSV в результате получается очень большим.

Ниже приведена команда для их экспорта в файл CSV.

Фактический размер таблицы: 600 МБ
Результат Размер файла CSV: 162 МБ

Команда:

\copy cities to '/var/lib/pgsql/cities.csv' DELIMITER ',' CSV HEADER;

Может кто-нибудь посоветовать, как уменьшить размер файла CSV?

Это стандартное поведение команды COPY? Можем ли мы уменьшить размер файла?

Ответы [ 2 ]

0 голосов
/ 04 марта 2020

Вы можете сжать его потом. Или вы можете сжать его на лету:

\copy cities to PROGRAM 'gzip > /var/lib/pgsql/cities.csv.gz' DELIMITER ',' CSV HEADER;

Конечно, вы можете заменить gzip на pigz или bzip2 или pxz или любым другим вашим любимым потоковым компрессором.

0 голосов
/ 04 марта 2020

Вы можете сжать файл на лету:

\copy cities TO PROGRAM 'gzip -9 > /var/lib/pgsql/cities.csv.gz' (DELIMITER ',', FORMAT 'csv', HEADER)
...