结构初始化涉及的数据类型映射关系

不同类型的数据库(异构数据库)支持的数据类型不一样,DTS在进行异构数据库之间的数据同步时,会在结构初始化阶段进行数据类型映射,即将源库中的数据类型转为目标库支持的数据类型。本文为您列出详细数据类型映射关系,便于您查阅和评估数据同步对业务的影响。

概览

根据如下同步方案,查看异构数据库间的数据类型映射关系:

以MySQL数据库为源的数据同步

当源数据库类型为MySQL(如RDS MySQL、自建MySQL、PolarDB MySQL)、且目标实例为异构数据库时(包括云原生数据仓库 AnalyticDB MySQL 版 3.0和2.0、云原生数据仓库AnalyticDB PostgreSQL版),两者间的数据类型映射关系如下:

说明

如源实例中待同步数据范围超出DTS所支持的范围,则会导致目标实例中的所写入数据的精度降低。

目标实例为云原生数据仓库 AnalyticDB MySQL 版 3.0和2.0、云原生数据仓库AnalyticDB PostgreSQL版

类型

源实例的数据类型

数值范围

云原生数据仓库AnalyticDB MySQL版 3.0的数据类型

云原生数据仓库AnalyticDB MySQL版 2.0的数据类型

云原生数据仓库AnalyticDB PostgreSQL版的数据类型

整数类型

BIT[(M)]

1 ~ 64

VARCHAR

INT

BIT[(M)]

TINYINT[(M)]

-128 ~ 127

TINYINT

TINYINT

SMALLINT

TINYINT[(M)] [UNSIGNED]

0 ~ 255

SMALLINT

SMALLINT

SMALLINT

SMALLINT[(M)]

-32768 ~ 32767

SMALLINT

SMALLINT

SMALLINT

SMALLINT[(M)] [UNSIGNED]

0 ~ 65535

INT

INT

INTEGER

MEDIUMINT[(M)]

-8388608 ~ 8388607

INT

INT

INTEGER

MEDIUMINT[(M)] [UNSIGNED]

0 ~ 16777215

INT

INT

INTEGER

INT[(M)]

-2147483648 ~ 2147483647

INT

INT

INTEGER

INT[(M)] [UNSIGNED]

0 ~ 4294967295

BIGINT

BIGINT

BIGINT

BIGINT[(M)]

-9223372036854775808 ~ 9223372036854775807

BIGINT

BIGINT

BIGINT

BIGINT[(M)] [UNSIGNED]

0 ~ 18446744073709551615

DECIMAL(20,0)

BIGINT

NUMERIC(20)

小数类型

DECIMAL[(M[,D])]

M:0~65 ;

D:0~30

DECIMAL[(M[,D])]

DECIMAL[(M[,D])]

DECIMAL[(M[,D])]

FLOAT(p)

1.175494351E-38 ~ 3.402823466E+38

FLOAT

FLOAT

REAL

DOUBLE[(M,D)]

2.2250738585072014E-308 ~ 1.7976931348623157E+308

DOUBLE

DOUBLE

DOUBLE PRECISION

时间类型

DATE

1000-01-01~9999-12-31

说明

格式为YYYY-MM-DD。

DATE

DATE

DATE

DATETIME[(fsp)]

1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999

说明

格式为YYYY-MM-DD hh:mm:ss[.fraction](UTC时间)。

DATETIME

TIMESTAMP

TIMESTAMP

TIMESTAMP[(fsp)]

1970-01-01 00:00:01.000000 ~ 2038-01-19 03:14:07.999999

说明

格式为YYYY-MM-DD hh:mm:ss[.fraction](UTC时间)。

TIMESTAMP

TIMESTAMP

TIMESTAMP WITH TIME ZONE

TIME[(fsp)]

-838:59:59.000000 ~ 838:59:59.000000

说明

格式为hh:mm:ss[.fraction](UTC时间)。

TIME

VARCHAR

TIME WITHOUT TIME ZONE

YEAR[(4)]

1901 ~ 2155,或0000.

INT

VARCHAR

INTEGER

字符串类型

CHAR[(M)]

0 ~ 255 字符

VARCHAR

VARCHAR

CHAR

VARCHAR(M)

0 ~ 65,535 字符

VARCHAR

VARCHAR

VARCHAR

BINARY[(M)]

0 ~ 255 字节

VARBINARY

VARCHAR

BYTEA

VARBINARY(M)

0 ~ 65,535 字节

