不同类型的数据库(异构数据库)支持的数据类型不一样,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 重要
|
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 |
| ||
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 | 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 |