Arrow
Входной | Выходной | Псевдоним |
---|---|---|
✔ | ✔ |
Описание
Apache Arrow поставляется с двумя встроенными форматами хранения в столбцах. ClickHouse поддерживает операции чтения и записи для этих форматов.
Arrow
— это формат "файлового режима" Apache Arrow. Он предназначен для случайного доступа в памяти.
Сопоставление типов данных
В таблице ниже показаны поддерживаемые типы данных и их соответствие типам данных ClickHouse типы данных в запросах INSERT
и SELECT
.
Тип данных Arrow (INSERT ) | Тип данных ClickHouse | Тип данных Arrow (SELECT ) |
---|---|---|
BOOL | Bool | BOOL |
UINT8 , BOOL | UInt8 | UINT8 |
INT8 | Int8/Enum8 | INT8 |
UINT16 | UInt16 | UINT16 |
INT16 | Int16/Enum16 | INT16 |
UINT32 | UInt32 | UINT32 |
INT32 | Int32 | INT32 |
UINT64 | UInt64 | UINT64 |
INT64 | Int64 | INT64 |
FLOAT , HALF_FLOAT | Float32 | FLOAT32 |
DOUBLE | Float64 | FLOAT64 |
DATE32 | Date32 | UINT16 |
DATE64 | DateTime | UINT32 |
TIMESTAMP , TIME32 , TIME64 | DateTime64 | TIMESTAMP |
STRING , BINARY | String | BINARY |
STRING , BINARY , FIXED_SIZE_BINARY | FixedString | FIXED_SIZE_BINARY |
DECIMAL | Decimal | DECIMAL |
DECIMAL256 | Decimal256 | DECIMAL256 |
LIST | Array | LIST |
STRUCT | Tuple | STRUCT |
MAP | Map | MAP |
UINT32 | IPv4 | UINT32 |
FIXED_SIZE_BINARY , BINARY | IPv6 | FIXED_SIZE_BINARY |
FIXED_SIZE_BINARY , BINARY | Int128/UInt128/Int256/UInt256 | FIXED_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 | Разрешить отсутствующие колонки при чтении форматов входных данных Arrow | 1 |
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 | Пропускать колонки с неподдерживаемыми типами при выводе схемы для формата Arrow | 0 |
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 Arrow | 0 |
output_format_arrow_string_as_string | Использовать тип Arrow String вместо Binary для строковых колонок | 1 |
output_format_arrow_use_64_bit_indexes_for_dictionary | Всегда использовать 64-битные целые числа для индексов словаря в формате Arrow | 0 |
output_format_arrow_use_signed_indexes_for_dictionary | Использовать знаковые целые числа для индексов словаря в формате Arrow | 1 |