VARBINARY

VARCHAR

BYTEA

TINYBLOB

255 (2^8 − 1)字节

VARBINARY

VARCHAR

BYTEA

TINYTEXT

255 (2^8 − 1)字符

VARCHAR

VARCHAR

TEXT

BLOB

65,535 (2^16 − 1)字节

VARBINARY

VARCHAR

BYTEA

TEXT

65,535 (2^16 − 1)字符

VARCHAR

VARCHAR

TEXT

MEDIUMBLOB

16,777,215 (2^24 − 1)字节

VARBINARY

VARCHAR

BYTEA

MEDIUMTEXT

16,777,215 (2^24 − 1)字符

VARCHAR

VARCHAR

TEXT

LONGBLOB

4,294,967,295 or 4GB (2^32 − 1)字节

VARBINARY

VARCHAR

BYTEA

LONGTEXT

4,294,967,295 or 4GB (2^32 − 1)字符

VARCHAR

VARCHAR

TEXT

ENUM('value1','value2',...)

最多可包含65,535枚举值

VARCHAR

VARCHAR

VARCHAR(128)

SET('value1','value2',...)

最多可包含64个元素

VARCHAR

VARCHAR

VARCHAR(128)

空间类型

GEOMETRY

任意几何类型的值

VARBINARY

VARCHAR

POLYGON

POINT

VARBINARY

VARCHAR

POINT

LINESTRING

VARBINARY

VARCHAR

PATH

POLYGON

VARBINARY

VARCHAR

POLYGON

MULTIPOINT

VARBINARY

VARCHAR

POLYGON

MULTILINESTRING

VARBINARY

VARCHAR

PATH

MULTIPOLYGON

VARBINARY

VARCHAR

POLYGON

GEOMETRYCOLLECTION

任何几何类型的值的集合

VARBINARY

VARCHAR

POLYGON

JSON类型

JSON

JSON

VARCHAR

JSON

目标实例为DataHub、Kafka(阿里云消息队列Kafka、自建Kafka)

类型

源实例的数据类型

数值范围

DataHub的数据类型

阿里云消息队列Kafka、自建Kafka的数据类型

整数类型

BIT[(M)]

1 ~ 64

BOOLEAN | STRING

与MySQL、PolarDB MySQL的数据类型保持一致

TINYINT[(M)]

-128 ~ 127

BIGINT

TINYINT[(M)] [UNSIGNED]

0 ~ 255

BIGINT

SMALLINT[(M)]

-32768 ~ 32767

BIGINT

SMALLINT[(M)] [UNSIGNED]

0 ~ 65535

BIGINT

MEDIUMINT[(M)]

-8388608 ~ 8388607

BIGINT

MEDIUMINT[(M)] [UNSIGNED]

0 ~ 16777215

BIGINT

INT[(M)]

-2147483648 ~ 2147483647

BIGINT

INT[(M)] [UNSIGNED]

0 ~ 4294967295

BIGINT

BIGINT[(M)]

-9223372036854775808 ~ 9223372036854775807

BIGINT

BIGINT[(M)] [UNSIGNED]

0 ~ 18446744073709551615

BIGINT

小数类型

DECIMAL[(M[,D])]

M:0~65 ;

D:0~30

DECIMAL

FLOAT(p)

1.175494351E-38 ~ 3.402823466E+38

DOUBLE

DOUBLE[(M,D)]

2.2250738585072014E-308 ~ 1.7976931348623157E+308

DOUBLE

时间类型

DATE

1000-01-01~9999-12-31

说明

格式为YYYY-MM-DD。

TIMESTAMP

DATETIME[(fsp)]

1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999

说明

格式为YYYY-MM-DD hh:mm:ss[.fraction](UTC时间)。

TIMESTAMP

TIMESTAMP[(fsp)]

1970-01-01 00:00:01.000000 ~ 2038-01-19 03:14:07.999999

说明

格式为YYYY-MM-DD hh:mm:ss[.fraction](UTC时间)。

TIMESTAMP

TIME[(fsp)]

-838:59:59.000000 ~ 838:59:59.000000

说明

格式为hh:mm:ss[.fraction](UTC时间)。

STRING

YEAR[(4)]

1901 ~ 2155,或0000.

STRING

字符串类型

CHAR[(M)]

0 ~ 255 字符

STRING

VARCHAR(M)

0 ~ 65,535 字符

STRING

BINARY[(M)]

0 ~ 255 字节

STRING

