ORC
输入 | 输出 | 别名 |
---|---|---|
✔ | ✔ |
描述
Apache ORC 是一种列式存储格式,广泛用于 Hadoop 生态系统中。
数据类型匹配
下表比较了受支持的 ORC 数据类型及其在 INSERT
和 SELECT
查询中对应的 ClickHouse 数据类型。
ORC 数据类型 (INSERT ) | ClickHouse 数据类型 | ORC 数据类型 (SELECT ) |
---|---|---|
Boolean | UInt8 | Boolean |
Tinyint | Int8/UInt8/Enum8 | Tinyint |
Smallint | Int16/UInt16/Enum16 | Smallint |
Int | Int32/UInt32 | Int |
Bigint | Int64/UInt32 | Bigint |
Float | Float32 | Float |
Double | Float64 | Double |
Decimal | Decimal | Decimal |
Date | Date32 | Date |
Timestamp | DateTime64 | Timestamp |
String , Char , Varchar , Binary | String | Binary |
List | Array | List |
Struct | Tuple | Struct |
Map | Map | Map |
Int | IPv4 | Int |
Binary | IPv6 | Binary |
Binary | Int128/UInt128/Int256/UInt256 | Binary |
Binary | Decimal256 | Binary |
- 不支持其他类型。
- 数组可以嵌套,并且可以将
Nullable
类型的值作为参数。Tuple
和Map
类型也可以嵌套。 - ClickHouse 表列的数据类型不必与相应的 ORC 数据字段匹配。插入数据时,ClickHouse 会根据上表解释数据类型,然后 转换 数据为 ClickHouse 表列设置的数据类型。
使用示例
插入数据
您可以使用以下命令将文件中的 ORC 数据插入到 ClickHouse 表中
$ cat filename.orc | clickhouse-client --query="INSERT INTO some_table FORMAT ORC"
选择数据
您可以使用以下命令从 ClickHouse 表中选择数据,并将其保存为 ORC 格式的文件
$ clickhouse-client --query="SELECT * FROM {some_table} FORMAT ORC" > {filename.orc}
格式设置
设置 | 描述 | 默认值 |
---|---|---|
output_format_arrow_string_as_string | 对于 String 列,使用 Arrow String 类型而不是 Binary。 | false |
output_format_orc_compression_method | 输出 ORC 格式中使用的压缩方法。默认值 | none |
input_format_arrow_case_insensitive_column_matching | 将 Arrow 列与 ClickHouse 列匹配时忽略大小写。 | false |
input_format_arrow_allow_missing_columns | 读取 Arrow 数据时允许缺少列。 | false |
input_format_arrow_skip_columns_with_unsupported_types_in_schema_inference | 在 Arrow 格式的模式推断时,允许跳过具有不支持类型的列。 | false |
要与 Hadoop 交换数据,您可以使用 HDFS 表引擎。