Перейти к основному содержанию
Предложение INTO OUTFILE перенаправляет результат запроса SELECT в файл на стороне клиента. Поддерживаются сжатые файлы. Тип сжатия определяется по расширению имени файла (по умолчанию используется режим 'auto'). Либо его можно явно указать в предложении COMPRESSION. Уровень сжатия для конкретного типа можно указать в предложении LEVEL. Синтаксис
SELECT <expr_list> INTO OUTFILE file_name [AND STDOUT] [APPEND | TRUNCATE] [COMPRESSION type [LEVEL level]]
file_name и type — строковые литералы. Поддерживаются следующие типы сжатия: 'none', 'gzip', 'deflate', 'br', 'xz', 'zstd', 'lz4', 'bz2'. level — числовой литерал. Поддерживаются положительные целые числа в следующих диапазонах: 1-12 для типа lz4, 1-22 для типа zstd и 1-9 для остальных типов сжатия.

Подробности реализации

  • Эта возможность доступна в клиенте командной строки и clickhouse-local. Поэтому запрос, отправленный через HTTP-интерфейс, завершится ошибкой.
  • Запрос завершится ошибкой, если файл с таким именем уже существует.
  • Формат вывода по умолчанию — TabSeparated (как в пакетном режиме клиента командной строки). Чтобы изменить его, используйте предложение FORMAT.
  • Если в запросе указан AND STDOUT, то вывод, записываемый в файл, также отображается в стандартном выводе. Если используется сжатие, в стандартный вывод выводятся исходные данные.
  • Если в запросе указан APPEND, то вывод дописывается в существующий файл. Если используется сжатие, APPEND использовать нельзя.
  • При записи в уже существующий файл необходимо использовать APPEND или TRUNCATE.
Пример Выполните следующий запрос с помощью клиента командной строки:
Query
clickhouse-client --query="SELECT 1,'ABC' INTO OUTFILE 'select.gz' FORMAT CSV;"
zcat select.gz 
Response
1,"ABC"
Последнее изменение 10 июня 2026 г.