VARBINARY(M)

0 ~ 65,535 字节

STRING

TINYBLOB

255 (2^8 − 1) 字节

STRING

TINYTEXT

255 (2^8 − 1) 字符

STRING

BLOB

65,535 (2^16 − 1) 字节

STRING

TEXT

65,535 (2^16 − 1) 字符

STRING

MEDIUMBLOB

16,777,215 (2^24 − 1) 字节

STRING

MEDIUMTEXT

16,777,215 (2^24 − 1) 字符

STRING

LONGBLOB

4,294,967,295 or 4GB (2^32 − 1) 字节

STRING

LONGTEXT

4,294,967,295 or 4GB (2^32 − 1) 字符

STRING

ENUM('value1','value2',...)

最多可包含65,535元素

STRING

SET('value1','value2',...)

最多可包含64个元素

STRING

空间类型

GEOMETRY

任意几何类型的值

STRING

POINT

STRING

LINESTRING

STRING

POLYGON

STRING

MULTIPOINT

STRING

MULTILINESTRING

STRING

MULTIPOLYGON

STRING

GEOMETRYCOLLECTION

任何几何类型的值的集合

STRING

JSON类型

JSON

STRING

目标实例为MaxCompute、Elasticsearch、ClickHouse

类型

源实例中的数据类型

数值范围

MaxCompute

Elasticsearch

ClickHouse

整数类型

BIT[(M)]

1 ~ 64

BOOLEAN | STRING

BOOLEAN | LONG

说明

如果只有一个字节,建议在Elasticsearch中使用BOOLEAN。

UInt8

TINYINT[(M)]

-128 ~ 127

BIGINT

SHORT

Int8

TINYINT[(M)] [UNSIGNED]

0 ~ 255

BIGINT

INTEGER

UInt8

SMALLINT[(M)]

-32768 ~ 32767

BIGINT

SHORT

Int16

SMALLINT[(M)] [UNSIGNED]

0 ~ 65535

BIGINT

INTEGER

UInt16

MEDIUMINT[(M)]

-8388608 ~ 8388607

BIGINT

INTEGER

Int32

MEDIUMINT[(M)] [UNSIGNED]

0 ~ 16777215

BIGINT

INTEGER

Int32

INT[(M)]

-2147483648 ~ 2147483647

BIGINT

INTEGER

Int32

INT[(M)] [UNSIGNED]

0 ~ 4294967295

BIGINT

LONG

UInt32

BIGINT[(M)]

-9223372036854775808 ~ 9223372036854775807

BIGINT

LONG

Int64

BIGINT[(M)] [UNSIGNED]

0 ~ 18446744073709551615

BIGINT

LONG

UInt64

小数类型

DECIMAL[(M[,D])]

M:0~65 ;

D:0~30

DOUBLE

DOUBLE

说明

如果DECIMAL的值带有小数点,那么为保障数据一致性,建议在Elasticsearch中使用TEXT。

DECIMAL

FLOAT(p)

1.175494351E-38 ~ 3.402823466E+38

DOUBLE

FLOAT

Float32

DOUBLE[(M,D)]

2.2250738585072014E-308 ~ 1.7976931348623157E+308

DOUBLE

DOUBLE

Float64

时间类型

DATE

1000-01-01~9999-12-31

说明

格式为YYYY-MM-DD。

DATETIME

DATE

说明

格式为YYYY-MM-DD,详情请参见date format的mapping定义

DATE32

DATETIME[(fsp)]

1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999

说明

格式为YYYY-MM-DD hh:mm:ss[.fraction](UTC时间)。

DATETIME

DATE

说明

DATE格式为yyyy-MM-dd’T’HH:mm:ss(UTC时间)。如果精度为微秒,那么格式为yyyy-MM-dd’T’HH:mm:ss.S,详情请参见date format的mapping定义

DATETIME64

TIMESTAMP[(fsp)]

1970-01-01 00:00:01.000000 ~ 2038-01-19 03:14:07.999999

说明

格式为YYYY-MM-DD hh:mm:ss[.fraction](UTC时间)。

DATETIME

DATE

说明

DATE格式为yyyy-MM-dd’T’HH:mm:ss(UTC时间)。如果精度为微秒,那么格式为yyyy-MM-dd’T’HH:mm:ss.S,详情请参见date format的mapping定义

DATETIME

说明

不包含时区信息。

TIME[(fsp)]

-838:59:59.000000 ~ 838:59:59.000000

说明

