Секция 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"