Skip to main content

Секция INTO OUTFILE

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

Поддерживаются сжатые файлы. Формат сжатия определяется по расширению файла (по умолчанию используется режим 'auto'), либо он может быть задан явно в секции COMPRESSION. Уровень сжатия для конкретного алгоритма может быть задан в секции LEVEL.

Синтаксис

SELECT <expr_list> INTO OUTFILE file_name [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.

Пример

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

clickhouse-client --query="SELECT 1,'ABC' INTO OUTFILE 'select.gz' FORMAT CSV;"
zcat select.gz

Результат:

1,"ABC"