Skip to main content

Описание

Apache Arrow включает два встроенных формата столбцового хранения. ClickHouse поддерживает чтение и запись в этих форматах. Arrow — это формат Apache Arrow в «файловом режиме», предназначенный для произвольного доступа к данным в памяти.

Соответствие типов данных

В таблице ниже показаны поддерживаемые типы данных и их соответствие типам данных ClickHouse в запросах INSERT и SELECT. Массивы могут быть вложенными и могут иметь тип Nullable в качестве аргумента. Типы Tuple и Map также могут быть вложенными. Тип DICTIONARY поддерживается в запросах INSERT, а для запросов SELECT есть настройка output_format_arrow_low_cardinality_as_dictionary, которая позволяет выводить тип LowCardinality как тип DICTIONARY. Обратите внимание, что в словаре LowCardinality могут быть неиспользуемые значения, из-за чего при выводе в Arrow DICTIONARY тоже могут появляться неиспользуемые значения. Неподдерживаемые типы данных Arrow:
  • JSON
  • ENUM.
Типы данных столбцов таблицы ClickHouse не обязаны совпадать с типами данных соответствующих полей Arrow. При вставке данных ClickHouse интерпретирует типы данных в соответствии с таблицей выше, а затем приводит данные к типу данных, заданному для столбца таблицы ClickHouse.

Пример использования

В примере ниже используется набор данных forex, доступный в Песочнице ClickHouse.

Выборка данных

Мы выбираем курсы EUR/USD за один день из Песочницы ClickHouse и сохраняем их в локальный файл forex_eurusd.arrow. Мы отправляем запрос к песочнице через HTTP- интерфейс, где хост — sql-clickhouse.clickhouse.com, а пользователь — demo (без пароля):

Чтение файла

Теперь мы можем прочитать локальный файл Arrow с помощью clickhouse-local, используя табличную функцию file. Файл самоописывающийся, поэтому формат Arrow автоматически определяет схему:
Response

Вставка данных

Чтобы загрузить файл Arrow в таблицу ClickHouse, передайте его в clickhouse-client, указав FORMAT Arrow:

Настройки формата

Последнее изменение 23 июля 2026 г.