Parquet — это эффективный файловый формат для хранения данных в столбцовом виде.
ClickHouse поддерживает как чтение, так и запись файлов Parquet.
Когда вы указываете путь к файлу в запросе, место, откуда ClickHouse будет читать данные, зависит от используемого варианта ClickHouse.Если вы используете clickhouse-local, чтение будет выполняться по пути относительно каталога, из которого вы запустили ClickHouse Local.
Если вы используете ClickHouse Server или ClickHouse Cloud через clickhouse client, чтение будет выполняться по пути относительно каталога /var/lib/clickhouse/user_files/ на сервере.
Перед загрузкой данных можно использовать функцию file(), чтобы посмотреть структуру примерного файла Parquet:
В качестве второго аргумента мы использовали Parquet, чтобы ClickHouse определил формат файла. Будут выведены столбцы с типами:
Мы также можем просмотреть файлы перед фактическим импортом данных, используя всю мощь SQL:
Можно не указывать format явно для file() и INFILE/OUTFILE.
В этом случае ClickHouse автоматически определит format по расширению файла.
Импорт в существующую таблицу
Создадим таблицу, в которую будем импортировать данные Parquet:
Теперь мы можем импортировать данные с помощью конструкции FROM INFILE:
Обратите внимание: ClickHouse автоматически преобразовал строки Parquet (в столбце date) в тип Date. Это связано с тем, что ClickHouse автоматически приводит типы на основе типов в целевой таблице.
Вставка локального файла на удалённый сервер
Если вам нужно выполнить вставку данных из локального файла Parquet на удалённый сервер ClickHouse, это можно сделать, передав содержимое файла в clickhouse-client, как показано ниже:
Создание новых таблиц из файлов Parquet
Поскольку ClickHouse считывает схему файла Parquet, таблицы можно создавать на лету:
Это автоматически создаст и заполнит таблицу на основе указанного файла Parquet:
По умолчанию ClickHouse строго проверяет имена столбцов, типы и значения. Но иногда при импорте можно пропускать несуществующие столбцы или неподдерживаемые значения. Это можно настроить с помощью настроек Parquet.
При использовании INTO OUTFILE с ClickHouse Cloud команды нужно запускать в clickhouse client на той машине, на которую будет записан файл.
Чтобы экспортировать любую таблицу или результат запроса в файл Parquet, можно использовать предложение INTO OUTFILE:
В рабочем каталоге будет создан файл export.parquet.
Типы данных ClickHouse и Parquet
Типы данных в ClickHouse и Parquet в основном совпадают, но всё же слегка различаются. Например, ClickHouse экспортирует тип DateTime в Parquet как int64. Если затем импортировать эти данные обратно в ClickHouse, мы увидим числа (файл time.parquet):
В этом случае можно использовать преобразование типов:
ClickHouse поддерживает множество форматов — как текстовых, так и двоичных, — для самых разных сценариев и платформ. Подробнее о форматах и способах работы с ними читайте в следующих статьях:
Также обратите внимание на clickhouse-local — это переносимый полнофункциональный инструмент для работы с локальными и удалёнными файлами без необходимости использовать сервер ClickHouse. Последнее изменение 23 июля 2026 г.