格式为hh:mm:ss[.fraction](UTC时间)。

STRING

DATE

说明

格式为YYYY-MM-DD,详情请参见date format的mapping定义

STRING

YEAR[(4)]

1901 ~ 2155,或0000.

STRING

DATE

说明

DATE格式为yyyy,详情请参见date format的mapping定义

Int16

字符串类型

CHAR[(M)]

0 ~ 255 字符

STRING

TEXT

STRING

VARCHAR(M)

0 ~ 65,535 字符

STRING

TEXT

STRING

BINARY[(M)]

0 ~ 255 字节

STRING

BINARY

STRING

VARBINARY(M)

0 ~ 65,535 字节

STRING

BINARY

STRING

TINYBLOB

255 (2^8 − 1) 字节

STRING

BINARY

STRING

TINYTEXT

255 (2^8 − 1) 字符

STRING

TEXT

STRING

BLOB

65,535 (2^16 − 1) 字节

STRING

BINARY

STRING

TEXT

65,535 (2^16 − 1) 字符

STRING

TEXT

STRING

MEDIUMBLOB

16,777,215 (2^24 − 1) 字节

STRING

BINARY

STRING

MEDIUMTEXT

16,777,215 (2^24 − 1) 字符

STRING

TEXT

STRING

LONGBLOB

4,294,967,295 or 4GB (2^32 − 1) 字节

STRING

BINARY

STRING

LONGTEXT

4,294,967,295 or 4GB (2^32 − 1) 字符

STRING

TEXT

STRING

ENUM('value1','value2',...)

最多可包含65,535枚举值

STRING

KEYWORD

ENUM

SET('value1','value2',...)

最多可包含64个元素

STRING

KEYWORD

STRING

空间类型

GEOMETRY

任意几何类型的值

STRING

GEO_SHAPE

STRING

POINT

STRING

GEO_POINT

STRING

LINESTRING

STRING

GEO_SHAPE

STRING

POLYGON

STRING

GEO_SHAPE

STRING

MULTIPOINT

STRING

GEO_SHAPE

说明

如果只有一个字节,建议在Elasticsearch中使用BOOLEAN。

STRING

MULTILINESTRING

STRING

GEO_SHAPE

STRING

MULTIPOLYGON

STRING

GEO_SHAPE

STRING

GEOMETRYCOLLECTION

任何几何类型的值的集合

STRING

GEO_SHAPE

STRING

JSON类型

JSON

STRING

OBJECT

说明

如果只有一个字节,建议在Elasticsearch中使用BOOLEAN。

STRING

目标实例为Tablestore

源实例中的数据类型

Tablestore对应的数据类型

INTEGER

INTEGER

INT

INTEGER

SMALLINT

INTEGER

TINYINT

INTEGER

MEDIUMINT

INTEGER

BIGINT

INTEGER

DECIMAL

DOUBLE

NUMERIC

DOUBLE

FLOAT

DOUBLE

DOUBLE

DOUBLE

BIT

BOOLEAN

DATE

STRING或INTEGER

说明

默认为STRING。

TIMESTAMP

DATETIME

TIME

YEAR

CHAR

STRING

VARCHAR

STRING

BINARY

BINARY

VARBINARY

BINARY

TINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB

BINARY

TINYTEXT/TEXT/MEDIUMTEXT/LONGTEXT

STRING

ENUM

STRING

SET

STRING

GEOMETRY

STRING

POINT

STRING

LINESTRING

STRING

POLYGON

STRING

MULTIPOINT

STRING

MULTILINESTRING

STRING

MULTIPOLYGON

STRING

GEOMETRYCOLLECTION

STRING

JSON

STRING

目标实例为Lindorm

源实例中的数据类型

Lindorm对应的数据类型

BOOLEAN

BOOLEAN

BIT

BOOLEAN

TINYINT

TINYINT

SMALLINT

SMALLINT

INTEGER

INTEGER

BIGINT

BIGINT

FLOAT

FLOAT

DOUBLE

DOUBLE

DECIMAL

DECIMAL

CHAR/VARCHAR/TEXT/TINYTEXT/MEDIUMTEXT/LONGTEXT

CHAR/VARCHAR

BINARY

BINARY

BLOB

VARBINARY

VARBINAY

VARBINARY

TIMESTAMP

TIMESTAMP

YEAR

INTEGER

DATE

VARCHAR

DATETIME

VARCHAR

