Описание
Соответствие типов данных
При записи файла Parquet типы данных, для которых нет соответствующего типа Parquet, преобразуются в ближайший доступный тип:
Массивы могут быть вложенными и в качестве аргумента могут содержать значение типа
Nullable. Типы Tuple и Map также могут быть вложенными.
Типы данных столбцов таблицы ClickHouse могут отличаться от соответствующих полей вставляемых данных Parquet. При вставке данных ClickHouse интерпретирует типы данных в соответствии с таблицей выше, а затем преобразует данные к типу, заданному для столбца таблицы ClickHouse. Например, столбец Parquet типа UINT_32 можно прочитать в столбец ClickHouse типа IPv4.
Для некоторых типов Parquet нет близкого соответствия среди типов ClickHouse. Они читаются следующим образом:
TIME(время суток) читается как временная метка. Например,10:23:13.000становится1970-01-01 10:23:13.000.TIMESTAMP/TIMEсisAdjustedToUTC=false— это локальное wall-clock time (поля года, месяца, дня, часа, минуты, секунды и долей секунды в локальном часовом поясе, независимо от того, какой именно часовой пояс считается локальным), то же, что и SQLTIMESTAMP WITHOUT TIME ZONE. Однако ClickHouse читает его так, как если бы это была временная метка UTC. Например,2025-09-29 18:42:13.000(представляющее показание местных часов) становится2025-09-29 18:42:13.000(DateTime64(3, 'UTC'), представляющим момент времени). При преобразовании в String отображаются правильные значения года, месяца, дня, часа, минуты, секунды и долей секунды, которые затем можно интерпретировать как относящиеся к некоторому локальному часовому поясу, а не к UTC. Как ни парадоксально, изменение типа сDateTime64(3, 'UTC')наDateTime64(3)не поможет, поскольку оба типа представляют момент времени, а не показание часов, ноDateTime64(3)при этом будет ошибочно форматироваться с использованием локального часового пояса.INTERVALв настоящее время читается какFixedString(12)с сырым бинарным представлением временного интервала в том виде, в каком оно закодировано в файле Parquet.
Пример использования
Вставка данных
football.parquet:
Чтение данных
Parquet:
движок таблицы HDFS.