Перейти к основному содержанию

Как экспортировать данные PostgreSQL в Parquet, CSV или JSON

Это легко сделать с помощью clickhouse-local:
  • Используйте табличную функцию postgresql, чтобы прочитать данные
  • Используйте предложение INTO OUTFILE _filename_ FORMAT и укажите нужный формат вывода
Форматом вывода может быть любой из поддерживаемых форматов вывода в ClickHouse. Рассмотрим несколько примеров… В этих примерах используется clickhouse-local, который входит в состав бинарного файла ClickHouse. Скачайте его следующим образом:

Экспорт PostgreSQL в Parquet

Табличная функция postgresql позволяет выполнять запросы SELECTINSERT) к данным, хранящимся на удалённом сервере PostgreSQL. Например, чтобы просмотреть всё содержимое таблицы в PostgreSQL:
Мы можем направить результат этого запроса в файл с помощью INTO OUTFILE. Используйте FORMAT, чтобы указать формат создаваемого файла. Давайте выгрузим всё содержимое таблицы PostgreSQL в файл Parquet:
Поскольку имя выходного файла имеет расширение .parquet, ClickHouse предполагает, что нам нужен формат Parquet, поэтому обратите внимание: мы опустили конструкцию FORMAT Parquet.

Экспорт PostgreSQL в CSV

Всё то же, что и для Parquet, только для выходного файла мы указываем более подходящее имя:
Вот и всё! ClickHouse распознаёт расширение .csv в имени выходного файла и выводит данные в формате CSV. В остальном это та же самая команда, что и выше.

Экспорт из PostgreSQL в JSON

Чтобы экспортировать данные из PostgreSQL в JSON, достаточно изменить имя файла, и ClickHouse сам определит формат:
На этом можно не останавливаться — clickhouse-local также позволяет забирать данные из PostgreSQL и отправлять их в любые форматы вывода.Если ClickHouse не может определить выходной формат по расширению имени файла или если вы хотите явно указать формат, добавьте предложение FOMRAT:

Потоковая передача PostgreSQL в другой процесс

Вместо INTO OUTFILE можно передавать результаты табличной функции в другой процесс в виде потока. Вот простой пример, демонстрирующий синтаксис: мы подсчитываем количество строк с помощью команды Linux wc -l:
Однако мы можем без труда передавать эти строки в shell-скрипт, скрипт на Python или любой другой нужный вам процесс.
Последнее изменение 29 июня 2026 г.