重要
  • 建议在目标端将其映射为VARCHAR类型。

  • 若您需要将其映射为TIMESTAMP类型,可能会因为时区问题而导致数据不一致。建议您在配置任务过程中,使用ETL功能来确保数据的一致性。

TIME

VARCHAR

JSON

JSON

以Oracle为源的数据同步

当源实例为自建Oracle,且目标实例为异构数据库时(包括云原生数据仓库AnalyticDB PostgreSQL版),两者间的数据类型映射关系如下:

说明

如源实例中待同步数据范围超出DTS所支持的范围,则会导致目标实例中的所写入数据的精度降低。

类型

Oracle的数据类型

数值范围

云原生数据仓库AnalyticDB PostgreSQL版的数据类型

数字类型

NUMBER(p,s)

1 ~ 22 字节。

p代表精度位,取值范围是1 ~ 38。

s代表小数位,取值范围是-84 ~ 127。

DECIMAL | TINYINT | SMALLINT | INTEGER | BIGINT

FLOAT(p)

1 ~ 22 字节。

p代表指针变量,取值范围是1 ~ 126 bit。

DOUBLE PRECISION

BINARY_FLOAT

32-bit的浮点数,即4字节。

DOUBLE PRECISION

BINARY_DOUBLE

64-bit的浮点数,即8字节。

DOUBLE PRECISION

日期类型

DATE

TIMESTAMP(0)

TIMESTAMP [(fractional_seconds_precision)]

TIMESTAMP

TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE

TIMESTAMP WITH TIME ZONE

TIMESTAMP [(fractional_seconds_precision)] WITH LOCAL TIME ZONE

TIMESTAMP WITH TIME ZONE

INTERVAL YEAR [(year_precision)] TO MONTH

VARCHAR(32)

INTERVAL DAY [(day_precision)] TO SECOND [(fractional_seconds_precision)]

VARCHAR(32)

字符串类型

CHAR [(size [BYTE | CHAR])]

2000 字节。

CHAR

NCHAR[(size)]

2000 字节。

VARCHAR

VARCHAR2(size [BYTE | CHAR])

当MAX_STRING_SIZE = EXTENDED时,最大长度为32767字节;

当MAX_STRING_SIZE = STANDARD,最大长度为4000字节。

VARCHAR

NVARCHAR2(size)

当MAX_STRING_SIZE = EXTENDED时,最大长度为32767字节;

当MAX_STRING_SIZE = STANDARD,最大长度为4000字节。

VARCHAR

LONG

最大长度2G(2^31-1)。

TEXT

RAW(size)

最大长度32767 字节或2000字节。

BYTEA

LONG RAW

最大长度2G。

BYTEA

CLOB

最大长度(4 GB -1)*DB_BLOCK_SIZE。

TEXT

NCLOB

最大长度(4 GB - 1)*DB_BLOCK_SIZE。

TEXT

BLOB

最大长度(4 GB - 1)*DB_BLOCK_SIZE。

BYTEA

BFILE

4G。

不支持

JSON类型

JSON

最大长度32MB。

JSON

ROWID类型

ROWID

64字符。

OID

空间类型

需要自定义

不支持

说明

对于云原生数据仓库AnalyticDB PostgreSQL版不支持字段类型,DTS会将其直接转为BYTEA,如果转换不了则将数据内容置为NULL。

以PostgreSQL为源的数据同步

当源实例为PostgreSQL(包括自建PostgreSQL、RDS PostgreSQL),且目标实例为异构数据库时(包括云原生数据仓库AnalyticDB PostgreSQL版),两者间的数据类型映射关系如下:

说明

如源实例中待同步数据范围超出DTS所支持的范围,则会导致目标实例中的所写入数据的精度降低。

类型

PostgreSQL的数据类型

数值范围

云原生数据仓库AnalyticDB PostgreSQL版的数据类型

整数类型

SMALLINT

-32768至+32767

SMALLINT

INTEGER

-2147483648至 +2147483647

INTEGER

BIGINT

-9223372036854775808至+9223372036854775807

BIGINT

小数类型

DECIMAL

最高小数点前131072位,以及小数点后16383位

DECIMAL

NUMERIC

最高小数点前131072位,以及小数点后16383位

NUMERIC

REAL

6位十进制精度

REAL

DOUBLE PRECISION

15位十进制精度

DOUBLE PRECISION

货币类型

MONEY

-92233720368547758.08至+92233720368547758.07

MONEY

字符串类型

CHARACTER VARYING(n)

