Parquet输入输出格式
支持Parquet格式的导出和导入。
Parquet和ClickHouse类型的匹配关系
Parquet data type (INSERT) | ClickHouse data type | Parquet data type (SELECT) |
---|---|---|
UINT8,BOOL | UInt8 | UINT8 |
INT8 | Int8 | INT8 |
UINT16 | UInt16 | UINT16 |
INT16 | Int16 | INT16 |
UINT32 | UInt32 | UINT32 |
INT32 | Int32 | INT32 |
UINT64 | UInt64 | UINT64 |
INT64 | Int64 | INT64 |
FLOAT,HALF_FLOAT | Float32 | FLOAT |
DOUBLE | Float64 | DOUBLE |
DATE32 | Date | UINT16 |
DATE64,TIMESTAMP | DateTime | UINT32 |
STRING,BINARY | String | STRING |
— | FixedString | STRING |
DECIMAL | Decimal | DECIMAL |
不支持的Parquet数据类型:DATE32, TIME32, FIXED_SIZE_BINARY, JSON, UUID, ENUM。
注意:
- ClickHouse表的列名必须与Parquet表的列名一致。
- ClickHouse表的列数据类型可以不同于插入的Parquet数据类型。 在插入数据时, ClickHouse根据上表解释数据类型, 然后将数据类型转换为ClickHouse表的列数据类型。
数据的导出:
备注:表随便找一张
clickhouse-client --query="SELECT * FROM tsv_demo FORMAT Parquet" > parquet_demo.parquet
数据的导入:
create table parquet_demo (srcip String, destip String, time String) ENGINE=TinyLog;
cat parquet_demo.parquet | clickhouse-client --query="INSERT INTO parquet_demo FORMAT Parquet"