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

Оператор INTO OUTFILE

Оператор INTO OUTFILE перенаправляет результат запроса SELECT в файл на стороне клиента.

Поддерживаются сжатые файлы. Тип сжатия определяется по расширению имени файла (по умолчанию используется режим 'auto'). Либо его можно явным образом указать в операторе COMPRESSION. Уровень сжатия для определенного типа сжатия может быть указан в операторе 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 или TRUNCATE.

Пример

Выполните следующий запрос с помощью клиента командной строки:

Результат: