不同類型的資料庫(異構資料庫)支援的資料類型不一樣,DTS在進行異構資料庫之間的資料同步時,會在結構初始化階段進行資料類型映射,即將源庫中的資料類型轉為目標庫支援的資料類型。本文為您列出詳細資料類型映射關係,便於您查閱和評估資料同步對業務的影響。
概覽
根據如下同步方案,查看異構資料庫間的資料類型映射關係:
以MySQL資料庫為源的資料同步
當來源資料庫類型為MySQL(如RDS MySQL、自建MySQL、PolarDB MySQL)、且目標執行個體為異構資料庫時(包括AnalyticDB for MySQL、雲原生資料倉儲AnalyticDB PostgreSQL版),兩者間的資料類型映射關係如下:
如源執行個體中待同步資料範圍超出DTS所支援的範圍,則會導致目標執行個體中的所寫入資料的精度降低。
目標執行個體為AnalyticDB for MySQL、雲原生資料倉儲AnalyticDB PostgreSQL版
在同步到AnalyticDB for MySQL時請注意:
-
源端帶有
AUTO_INCREMENT屬性的INT欄位,DTS在同步至目標端時會轉換為BIGINT類型。 -
若在進行
JOIN操作的表中同時存在INT和BIGINT欄位,為避免效能影響,建議在目標端統一使用INT或BIGINT。
|
類型 |
源執行個體的資料類型 |
數值範圍 |
AnalyticDB for MySQL的資料類型 |
雲原生資料倉儲AnalyticDB PostgreSQL版的資料類型 |
|
整數類型 |
BIT[(M)] |
1 ~ 64 |
VARCHAR |
BIT[(M)] |
|
TINYINT[(M)] |
-128 ~ 127 |
TINYINT |
SMALLINT |
|
|
TINYINT[(M)] [UNSIGNED] |
0 ~ 255 |
SMALLINT |
SMALLINT |
|
|
SMALLINT[(M)] |
-32768 ~ 32767 |
SMALLINT |
SMALLINT |
|
|
SMALLINT[(M)] [UNSIGNED] |
0 ~ 65535 |
INT |
INTEGER |
|
|
MEDIUMINT[(M)] |
-8388608 ~ 8388607 |
INT |
INTEGER |
|
|
MEDIUMINT[(M)] [UNSIGNED] |
0 ~ 16777215 |
INT |
INTEGER |
|
|
INT[(M)] |
-2147483648 ~ 2147483647 |
INT |
INTEGER |
|
|
INT[(M)] [UNSIGNED] |
0 ~ 4294967295 |
BIGINT |
BIGINT |
|
|
BIGINT[(M)] |
-9223372036854775808 ~ 9223372036854775807 |
BIGINT |
BIGINT |
|
|
BIGINT[(M)] [UNSIGNED] |
0 ~ 18446744073709551615 |
DECIMAL(20,0) |
NUMERIC(20) |
|
|
小數類型 |
DECIMAL[(M[,D])] |
M:0~65 ; D:0~30 |
DECIMAL[(M[,D])] |
DECIMAL[(M[,D])] |
|
FLOAT(p) |
1.175494351E-38 ~ 3.402823466E+38 |
FLOAT |
REAL |
|
|
DOUBLE[(M,D)] |
2.2250738585072014E-308 ~ 1.7976931348623157E+308 |
DOUBLE |
DOUBLE PRECISION |
|
|
時間類型 |
DATE |
1000-01-01~9999-12-31 說明
格式為YYYY-MM-DD。 |
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[(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 WITH TIME ZONE |
|
|
TIME[(fsp)] |
-838:59:59.000000 ~ 838:59:59.000000 說明
格式為hh:mm:ss[.fraction](UTC時間)。 |
TIME |
TIMESTAMP WITH TIME ZONE |
|
|
YEAR[(4)] |
1901 ~ 2155,或0000 |
INT |
INTEGER |
|
|
字串類型 |
CHAR[(M)] |
0 ~ 255 字元 |
VARCHAR |
CHAR |
|
VARCHAR(M) |
0 ~ 65,535 字元 |
VARCHAR |
VARCHAR |
|
|
BINARY[(M)] |
0 ~ 255 位元組 |
VARBINARY |
BYTEA |
|
|
VARBINARY(M) |
0 ~ 65,535 位元組 |
VARBINARY |
BYTEA |
|
|
TINYBLOB |
255 (2^8 - 1) 位元組 |
VARBINARY |
BYTEA |
|
|
TINYTEXT |
255 (2^8 - 1) 字元 |
VARCHAR |
TEXT |
|
|
BLOB |
65,535 (2^16 - 1) 位元組 |
VARBINARY |
BYTEA |
|
|
TEXT |
65,535 (2^16 - 1) 字元 |
VARCHAR |
TEXT |
|
|
MEDIUMBLOB |
16,777,215 (2^24 - 1) 位元組 |
VARBINARY |
BYTEA |
|
|
MEDIUMTEXT |
16,777,215 (2^24 - 1) 字元 |
VARCHAR |
TEXT |
|
|
LONGBLOB |
4,294,967,295 or 4GB (2^32 - 1) 位元組 |
VARBINARY |
BYTEA |
|
|
LONGTEXT |
4,294,967,295 or 4GB (2^32 - 1) 字元 |
VARCHAR |
TEXT |
|
|
ENUM('value1','value2',...) |
最多可包含65,535枚舉值 |
VARCHAR |
VARCHAR(128) |
|
|
SET('value1','value2',...) |
最多可包含64個元素 |
VARCHAR |
VARCHAR(128) |
|
|
空間類型 |
GEOMETRY |
任意幾何類型的值 |
VARBINARY |
POLYGON |
|
POINT |
無 |
VARBINARY |
POINT |
|
|
LINESTRING |
無 |
VARBINARY |
PATH |
|
|
POLYGON |
無 |
VARBINARY |
POLYGON |
|
|
MULTIPOINT |
無 |
VARBINARY |
POLYGON |
|
|
MULTILINESTRING |
無 |
VARBINARY |
PATH |
|
|
MULTIPOLYGON |
無 |
VARBINARY |
POLYGON |
|
|
GEOMETRYCOLLECTION |
任何幾何類型的值的集合 |
VARBINARY |
POLYGON |
|
|
JSON類型 |
JSON |
無 |
JSON |
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 for MySQL 、雲原生資料倉儲AnalyticDB PostgreSQL版、PostgreSQL、MySQL、PolarDB MySQL版叢集),兩者間的資料類型映射關係如下:
如源執行個體中待同步資料範圍超出DTS所支援的範圍,則會導致目標執行個體中的所寫入資料的精度降低。
|
類型 |
SQL Server的資料類型 |
數值範圍 |
雲原生資料倉儲 AnalyticDB MySQL版的資料類型 |
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的資料類型 | Lindorm的資料類型 |
BIGINT | BIGINT | BIGINT |
BIGINT UNSIGNED | DECIMAL(20,0) | 不支援 |
BINARY | BINARY | BINARY |
BIT | BIT | BOOLEAN |
BLOB | 不支援 | VARBINARY |
BOOL\ BOOLEAN | TINYINT | BOOLEAN |
CHAR | CHAR | CHAR |
DATE | DATE | DATE/VARCHAR |
DATETIME | DATETIME | VARCHAR |
DECIMAL | DECIMAL | DECIMAL |
DOUBLE | DOUBLE | DOUBLE |
ENUM | ENUM | 不支援 |
FLOAT | FLOAT | FLOAT |
INT | INT | INT |
INT UNSIGNED | BIGINT | BIGINT |
INTEGER | INTEGER | INTEGER |
JSON | JSON | JSON |
MEDIUMBLOB/LONGBLOB TINYBLOB/BLOB/ | MEDIUMBLOB/LONGBLOB TINYBLOB/BLOB/ | MEDIUMBLOB/LONGBLOB TINYBLOB/BLOB/ |
MEDIUMINT | MEDIUMINT | MEDIUMINT |
SET | SET | 不支援 |
SMALLINT | SMALLINT | SMALLINT |
SMALLINT UNSIGNED | INT | INT |
TEXT/LONGTEXT | TEXT/LONGTEXT | TEXT/LONGTEXT |
TIME | TIME | TIME/VARCHAR |
TIMESTAMP | TIMESTAMP | TIMESTAMP |
TINYINT | TINYINT | TINYINT |
TINYINT UNSIGNED | SMALLINT | SMALLINT |
VARBINARY | VARBINARY | VARBINARY |
VARCHAR | VARCHAR | VARCHAR |
YEAR | YEAR | INTEGER |