不同类型的数据库(异构数据库)支持的数据类型不一样,DTS在进行异构数据库之间的数据同步时,会在结构初始化阶段进行数据类型映射,即将源库中的数据类型转为目标库支持的数据类型。本文为您列出详细数据类型映射关系,便于您查阅和评估数据同步对业务的影响。
概览
根据如下同步方案,查看异构数据库间的数据类型映射关系:
以MySQL数据库为源的数据同步
当源数据库类型为MySQL(如RDS MySQL、自建MySQL、PolarDB MySQL)、且目标实例为异构数据库时(包括云原生数据仓库 AnalyticDB MySQL 版、云原生数据仓库AnalyticDB PostgreSQL版),两者间的数据类型映射关系如下:
如源实例中待同步数据范围超出DTS所支持的范围,则会导致目标实例中的所写入数据的精度降低。
目标实例为云原生数据仓库 AnalyticDB MySQL 版、云原生数据仓库AnalyticDB PostgreSQL版
在同步到云原生数据仓库 AnalyticDB MySQL 版时请注意:
-
源端带有
AUTO_INCREMENT属性的INT字段,DTS在同步至目标端时会转换为BIGINT类型。 -
若在进行
JOIN操作的表中同时存在INT和BIGINT字段,为避免性能影响,建议在目标端统一使用INT或BIGINT。
|
类型 |
源实例的数据类型 |
数值范围 |
云原生数据仓库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 说明
ClickHouse中DATE类型的取值范围小于MySQL中的DATE类型,若ClickHouse也使用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 |
DATE 说明
DATE格式为yyyy-MM-dd'T'HH:mm:ss(UTC时间)。如果精度为微秒,那么格式为yyyy-MM-dd'T'HH:mm:ss.S,详情请参见date format的mapping定义。 |
DATETIME64 说明
ClickHouse中DATETIME类型的取值范围小于MySQL中的DATETIME类型,若ClickHouse也使用DATETIME类型,则可能会导致数据写入失败。 |
|
|
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 |
KEYWORD |
STRING |
|
VARCHAR(M) |
0 ~ 65,535 字符 |
STRING |
|
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 |
|
BIGINT UNSIGNED 重要
仅支持在BIGINT取值范围内(-9223372036854775808 ~ 9223372036854775807)的数据。 |
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 |
请根据目标Lindorm实例的版本进行选择。
|
|
DATETIME |
VARCHAR 重要
|
|
TIME |
请根据目标Lindorm实例的版本进行选择。
|
|
JSON |
JSON |
目标实例为Oracle
|
类型 |
源实例的数据类型 |
数值范围 |
Oracle的数据类型 |
|
整数类型 |
BIT[(M)] |
1 ~ 64 |
NUMBER(2,0) |
|
TINYINT[(M)] |
-128 ~ 127 |
NUMBER(3,0) |
|
|
TINYINT[(M)] [UNSIGNED] |
0 ~ 255 |
NUMBER(3,0) |
|
|
SMALLINT[(M)] |
-32768 ~ 32767 |
NUMBER(5,0) |
|
|
SMALLINT[(M)] [UNSIGNED] |
0 ~ 65535 |
NUMBER(5,0) |
|
|
MEDIUMINT[(M)] |
-8388608 ~ 8388607 |
NUMBER(7,0) |
|
|
MEDIUMINT[(M)] [UNSIGNED] |
0 ~ 16777215 |
NUMBER(7,0) |
|
|
INT[(M)] |
-2147483648 ~ 2147483647 |
INT |
|
|
INT[(M)] [UNSIGNED] |
0 ~ 4294967295 |
NUMBER(10,0) |
|
|
BIGINT[(M)] |
-9223372036854775808 ~ 9223372036854775807 |
NUMBER(20,0) |
|
|
BIGINT[(M)] [UNSIGNED] |
0 ~ 18446744073709551615 |
NUMBER(20,0) |
|
|
小数类型 |
DECIMAL[(M[,D])] |
M:0~65 ; D:0~30 |
NUMBER(M,D) 说明
如果精度和小数精度缺失,转换为NUMBER。 |
|
FLOAT(p) |
1.175494351E-38 ~ 3.402823466E+38 |
FLOAT |
|
|
DOUBLE[(M,D)] |
2.2250738585072014E-308 ~ 1.7976931348623157E+308 |
DOUBLE |
|
|
时间类型 |
DATE |
1000-01-01 ~ 9999-12-31 说明
格式为YYYY-MM-DD。 |
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时间)。 |
TIMESTAMP[(fsp)] 说明
如果精度缺失,转换为TIMESTAMP(0)。 |
|
|
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[(fsp)] WITH LOCAL TIME ZONE 说明
如果精度缺失,转换为TIMESTAMP[(0)] WITH LOCAL TIME ZONE。 |
|
|
TIME[(fsp)] |
-838:59:59.000000 ~ 838:59:59.000000 说明
格式为hh:mm:ss[.fraction](UTC时间)。 |
不支持 |
|
|
YEAR[(4)] |
1901 ~ 2155,或0000 |
INT |
|
|
字符串类型 |
CHAR[(M)] |
0 ~ 255 字符 |
CHAR[(M)] 说明
如果长度缺失,转换为CHAR(1)。 |
|
VARCHAR(M) |
0 ~ 65,535 字符 |
VARCHAR(M) |
|
|
BINARY[(M)] |
0 ~ 255 字节 |
RAW(M) 说明
如果长度缺失,转换为RAW(1)。 |
|
|
VARBINARY(M) |
0 ~ 65,535 字节 |
RAW(M) |
|
|
TINYBLOB |
255 (2^8 - 1) 字节 |
BLOB |
|
|
TINYTEXT |
255 (2^8 - 1) 字符 |
CLOB |
|
|
BLOB |
65,535 (2^16 - 1) 字节 |
BLOB |
|
|
TEXT |
65,535 (2^16 - 1) 字符 |
CLOB |
|
|
MEDIUMBLOB |
16,777,215 (2^24 - 1) 字节 |
BLOB |
|
|
MEDIUMTEXT |
16,777,215 (2^24 - 1) 字符 |
CLOB |
|
|
LONGBLOB |
4,294,967,295 or 4GB (2^32 - 1) 字节 |
BLOB |
|
|
LONGTEXT |
4,294,967,295 or 4GB (2^32 - 1) 字符 |
CLOB |
|
|
ENUM('value1','value2',...) |
最多可包含65,535枚举值 |
不支持 |
|
|
SET('value1','value2',...) |
最多可包含64个元素 |
不支持 |
|
|
空间类型 |
GEOMETRY |
任意几何类型的值 |
不支持 |
|
POINT |
无 |
不支持 |
|
|
LINESTRING |
无 |
不支持 |
|
|
POLYGON |
无 |
不支持 |
|
|
MULTIPOINT |
无 |
不支持 |
|
|
MULTILINESTRING |
无 |
不支持 |
|
|
MULTIPOLYGON |
无 |
不支持 |
|
|
GEOMETRYCOLLECTION |
任何几何类型的值的集合 |
不支持 |
|
|
JSON类型 |
JSON |
无 |
CLOB |
以Oracle为源的数据同步
当源实例为自建Oracle,且目标实例为异构数据库时(包括云原生数据仓库AnalyticDB PostgreSQL版),两者间的数据类型映射关系如下:
如源实例中待同步数据范围超出DTS所支持的范围,则会导致目标实例中的所写入数据的精度降低。
|
类型 |
Oracle的数据类型 |
数值范围 |
MySQL、PolarDB MySQL、PolarDB-X的数据类型 |
云原生数据仓库AnalyticDB PostgreSQL版的数据类型 |
|
数字类型 |
NUMBER(p,s) |
1 ~ 22 字节。 p代表精度位,取值范围是1 ~ 38。 s代表小数位,取值范围是-84 ~ 127。 |
DECIMAL[(p[,s])] 说明
若精度位和小数位均不存在,则映射为DECIMAL(65,30)。 |
DECIMAL | TINYINT | SMALLINT | INTEGER | BIGINT |
|
FLOAT(p) |
1 ~ 22 字节。 p代表指针变量,取值范围是1 ~ 126 bit。 |
DOUBLE |
DOUBLE PRECISION |
|
|
BINARY_FLOAT |
32-bit的浮点数,即4字节。 |
FLOAT |
DOUBLE PRECISION |
|
|
BINARY_DOUBLE |
64-bit的浮点数,即8字节。 |
DOUBLE |
DOUBLE PRECISION |
|
|
日期类型 |
DATE |
无 |
DATETIME |
TIMESTAMP(0) |
|
TIMESTAMP [(fractional_seconds_precision)] |
无 |
DATETIME[(fractional_seconds_precision)] |
TIMESTAMP |
|
|
TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE |
无 |
DATETIME[(fractional_seconds_precision)] |
TIMESTAMP WITH TIME ZONE |
|
|
TIMESTAMP [(fractional_seconds_precision)] WITH LOCAL TIME ZONE |
无 |
DATETIME[(fractional_seconds_precision)] |
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[(n)] 说明
若长度不存在,则映射为CHAR(1)。 |
CHAR |
|
NCHAR[(size)] |
2000 字节。 |
NATIONAL CHAR[(n)] 说明
若长度不存在,则映射为NATIONAL CHAR(1)。 |
VARCHAR |
|
|
VARCHAR(size [BYTE | CHAR]) |
当MAX_STRING_SIZE = EXTENDED时,最大长度为32767字节; 当MAX_STRING_SIZE = STANDARD,最大长度为4000字节。 |
VARCHAR(n) |
VARCHAR(n) |
|
|
VARCHAR2(size [BYTE | CHAR]) |
当MAX_STRING_SIZE = EXTENDED时,最大长度为32767字节; 当MAX_STRING_SIZE = STANDARD,最大长度为4000字节。 |
VARCHAR(n) |
VARCHAR |
|
|
NVARCHAR2(size) |
当MAX_STRING_SIZE = EXTENDED时,最大长度为32767字节; 当MAX_STRING_SIZE = STANDARD,最大长度为4000字节。 |
NATIONALVARCHAR[(n)] |
VARCHAR |
|
|
LONG |
最大长度2G(2^31-1)。 |
LONGTEXT |
TEXT |
|
|
RAW(size) |
最大长度32767 字节或2000字节。 |
BINARY(2*size) |
BYTEA |
|
|
LONG RAW |
最大长度2G。 |
LONGBLOB |
BYTEA |
|
|
CLOB |
最大长度(4 GB -1)*DB_BLOCK_SIZE。 |
LONGTEXT |
TEXT |
|
|
NCLOB |
最大长度(4 GB - 1)*DB_BLOCK_SIZE。 |
LONGTEXT |
TEXT |
|
|
BLOB |
最大长度(4 GB - 1)*DB_BLOCK_SIZE。 |
LONGBLOB |
BYTEA |
|
|
BFILE |
4G。 |
不支持 |
不支持 |
|
|
JSON类型 |
JSON |
最大长度32MB。 |
不支持 |
JSON |
|
ROWID类型 |
ROWID |
64字符。 |
不支持 |
OID |
|
UROWID |
64字符。 |
不支持 |
不支持 |
|
|
空间类型 |
需要自定义 |
不支持 |
||
对于云原生数据仓库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 重要
目标实例为Clickhouse时,会改成String类型 |
|
枚举类型 |
自定义枚举 |
无 |
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、PolarDB MySQL版集群),两者间的数据类型映射关系如下:
如源实例中待同步数据范围超出DTS所支持的范围,则会导致目标实例中的所写入数据的精度降低。
|
类型 |
SQL Server的数据类型 |
数值范围 |
云原生数据仓库 AnalyticDB MySQL版 3.0的数据类型 |
PostgreSQL、云原生数据仓库AnalyticDB PostgreSQL版的数据类型 |
MySQL、PolarDB MySQL的数据类型 |
|
整数类型 |
BIT |
可以取值为1、0或NULL的INTEGER数据类型 |
BOOLEAN |
BIT(1) |
BIT(1) |
|
TINYINT |
0至255 |
TINYINT |
SMALLINT |
TINYINT UNSIGNED |
|
|
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(19, 4) |
|
SMALLMONEY |
-214,748.3648至214,748.3647 |
DECIMAL(10, 4) |
DECIMAL(10, 4) |
DECIMAL(10, 4) |
|
|
日期类型 |
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(3) |
|
|
DATETIME2[ (fractional seconds precision) ] |
日期范围为公元1年1月1日至公元9999年12月31日; 时间范围为00:00:00至23:59:59.9999999 |
DATETIME |
TIMESTAMP(7) WITHOUT TIME ZONE |
DATETIME(p) 说明
默认精度为6。 |
|
|
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(p) 说明
默认精度为6。 |
|
|
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(p) |
|
|
TIMESTAMP[(fsp)] |
1970-01-01 00:00:01.000000 ~ 2038-01-19 03:14:07.999999 说明
格式为YYYY-MM-DD hh:mm:ss[.fraction](UTC时间)。 |
VARBINARY(8) |
BYTEA |
VARBINARY(8) |
|
|
字符串类型 |
BINARY [ ( n ) ] |
n取值范围为1~8,000 |
VARBINARY |
BYTEA |
|
|
VARBINARY [ ( n | max) ] |
n取值范围为1~8,000;max代表最大存储大小是2^31-1 个字节 |
VARBINARY |
BYTEA |
|
|
|
CHAR [ ( n ) ] |
n取值范围为1~8,000,存储大小为n个字节 |
VARCHAR |
CHARACTER |
|
|
|
VARCHAR [ ( n | max ) ] |
n取值范围为1~8,000;max代表最大存储大小是 2^31-1 个字节(2GB) |
VARCHAR |
CHARACTER |
|
|
|
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 |
|
|
|
NTEXT |
长度可变的Unicode 数据,字符串最大长度为2^30-1(1073741823)个字节 |
VARCHAR |
TEXT |
LONGTEXT |
|
|
TEXT |
字符串最大长度为2^31-1(2147483647)个字节 |
VARCHAR |
TEXT |
LONGTEXT |
|
|
IMAGE |
长度可变的二进制数据,从0到2^31-1(2147483647)个字节。 |
VARBINARY |
BYTEA |
LONGBLOB |
|
|
空间和几何类型 |
GEOGRAPHY |
无 |
VARCHAR |
不支持 |
BLOB |
|
GEOMETRY |
无 |
VARCHAR |
不支持 |
BLOB |
|
|
XML类型 |
XML ( [ CONTENT | DOCUMENT ] xml_schema_collection ) |
无 |
VARCHAR |
XML |
LONGTEXT |
|
其他类型 |
UNIQUEIDENTIFIER |
无 |
VARCHAR |
CHARACTER(36) |
CHAR(36) |
|
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 |