全部產品
Search
文件中心

Data Transmission Service:異構資料庫間的資料類型映射關係

更新時間:Nov 09, 2024

不同類型的資料庫(異構資料庫)支援的資料類型不一樣,DTS在進行異構資料庫之間的資料移轉時,會在結構遷移階段進行資料類型映射,即將源庫中的資料類型轉為目標庫支援的資料類型。本文為您列出詳細資料類型映射關係,便於您查閱和評估資料移轉對業務的影響。

概覽

根據如下遷移方案,查看異構資料庫間的資料類型映射關係:

重要

若源端時間欄位的資料類型為TIMESTAMP WITH TIME ZONE,目標端時間欄位的資料類型為DATETIME等異構資料類型,時間欄位的時區資訊將會丟失。

以PolarDB MySQL、RDS MySQL、自建MySQL為源的資料移轉

當源執行個體為PolarDB MySQL、RDS MySQL、自建MySQL,且目標執行個體為異構資料庫時(包括雲原生資料倉儲AnalyticDB MySQL版和2.0、雲原生資料倉儲AnalyticDB PostgreSQL版),兩者間的資料類型映射關係如下:

說明

如源執行個體中待遷移資料範圍超出DTS所支援的範圍,則會導致目標執行個體中的所遷入資料的精度降低。

類型

源執行個體的資料類型

數值範圍

雲原生資料倉儲AnalyticDB 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

TIME WITHOUT 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

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,且目標執行個體為異構資料庫時(包括MySQL、PolarDB MySQL、雲原生資料倉儲AnalyticDB MySQL版、雲原生資料倉儲AnalyticDB PostgreSQL版、PolarDB PostgreSQL版(相容Oracle)),兩者間的資料類型映射關係如下:

說明

如源執行個體中待遷移資料範圍超出DTS所支援的範圍,則會導致目標執行個體中的所遷入資料的精度降低。

類型

Oracle的資料類型

數值範圍

MySQL、PolarDB MySQL、PolarDB-X的資料類型

RDS PPAS的資料類型

雲原生資料倉儲AnalyticDB MySQL版的資料類型

雲原生資料倉儲AnalyticDB PostgreSQL版的資料類型

PolarDB PostgreSQL版(相容Oracle)的資料類型

數字類型

NUMBER(p,s)

1 ~ 22 位元組。

p代表精度位,取值範圍是1 ~ 38。

s代表小數位,取值範圍是-84 ~ 127。

DECIMAL[(p[,s])]

NUMBER[(p[,s])]

DECIMAL | TINYINT | SMALLINT | INTEGER | BIGINT

DECIMAL | TINYINT | SMALLINT | INTEGER | BIGINT

NUMBER(p,s)

FLOAT(p)

1 ~ 22 位元組。

p代表指標變數,取值範圍是1 ~ 126 bit。

DOUBLE

DOUBLE PRECISION

DOUBLE

DOUBLE PRECISION

DOUBLE PRECISION

BINARY_FLOAT

32-bit的浮點數,即4位元組。

DECIMAL(65,8)

REAL

DOUBLE

DOUBLE PRECISION

REAL

BINARY_DOUBLE

64-bit的浮點數,即8位元組。

DOUBLE

DOUBLE PRECISION

DOUBLE

DOUBLE PRECISION

DOUBLE PRECISION

日期類型

DATE

DATETIME

DATE

DATETIME

TIMESTAMP(0)

DATE

TIMESTAMP [(fractional_seconds_precision)]

DATETIME[(fractional_seconds_precision)]

TIMESTAMP [(fractional_seconds_precision)]

DATETIME

TIMESTAMP

TIMESTAMP [(fractional_seconds_precision)]

TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE

DATETIME[(fractional_seconds_precision)]

TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE

TIMESTAMP

TIMESTAMP WITH TIME ZONE

TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE

TIMESTAMP [(fractional_seconds_precision)] WITH LOCAL TIME ZONE

DATETIME[(fractional_seconds_precision)]

TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE

DATETIME

TIMESTAMP WITH TIME ZONE

TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE

INTERVAL YEAR [(year_precision)] TO MONTH

不支援

不支援

VARCHAR

VARCHAR(32)

INTERVAL

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

不支援

不支援

VARCHAR

VARCHAR(32)

INTERVAL

字串類型

CHAR [(size [BYTE | CHAR])]

2000 位元組。

CHAR[(n)]

CHAR[(n)]

VARCHAR

CHAR

CHAR [(size [BYTE | CHAR])]

NCHAR[(size)]

2000 位元組。

NATIONAL CHAR[(n)]

NCHAR[(n)]

VARCHAR

VARCHAR

NCHAR[(size)]

VARCHAR2(size [BYTE | CHAR])

當MAX_STRING_SIZE = EXTENDED時,最大長度為32767位元組;

當MAX_STRING_SIZE = STANDARD,最大長度為4000位元組。

VARCHAR(n)

VARCHAR2[(n)]

VARCHAR

VARCHAR

VARCHAR2(size [BYTE | CHAR])

NVARCHAR2(size)

當MAX_STRING_SIZE = EXTENDED時,最大長度為32767位元組;

當MAX_STRING_SIZE = STANDARD,最大長度為4000位元組。

NATIONALVARCHAR[(n)]

VARCHAR2[(n)]

VARCHAR

VARCHAR

