由于不同的数据库支持的数据类型不一样,数据类型无法一一对应。所以DTS在进行数据同步的结构初始化时,会根据目标库支持的数据类型进行类型映射。本文为您列出数据类型的映射关系,便于您查阅和评估数据同步对业务的影响。

从自建MySQL、RDS MySQL或PolarDB MySQL同步至AnalyticDB for MySQL

MySQL数据类型 AnalyticDB for MySQL(2.0版本)数据类型 AnalyticDB for MySQL(3.0版本)数据类型
bigint unsigned bigint decimal(20,0)
binary varchar VARBINARY
bit int VARCHAR
blob varchar VARBINARY
char varchar varchar
date date DATE
datetime timestamp DATETIME
decimal decimal decimal
double double double
enum varchar VARCHAR
FLOAT float FLOAT
geometry varchar VARBINARY
geometrycollection varchar VARBINARY
int unsigned bigint BIGINT
integer int int
json varchar JSON
linestring varchar VARBINARY
LONGBLOB varchar VARBINARY
LONGTEXT varchar varchar
MEDIUMBLOB varchar VARBINARY
mediumint int int
mediumint unsigned integer INT
MEDIUMTEXT varchar varchar
multilinestring varchar VARBINARY
multipoint varchar VARBINARY
multipolygon varchar VARBINARY
numberic double DECIMAL
point varchar VARBINARY
polygon varchar VARBINARY
set varchar VARCHAR
smallint unsigned integer INT
text varchar VARCHAR
time varchar TIME
timestamp timestamp TIMESTAMP
TINYBLOB varchar VARBINARY
tinyint unsigned smallint SMALLINT
TINYTEXT varchar varchar
VARBINARY varchar VARBINARY
varchar varchar varchar
year varchar INT

从自建MySQL、RDS MySQL或PolarDB MySQL同步至ClickHouse

MySQL数据类型 ClickHouse数据类型
BIGINT Int64
BINARY String
BIT Boolean
CHAR String
DATE DATE
DATETIME DateTime
DECIMAL DECIMAL
DOUBLE Float64
ENUM ENUM
FLOAT Float32
GEOMETRY String
GEOMETRYCOLLECTION String
INT Int32
INTEGER Int32
JSON String
LINESTRING String
MEDIUMINT Int32
MULTILINESTRING String
MULTIPOINT String
MULTIPOLYGON String
POINT String
POLYGON String
SET String
SMALLINT Int16
TIME String
TIMESTAMP DateTime
说明 不包含时区信息。
TINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB String
TINYINT Int8
TINYTEXT/TEXT/MEDIUMTEXT/LONGTEXT String
VARBINARY String
VARCHAR String
YEAR Int16

从自建MySQL、RDS MySQL或PolarDB MySQL同步至ElasticSearch

MySQL数据类型 Elasticsearch数据类型 说明
BIGINT LONG
BINARY BINARY
BIT LONG 如果只有一个字节,建议在Elasticsearch中使用BOOLEAN。
BLOB BINARY
BOOL/BOOLEAN BOOLEAN
CHAR TEXT
DATE DATE DATE格式为yyyy-MM-dd(UTC时间),详情请参见date format的mapping定义
DATETIME DATE DATE格式为yyyy-MM-dd’T’HH:mm:ss(UTC时间)。如果精度为微秒,那么格式为yyyy-MM-dd’T’HH:mm:ss.S,详情请参见date format的mapping定义
DECIMAL/DEC DOUBLE 如果DECIMAL的值带有小数点,那么为保障数据一致性,建议在Elasticsearch中使用TEXT。
DOUBLE DOUBLE
FLOAT FLOAT
GEOMETRY GEO_SHAPE
GEOMETRYCOLLECTION GEO_SHAPE
INT INTEGER 如果源库中的类型为UNSIGNED INT,那么在Elasticsearch中使用LONG。
JSON OBJECT 如果只有一个字节,建议在Elasticsearch中使用BOOLEAN。
LINESTRING GEO_SHAPE
LONGTEXT TEXT
MEDIUMINT INTEGER
MEDIUMTEXT TEXT
MULTILINESTRING GEO_SHAPE
MULTIPOINT GEO_SHAPE 如果只有一个字节,建议Elasticsearch中使用BOOLEAN。
MULTIPOLYGON GEO_SHAPE
POINT GEO_POINT
POLYGON GEO_SHAPE
REAL DOUBLE
SMALLINT SHORT 如果源库中的类型为UNSIGNED SMALLINT,那么在Elasticsearch中使用INTEGER。
TIME DATE DATE格式为HH:mm:ss(UTC时间)。如果精度为微秒,那么格式为HH:mm:ss.S,详情请参见date format的mapping定义
TIMESTAMP DATE DATE格式为yyyy-MM-dd’T’HH:mm:ss(UTC时间),如果精度为微秒,那么格式为yyyy-MM-dd’T’HH:mm:ss.S ,详情请参见date format的mapping定义
TINYINT SHORT 如果源库中的类型为UNSIGNED TINYINT,那么在Elasticsearch中使用的类型为INTEGER。
TINYTEXT TEXT
VARCHAR TEXT
YEAR DATE DATE格式为yyyy(UTC时间),详情请参见date format的mapping定义

从自建SQL Server、RDS SQL Server同步至云原生数据仓库AnalyticDB PostgreSQL

SQL Server数据类型 云原生数据仓库AnalyticDB PostgreSQL数据类型
INT INTEGER
SMALLINT SMALLINT
TINYINT SMALLINT
BIGINT BIGINT
BIT BIT
DECIMAL DECIMAL
NUMERIC DECIMAL
CHAR CHARACTER[(N)]
VARCHAR CHARACTER[(N)]
NCHAR CHARACTER[(N)]
TEXT/NTEXT TEXT
FLOAT DOUBLE
REAL REAL
DATE DATE
DATETIME/DATETIME2 TIMESTAMP WITHOUT TIME ZONE
DATETIMEOFFSET TIMESTAMP WITH TIME ZONE
SMALLDATETIME TIMESTAMP WITHOUT TIME ZONE
TIME TIME WITHOUT TIME ZONE
BINARY/VARBINARY BYTEA
IMAGE BYTEA
MONEY/SMALLMONEY DECIMAL
UNIQUEIDENTIFIER CHARACTER VARING
XML XML