PostgreSQL与DWS字段类型映射
Migration会根据源端的字段类型按默认规则转换成目的端字段类型,并以此完成自动建表和实时同步。
字段类型映射规则
当源端为PostgreSQL,目的端为DWS时,支持的字段类型请参见下表,以确保数据完整同步到目的端。
类别 |
数据类型(PostgreSQL) |
数据类型(DWS) |
说明 |
---|---|---|---|
字符串 |
CHAR(M) |
CHAR(M) |
固定长字符串,空格填充 |
VARCHAR(M) |
VARCHAR(M) |
有限制的变长字符串 |
|
TEXT |
TEXT |
无限制的变长字符串,类似没有长度声明词的VARCHAR |
|
数值 |
BOOLEAN |
BOOL |
逻辑布尔值(真/假) |
SMALLINT |
SMALLINT |
即int2 |
|
INTEGER |
INTEGER |
即int/int4 |
|
BIGINT |
BIGINT |
即int8 |
|
DECIMAL(M,D) |
DECIMAL(M,D) |
可选择精度的精确数字 |
|
NUMERIC(M,D) |
NUMERIC(M,D) |
与NUMERIC等效 |
|
REAL |
REAL |
单精度浮点数(4字节) |
|
DOUBLE |
DOUBLE |
即DOUBLE PRECISION,也可用没有精度的FLOAT表示,双精度浮点数(8字节) |
|
位 |
BIT(M) |
BIT(M) |
BIT类型的数据必须准确匹配长度M |
BIT VARYING(M) |
BIT VARYING(M) |
BIT VARYING数据是最长M的变长类型 |
|
日期时间 |
DATE |
TMESTAMP |
源端为日期(没有一天中的时间),到目的端类型会变成日期+时间的timestamp |
TIME(M) |
TIME |
一天中的时间(不带日期) |
|
TIME(M) WITH TIME ZONE |
TIMETZ |
即TIMETZ,一天中的时间(不带日期),带有时区 |
|
TIMESTAMP(M) |
TMESTAMP |
包括日期和时间,无时区 |
|
TIMESTAMP(M) WITH TIME ZONE |
TMESTAMPTZ |
即TMESTAMPTZ,包括日期和时间,带有时区 |
|
INTERVAL |
INTERVAL |
时间间隔 |
|
二进制 |
BYTEA |
BYTEA |
二进制数据(“字节数组”) |
特殊类型 |
MONEY |
MONEY |
存储固定小数精度的货币数字,如 $1,000.00 |