Перейти к основному содержимому
Перейти к основному содержимому

Arrow

ВходнойВыходнойПсевдоним

Описание

Apache Arrow поставляется с двумя встроенными форматами хранения в столбцах. ClickHouse поддерживает операции чтения и записи для этих форматов. Arrow — это формат "файлового режима" Apache Arrow. Он предназначен для случайного доступа в памяти.

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

В таблице ниже показаны поддерживаемые типы данных и их соответствие типам данных ClickHouse типы данных в запросах INSERT и SELECT.

Тип данных Arrow (INSERT)Тип данных ClickHouseТип данных Arrow (SELECT)
BOOLBoolBOOL
UINT8, BOOLUInt8UINT8
INT8Int8/Enum8INT8
UINT16UInt16UINT16
INT16Int16/Enum16INT16
UINT32UInt32UINT32
INT32Int32INT32
UINT64UInt64UINT64
INT64Int64INT64
FLOAT, HALF_FLOATFloat32FLOAT32
DOUBLEFloat64FLOAT64
DATE32Date32UINT16
DATE64DateTimeUINT32
TIMESTAMP, TIME32, TIME64DateTime64TIMESTAMP
STRING, BINARYStringBINARY
STRING, BINARY, FIXED_SIZE_BINARYFixedStringFIXED_SIZE_BINARY
DECIMALDecimalDECIMAL
DECIMAL256Decimal256DECIMAL256
LISTArrayLIST
STRUCTTupleSTRUCT
MAPMapMAP
UINT32IPv4UINT32
FIXED_SIZE_BINARY, BINARYIPv6FIXED_SIZE_BINARY
FIXED_SIZE_BINARY, BINARYInt128/UInt128/Int256/UInt256FIXED_SIZE_BINARY

Массивы могут быть вложенными и могут иметь значение типа Nullable в качестве аргумента. Типы Tuple и Map также могут быть вложенными.

Тип DICTIONARY поддерживается для запросов INSERT, а для запросов SELECT есть настройка output_format_arrow_low_cardinality_as_dictionary, которая позволяет выводить тип LowCardinality в виде типа DICTIONARY.

Поддерживаемые типы данных Arrow, не входящие в список:

  • FIXED_SIZE_BINARY
  • JSON
  • UUID
  • ENUM.

Типы данных колонок таблицы ClickHouse не обязательно должны соответствовать соответствующим полям данных Arrow. При вставке данных ClickHouse интерпретирует типы данных в соответствии с таблицей выше, а затем преобразует данные в тип данных, установленный для колонки таблицы ClickHouse.

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

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

Вы можете вставить данные Arrow из файла в таблицу ClickHouse, используя следующую команду:

Выбор данных

Вы можете выбрать данные из таблицы ClickHouse и сохранить их в некоторый файл в формате Arrow, используя следующую команду:

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

НастройкаОписаниеПо умолчанию
input_format_arrow_allow_missing_columnsРазрешить отсутствующие колонки при чтении форматов входных данных Arrow1
input_format_arrow_case_insensitive_column_matchingИгнорировать регистр при сопоставлении колонок Arrow с колонками CH.0
input_format_arrow_import_nestedУстаревшая настройка, ничего не делает.0
input_format_arrow_skip_columns_with_unsupported_types_in_schema_inferenceПропускать колонки с неподдерживаемыми типами при выводе схемы для формата Arrow0
output_format_arrow_compression_methodМетод сжатия для формата вывода Arrow. Поддерживаемые кодеки: lz4_frame, zstd, none (несжатый)lz4_frame
output_format_arrow_fixed_string_as_fixed_byte_arrayИспользовать тип Arrow FIXED_SIZE_BINARY вместо Binary для колонок FixedString.1
output_format_arrow_low_cardinality_as_dictionaryВключить вывод типа LowCardinality в виде типа Dictionary Arrow0
output_format_arrow_string_as_stringИспользовать тип Arrow String вместо Binary для строковых колонок1
output_format_arrow_use_64_bit_indexes_for_dictionaryВсегда использовать 64-битные целые числа для индексов словаря в формате Arrow0
output_format_arrow_use_signed_indexes_for_dictionaryИспользовать знаковые целые числа для индексов словаря в формате Arrow1