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[]

说明
  • T必须是基础数据类型。例如LIST<DATE>对照的数据类型为date[]。

  • 不支持LIST嵌套其他复杂类型(如LIST、MAP、STRUCT)。

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(不指定precisionscale)

ARRAY、INT

int4[]、int2[]

ARRAY、LONG

int8[]

ARRAY、FLOAT

float[]

ARRAY、DOUBLE

float8[]

说明
  • 对于Avro中的ARRAY数据类型,目前仅支持转换成AnalyticDB PostgreSQL的一维数组。

  • 不支持上表中未出现的Avro复杂数据类型。