本文介绍ORC文件、Parquet文件和Avro文件与AnalyticDB PostgreSQL版的数据类型对照表。

ORC文件数据类型对照表

ORC数据类型 AnalyticDB PostgreSQL版数据类型
BOOLEAN bool
SHORT int2
INT int4
LONG int8
FLOAT float4
DOUBLE float8
DECIMAL numeric
CHAR char
STRING text
BINARY bytea
TIMESTAMP timestamp
DATE date
LIST(SHORT) int2[]
LIST(INT) int4[]
LIST(LONG) int8[]
LIST(FLOAT) float4[]
LIST(DOUBLE) float8[]
说明 对于ORC中的LIST数据类型,目前仅支持转换成AnalyticDB PostgreSQL版的一维数组。

Parquet文件数据类型对照表

Parquet文件中没有提供Logical Types的情况下,数据类型对照如下:

Parquet数据类型 AnalyticDB PostgreSQL版数据类型
BOOLEAN bool
INT32 int4
INT64 int8
INT96 timestamp
FLOAT float4
DOUBLE float8
BYTE_ARRAY bytea
FIXED_LEN_BYTE_ARRAY bytea

Parquet文件中提供logical types的情况下,数据类型对照如下:

Parquet数据类型 AnalyticDB PostgreSQL版数据类型
STRING text
DATE date
TIMESTAMP timestamp
TIME time
INTERVAL interval
DECIMAL numeric
INT(8)、INT(16) int2
INT(32) int4
INT(64) int8json
UINT(8/16/32/64) int8
JSON json
BSON jsonb
UUID uuid
ENUM text
说明 目前不支持Parquet中ARRAY和MAP嵌套类型。

Avro文件数据类型对照表

Avro数据类型对应AnalyticDB PostgreSQL版列的数据类型,Avro数据类型组成的Records类型对应AnalyticDB PostgreSQL版的数据表。

Avro数据类型(主类型、逻辑类型和元素类型) AnalyticDB PostgreSQL版数据类型
BOOLEAN bool
INT int4、int2
INT、DATE date
LONG int8
LONG、TIMESTAMP timestamp、timestamptz
LONG、TIME time
FLOAT float
DOUBLE float8
BYTES bytea
BYTES、DECIMAL(precision, scale) numeric(precision、scale)
STRING char、varchar、text、numeric(不指定precision与scale)
ARRAY、INT int4[]、int2[]
ARRAY、LONG int8[]
ARRAY、FLOAT float[]
ARRAY、DOUBLE float8[]
说明
  • 对于Avro中的ARRAY数据类型,目前仅支持转换成AnalyticDB PostgreSQL版的一维数组。
  • 不支持上表中未出现的Avro复杂数据类型。