CHARACTER VARYING(n)

CHARACTER(n)

CHARACTER(n)

TEXT

TEXT

CHAR

默认为1字节

CHAR

NAME

最大长度为64字节

NAME

文本搜索类型

TSQUERY

表示一个文本查询

TEXT

TSVECTOR

表示一个为文本搜索优化的形式下的文档

TEXT

二进制数据类型

BYTEA

1或4字节外加真正的二进制串

BYTEA

日期类型

TIMESTAMP [ (p) ] [ WITHOUT TIME ZONE ]

表示日期和时间(无时区),占用8字节

TIMESTAMP [ (p) ] [ WITHOUT TIME ZONE ]

TIMESTAMP [ (p) ] WITH TIME ZONE

表示日期和时间(有时区),占用8字节

TIMESTAMP [ (p) ] WITH TIME ZONE

DATE

表示日期,占用4字节

DATE

TIME [ (p) ] [ WITHOUT TIME ZONE ]

表示时间(无时区),占用8字节

TIME [ (p) ] [ WITHOUT TIME ZONE ]

TIME [ (p) ] WITH TIME ZONE

表示时间(有时区),占用12字节

TIME [ (p) ] WITH TIME ZONE

interval [ fields ] [ (p) ]

表示时间间隔,占用16字节

interval [ fields ] [ (p) ]

布尔类型

BOOLEAN

1字节

BOOLEAN

枚举类型

自定义枚举

VARCHAR(128)

空间类型

POINT

平面上的点,,最大长度为16字节

POINT

LINE

无限长的线,最大长度为32字节

LINE

LSEG

有限线段,最大长度为32字节

LSEG

BOX

矩形框,最大长度为32字节

BOX

PATH

路径,最大长度为16+16n字节

PATH

POLYGON

多边形(类似于封闭路径) ,最大长度为40+16n字节

POLYGON

CIRCLE

圆,最大长度为24字节

CIRCLE

网络地址类型

CIDR

IPv4和IPv6网络,最大长度为7或19字节

CIDR

INET

IPv4和IPv6主机以及网络,最大长度为7或19字节

INET

MACADDR

MAC地址,最大长度为6字节

MACADDR

MACADDR8

MAC地址(EUI-64格式),最大长度为8 字节

MACADDR8

位串类型

Bit (n)

Bit (n)

BIT VARYING (n)

BIT VARYING (n)

UUID类型

UUID

VARCHAR(64)

XML类型

XML

XML

JSON类型

JSON

JSON

JSONB

JSONB

以SQL Server为源的数据同步

当源实例为SQL Server(包括自建SQL Server、RDS SQL Server),且目标实例为异构数据库时(包括云原生数据仓库 AnalyticDB MySQL 版 3.0 、云原生数据仓库AnalyticDB PostgreSQL版、PostgreSQL、MySQL),两者间的数据类型映射关系如下:

说明

如源实例中待同步数据范围超出DTS所支持的范围,则会导致目标实例中的所写入数据的精度降低。

类型

SQL Server的数据类型

数值范围

云原生数据仓库 AnalyticDB MySQL版 3.0的数据类型

云原生数据仓库AnalyticDB PostgreSQL版的数据类型

PostgreSQL的数据类型

MySQL的数据类型

整数类型

BIT

可以取值为1、0或NULL的INTEGER数据类型

BOOLEAN

BIT(1)

BIT

TINYINT

0至255

TINYINT

SMALLINT

TINYINT

SMALLINT

-2^15(-32768)至2^15-1(32767)

SMALLINT

SMALLINT

SMALLINT

INT

-2^31(-2147483648)至2^31-1(2147483647)

INTEGER

INTEGER

INT

BIGINT

-2^63(-9223372036854775808)至2^63-1(9223372036854775807)

BIGINT

BIGINT

BIGINT

小数类型

NUMERIC[ (p[ ,s] )]

-10^38+1至10^38-1; 1<=p<=38

DECIMAL

DECIMAL

DECIMAL[ (p[ ,s] )]

DECIMAL[ (p[ ,s] )]

-10^38+1至10^38-1; 1<= p<=38

DECIMAL

DECIMAL

DECIMAL[ (p[ ,s] )]

FLOAT

-1.79E+308至-2.23E -308、0 以及2.23E-308至1.79E+308

DOUBLE

DOUBLE PRECISION

DOUBLE

REAL

-3.40E+38至-1.18E- 38、0 以及1.18E-38至3.40E +38