NVARCHAR2(size)

LONG

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

LONGTEXT

LONG

VARCHAR

TEXT

LONG

RAW(size)

最大長度32767 位元組或2000位元組。

VARBINARY(2000)

RAW(size)

VARBINARY

BYTEA

RAW(size)

LONG RAW

最大長度2G。

LONGBLOB

LONG RAW

VARBINARY

BYTEA

LONG RAW

CLOB

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

LONGTEXT

CLOB

VARCHAR

TEXT

CLOB

NCLOB

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

LONGTEXT

NCLOB

VARCHAR

TEXT

CLOB

BLOB

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

LONGBLOB

BLOB

VARBINARY

BYTEA

BLOB

BFILE

4G。

不支援

不支援

不支援

不支援

不支援

JSON類型

JSON

最大長度32MB。

不支援

不支援

JSON

JSON

JSON

ROWID類型

ROWID

64字元。

不支援

不支援

ROWID

OID

VARCHAR

空間類型

需要自訂

不支援

說明
  • 當目標執行個體為MySQL、PolarDB MySQL、PolarDB-X時:

    • 對於CHAR類型,如長度定義超過255,DTS會將類型轉換為VARCHAR(n)。

    • 由於MySQL本身不支援類似Oracle中的BFILE、INTERVAL YEARTO MONTH和INTERVAL DAYTO SECOND資料類型,DTS在進行結構遷移時,無法在MySQL中找到合適的資料類型進行映射,因此這三種類型不會進行轉化。

      遷移時如果表中含有這三種類型,會導致結構遷移失敗,在選擇遷移對象時,對需要遷移的對象中這三種類型的列進行排除。

    • 由於MySQL的TIMESTAMP類型不包含時區,而Oracle的TIMESTAMP WITH TIME ZONE和TIMESTAMP WITH LOCAL TIME ZONE預設帶有時區資訊,DTS在遷移這兩種類型的資料時,會將其轉換成UTC時區後存入目標執行個體。

  • 當目標執行個體為RDS PPAS時,

    由於RDS PPAS不支援TIMESTAMP[(fractional_seconds_precision)] WITH LOCAL TIME ZONE,DTS在遷移這種類型的資料時,會將其轉換成UTC時區後存入目標RDS PPAS的TIMESTAMP[(fractional_seconds_precision)] WITH TIME ZONE中。

  • 當目標執行個體為雲原生資料倉儲AnalyticDB PostgreSQL版時,

    對於雲原生資料倉儲AnalyticDB PostgreSQL版不支援欄位類型,DTS會將其直接轉為BYTEA,如果轉換不了則將資料內容置為NULL。

以SQL Server為源的資料移轉

當源執行個體為SQL Server(包括自建SQL Server、RDS SQL Server),且目標執行個體為異構資料庫時(包括雲原生資料倉儲AnalyticDB MySQL版、雲原生資料倉儲AnalyticDB PostgreSQL版、PostgreSQL、MySQL),兩者間的資料類型映射關係如下:

說明

如源執行個體中待遷移資料範圍超出DTS所支援的範圍,則會導致目標執行個體中的所遷入資料的精度降低。

類型

SQL Server的資料類型

數值範圍

雲原生資料倉儲AnalyticDB MySQL版的資料類型

雲原生資料倉儲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)

以自建TiDB為源的資料移轉

當源執行個體為自建TiDB,且目標執行個體為異構資料庫時(如MySQL、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

以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

以Teradata為源的資料移轉

當源執行個體為Teradata,且目標執行個體為異構資料庫時(如雲原生資料倉儲AnalyticDB PostgreSQL版),兩者間的資料類型映射關係如下:

Teradata資料類型

AnalyticDB PostgreSQL中的資料類型

BYTEINT

SMALLINT

SMALLINT

SMALLINT

BIGINT

BIGINT

INTEGER

INTEGER

DATE

DATE

JSON

JSON

XML

XML

CLOB

text

Float

real

CHAR

CHAR

VARCHAR

VARCHAR

Timestamp

Timestamp

TIME

TIME

Timestamp With Time Zone

Timestamp With Time Zone

Time With Time Zone

Time With Time Zone

Decimal

Decimal

Number

numeric

BYTE

bytea

VARBYTE

bytea

BLOB

bytea

PERIOD

varchar(100)

INTERVAL

varchar(100)

Teradata資料類型

AnalyticDB PostgreSQL中的資料類型

SMALLINT

SMALLINT

INTEGER

INT

BIGINT

BIGINT

DECIMAL(precision-integer, scale-integer)

DECIMAL

NUMERIC

DECIMAL

FLOAT(integer)

FLOAT

DECFLOAT(precision-integer)

DECIMAL(65,10)

DATE

DATE

TIME

TIME

TIMESTAMP(integer)

DATETIME

CHAR(integer)

CHAR | VARCHAR

VARCHAR(integer)

VARCHAR

CHAR(integer) FOR BIT DATA

BLOB

CLOB

LONGTEXT

GRAPHIC(integer)

CHAR

VARGRAPHIC(integer)

VARCHAR

DBCLOB(integer)

LONGTEXT

BINARY

BINARY

VARBIN

VARBINARY

BLOB

LONGBLOB

DATALINK

VARCHAR | LONGTEXT

ROWID

VARCHAR | LONGTEXT

XML

VARCHAR | LONGTEXT