OSS Foreign Table数据类型对照表
本文介绍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数据类型 | AnalyticDB PostgreSQL版数据类型 |
LIST<T> | T[] 说明
|
MAP | 不支持 |
STRUCT | 不支持 |
在数据导入过程中,系统会自动进行类型转换。如果遇到不支持的类型,导入操作将失败并返回错误信息。
为获得更好的查询性能,建议使用基础数据类型。
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复杂数据类型。