FLOAT

REAL

DOUBLE

货币类型

MONEY

-922,337,203,685,477.5808至922,337,203,685,477.5807

DECIMAL(19, 4)

DECIMAL(19, 4)

DECIMAL

SMALLMONEY

-214,748.3648至214,748.3647

DECIMAL(10, 4)

DECIMAL(10, 4)

DECIMAL

日期类型

DATE

0001-01-01至9999-12-31

DATE

DATE

DATE

DATETIME

日期范围为1753年1月1日至9999年12月31日;

时间范围为00:00:00至 23:59:59.997

DATETIME

TIMESTAMP(3) WITHOUT TIME ZONE

DATETIME

DATETIME2[ (fractional seconds precision) ]

日期范围为公元1年1月1日至公元9999年12月31日;

时间范围为00:00:00至23:59:59.9999999

DATETIME

TIMESTAMP(7) WITHOUT TIME ZONE

DATETIME

DATETIMEOFFSET [ (fractional seconds precision) ]

日期范围公元1年1月1日至公元9999年12月31日;

时间范围为00:00:00至 23:59:59.9999999;

时区偏移量范围-14:00至+14:00

TIMESTAMP

TIMESTAMP(7) WITH TIME ZONE

DATETIME

SMALLDATETIME

秒始终为零 (:00),并且不带秒小数部分

DATETIME

TIMESTAMP WITHOUT TIME ZONE

DATETIME

TIME [ (fractional second scale) ]

00:00:00.0000000至23:59:59.9999999

TIME

TIME(7) WITH TIME ZONE

TIME

字符串类型

BINARY [ ( n ) ]

n取值范围为1~8,000

VARBINARY

BYTEA

BINARY

VARBINARY [ ( n | max) ]

n取值范围为1~8,000;max代表最大存储大小是2^31-1 个字节

VARBINARY

BYTEA

VARBINARY

CHAR [ ( n ) ]

n取值范围为1~8,000,存储大小为n个字节

VARCHAR

CHARACTER

  • 当length > 65535时:TEXT

  • 当65535 ≥ length > 255时:VARCHAR

  • 其他:CHAR

VARCHAR [ ( n | max ) ]

n取值范围为1~8,000;max代表最大存储大小是 2^31-1 个字节(2GB)

VARCHAR

CHARACTER

  • 当length > 65535时:TEXT

  • 其他:VARCHAR

NCHAR [ ( n ) ]

以双字节为单位,n 取值范围为1至4,000,存储大小为 n字节的两倍

VARCHAR

CHARACTER VARYING

VARCHAR(200)

NVARCHAR [ ( n | max ) ]

以双字节为单位,n取值范围为1至4,000,max代表最大存储大小是2^30-1个字(2 GB)

VARCHAR

CHARACTER VARYING

  • 当length > 65535时:TEXT

  • 其他:VARCHAR

NTEXT

长度可变的Unicode 数据,字符串最大长度为2^30-1(1073741823)个字节

VARCHAR

TEXT

TEXT

TEXT

字符串最大长度为2^31-1(2147483647)个字节

VARCHAR

TEXT

TEXT

IMAGE

长度可变的二进制数据,从0到2^31-1(2147483647)个字节。

VARBINARY

BYTEA

BLOB

空间和几何类型

GEOGRAPHY

VARCHAR

不支持

BLOB

GEOMETRY

VARCHAR

不支持

BLOB

XML类型

XML ( [ CONTENT | DOCUMENT ] xml_schema_collection )

VARCHAR

XML

TEXT

其他类型

UNIQUEIDENTIFIER

VARCHAR

CHARACTER(36)

VARCHAR(200)

SQL_VARIANT

不支持

不支持

VARCHAR(200)

HIERARCHYID

不支持

不支持

VARCHAR(200)

SYSNAME

VARCHAR

CHARACTER VARYING(128)

VARCHAR(200)

以Db2 for LUW为源的数据同步

当源实例为Db2 for LUW,且目标实例为异构数据库时(包括MySQL),两者间的数据类型映射关系如下:

说明

如源实例中待同步数据范围超出DTS所支持的范围,则会导致目标实例中的所写入数据的精度降低。

类型

Db2 for LUW数据类型

数值范围

MySQL的数据类型

整数类型

SMALLINT

-32,768~+32,767

SMALLINT

INTEGER

-2,147,483,648~+2,147,483,647

INT

BIGINT

