| 输入 | 输出 | 别名 |
|---|---|---|
| ✔ | ✔ |
说明
Arrow 是 Apache Arrow 的“文件模式”格式,专为内存中的随机访问而设计。
数据类型匹配
INSERT 和 SELECT 查询中与 ClickHouse 数据类型 的对应关系。
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 |
DURATION | Interval (Nanosecond/Microsecond/Millisecond/Second) | DURATION |
INT64 | Interval (Minute/Hour/Day/Week/Month/Quarter/Year) | INT64 |
Nullable 类型的值。Tuple 和 Map 类型同样可以嵌套。
DICTIONARY 类型支持用于 INSERT 查询;对于 SELECT 查询,则提供了 output_format_arrow_low_cardinality_as_dictionary 设置,可将 LowCardinality 类型输出为 DICTIONARY 类型。请注意,LowCardinality 字典中可能包含未使用的值,这可能导致输出的 Arrow DICTIONARY 中也出现未使用的值。
不支持的 Arrow 数据类型:
FIXED_SIZE_BINARYJSONUUIDENUM.
示例用法
插入数据
选择数据
格式设置
| 设置 | 说明 | 默认值 |
|---|---|---|
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 格式进行 schema 推断时,跳过类型不受支持的列 | 0 |
output_format_arrow_compression_method | Arrow 输出格式的压缩方法。支持的编解码器:lz4_frame、zstd、none (未压缩) | lz4_frame |
output_format_arrow_fixed_string_as_fixed_byte_array | 对 FixedString 列使用 Arrow FIXED_SIZE_BINARY 类型,而不是 Binary 类型。 | 1 |
output_format_arrow_low_cardinality_as_dictionary | 启用将 LowCardinality 类型输出为 Arrow 的 字典 类型 | 0 |
output_format_arrow_string_as_string | 对 String 列使用 Arrow String 类型,而不是 Binary 类型 | 1 |
output_format_arrow_use_64_bit_indexes_for_dictionary | 在 Arrow 格式中始终对字典索引使用 64 位整数 | 0 |
output_format_arrow_use_signed_indexes_for_dictionary | 在 Arrow 格式中对字典索引使用有符号整数 | 1 |