外表数据类型映射

外表数据类型映射

本文汇总外表(Foreign Table)在不同外部数据源/表格式下的数据类型映射规则,用于创建外表与数据访问时的类型对齐与兼容性判断。

ORC/Parquet 数据类型映射

外部类型ProtonBase 类型说明
BOOLEANBOOLEAN直接映射
TINYINTSMALLINT兼容性提升(向上提升)
SMALLINTSMALLINT直接映射
INTINTEGER直接映射
BIGINTBIGINT直接映射
FLOATREAL直接映射
DOUBLEDOUBLE PRECISION直接映射
DECIMAL(p,s)DECIMAL(p,s)保留精度与标度
STRINGTEXT变长文本
VARCHAR(n)VARCHAR(n)保留长度
CHAR(n)CHAR(n)固定长度
BINARYBYTEA二进制数据
TIMESTAMPTIMESTAMP直接映射
DATEDATE直接映射
ARRAY<type>type[]数组元素类型递归映射
MAPNot Available暂不支持复杂类型
STRUCTNot Available暂不支持复杂类型

Delta Lake 数据类型映射

外部类型ProtonBase 类型说明
booleanBOOLEAN直接映射
shortSMALLINT直接映射
integerINTEGER直接映射
longBIGINT直接映射
floatREAL直接映射
doubleDOUBLE PRECISION直接映射
decimal(p,s)DECIMAL(p,s)保留精度与标度
stringTEXT变长文本
varchar(n)VARCHAR(n)保留长度
char(n)CHAR(n)固定长度
binaryBYTEA二进制数据
dateDATE直接映射
timestampTIMESTAMPTZ带时区的时间戳
timestamp_ntzTIMESTAMP不带时区的时间戳
array<type>type[]数组元素类型递归映射
mapNot Available暂不支持复杂类型
structNot Available暂不支持复杂类型

Apache Iceberg 数据类型映射

外部类型ProtonBase 类型说明
booleanBOOLEAN直接映射
intINTEGER32-bit 有符号整数
longBIGINT64-bit 有符号整数
floatREAL32-bit IEEE 754 浮点
doubleDOUBLE PRECISION64-bit IEEE 754 浮点
decimal(p,s)DECIMAL(p,s)保留精度与标度
dateDATE直接映射
timeTIME微秒精度
timestampTIMESTAMPTZ带时区的时间戳
timestamp_ntzTIMESTAMP不带时区的时间戳
timestamptzTIMESTAMPTZ带时区的时间戳
stringTEXT变长文本
uuidUUID直接映射
fixed(n)BYTEA定长二进制
binaryBYTEA变长二进制
list<type>type[]数组元素类型递归映射
mapNot Available暂不支持复杂类型
structNot Available暂不支持复杂类型

重要说明

  • 复杂类型MAP / STRUCT(以及同类复杂嵌套结构)目前不支持直接映射为外表列类型;建议在外部写入前做 schema 扁平化或字段抽取。
  • 数组类型:仅支持简单数组;数组元素类型会按本文规则递归映射。
  • 精度与标度DECIMAL(p,s) 会尽量保留 (p)(precision)与 (s)(scale)。