-9,223,372,036,854,775,808~ +9,223,372,036,854,775,807

BIGINT

小数类型

DECIMAL(precision-integer, scale-integer)

p<=38

DECIMAL

FLOAT(integer)

取值范围为1~53,取值在1~24表示为单精度,取值在25~53表示为双精度

FLOAT

DECFLOAT(precision-integer)

DECIMAL(65,10)

日期类型

DATE

0001-01-01~9999-12-31

DATE

TIME

00:00:00~24:00:00

TIME

TIMESTAMP(integer)

0001-01-01-00.00.00.000000000000~9999-12-31-24.00.00.000000000000;0<=p<= 12

DATETIME

字符串类型

CHARACTER(integer)

254

CHAR | VARCHAR

VARCHAR(integer)

32,672

VARCHAR

CHARACTER(integer) FOR BIT DATA

254

BLOB

CLOB

2,147,483,647

LONGTEXT

GRAPHIC(integer)

127

CHAR(length*4)

VARGRAPHIC(integer)

16,336

CHAR(length*4)

DBCLOB(integer)

1,073,741,823

VARCHAR | LONGTEXT

BLOB

2,147,483,647

LONGBLOB

其他类型

XML

2,147,483,647

VARCHAR | LONGTEXT

以Db2 for i为源的数据同步

当源实例为Db2 for i,且目标实例为异构数据库时(包括MySQL),两者间的数据类型映射关系如下:

说明

如源实例中待同步数据范围超出DTS所支持的范围,则会导致目标实例中的所写入数据的精度降低。

类型

Db2 for i数据类型

数值范围

MySQL中的数据类型

整数类型

SMALLINT

-32,768~+32,767

SMALLINT

INTEGER

-2,147,483,648~+2,147,483,647

INT

BIGINT

-9,223,372,036,854,775,808~ +9,223,372,036,854,775,807

BIGINT

小数类型

DECIMAL(precision-integer, scale-integer)

p<=63

DECIMAL

NUMERIC

DECIMAL

FLOAT(integer)

FLOAT

DECFLOAT(precision-integer)

DECIMAL(65,10)

日期类型

DATE

0001-01-0~9999-12-31

DATE

TIME

00:00:00~24:00:00

TIME

TIMESTAMP(integer)

0001-01-01-00.00.00.000000000000~9999-12-31-24.00.00.000000000000;0 <=p <=12

DATETIME

字符串类型

CHAR(integer)

32,765

CHAR | VARCHAR

VARCHAR(integer)

32,739

VARCHAR

CHAR(integer) FOR BIT DATA

BLOB

CLOB

2,147,483,647

LONGTEXT

GRAPHIC(integer)

16,382

CHAR

VARGRAPHIC(integer)

16,369

VARCHAR

DBCLOB(integer)

1,073,741,823

LONGTEXT

BINARY

32,765

BINARY

VARBIN

32,739

VARBINARY

BLOB

2,147,483,647

LONGBLOB

其他类型

DATALINK

VARCHAR | LONGTEXT

ROWID

40

VARCHAR | LONGTEXT

XML

2,147,483,647

VARCHAR | LONGTEXT

以TiDB为源的数据同步

当源实例为自建TiDB,且目标实例为异构数据库时(如AnalyticDB MySQL 3.0),两者间的数据类型映射关系如下:

TiDB数据类型

MySQL的数据类型

BIGINT

BIGINT

BIGINT UNSIGNED

DECIMAL(20,0)

BINARY

BINARY

BIT

BIT

BOOL\ BOOLEAN

TINYINT

CHAR

CHAR

DATE

DATE

DATETIME

DATETIME

DECIMAL

DECIMAL

DOUBLE

DOUBLE

ENUM

ENUM

FLOAT

FLOAT

INT

INT

INT UNSIGNED

BIGINT

INTEGER

INTEGER

JSON

JSON

MEDIUMBLOB/LONGBLOB

TINYBLOB/BLOB/

MEDIUMBLOB/LONGBLOB

TINYBLOB/BLOB/

MEDIUMINT

MEDIUMINT

SET

SET

SMALLINT

SMALLINT

SMALLINT UNSIGNED

INT

TEXT/LONGTEXT

TEXT/LONGTEXT

TIME

TIME

TIMESTAMP

TIMESTAMP

TINYINT

TINYINT

TINYINT UNSIGNED

SMALLINT

VARBINARY

VARBINARY

VARCHAR

VARCHAR

YEAR

YEAR