支持的数据类型
配置字段映射时,数据源支持的数据类型请参见表1,以确保数据完整导入到目的端。
数据连接类型 | 数据类型说明 |
|---|---|
MySQL | |
SQL Server | |
Oracle | |
PostgreSQL | |
神通(ST) | |
SAP HANA | |
DWS | 请参见DWS数据库迁移时支持的数据类型。 |
达梦 | 请参见达梦数据库迁移时支持的数据类型。 |
DLI | 请参见DLI数据库迁移时支持的数据类型。 |
Elasticsearch/云搜索服务(CSS) |
MySQL数据库迁移时支持的数据类型
源端为MySQL数据库,目的端为Hive、DWS时,支持的数据类型如下:
类别 | 类型 | 简要释义 | 存储格式示例 | Hive | DWS |
|---|---|---|---|---|---|
字符串 | CHAR(M) | 固定长度的字符串是以长度为1到255之间的字符长度(例如:CHAR(5)),存储用空格填充到指定的长度。 限定长度不是必需的,它会默认为1。 | ‘a’或‘aaaaa’ | CHAR | CHAR |
VARCHAR(M) | 可变长度的字符串是以长度为1到255之间字符数(高版本的MySQL超过255); 例如: VARCHAR(25). 创建VARCHAR类型字段时,必须定义长度。 | ‘a’或‘aaaaa’ | VARCHAR | VARCHAR | |
数值 | DECIMAL(M,D) | 非压缩浮点数不能是无符号的。在解包小数,每个小数对应于一个字节。 定义显示长度(M)和小数(D)的数量是必需的。 NUMERIC是DECIMAL的同义词。 | 52.36 | DECIMAL | D为0时对应BIGINT D不为0时对应NUMERIC |
NUMERIC | 与 DECIMAL 相同。 | - | DECIMAL | NUMERIC | |
INTEGER | 一个正常大小的整数,可以带符号。如果是有符号的,它允许的范围是从-2147483648到2147483647。 如果是无符号,允许的范围是从0到4294967295。 可以指定多达11位的宽度。 | 5236 | INT | INTEGER | |
INTEGER UNSIGNED | INTEGER 的无符号形式。 | - | BIGINT | INTEGER | |
INT | 与INTEGER相同。 | 5236 | INT | INTEGER | |
INT UNSIGNED | 与INTEGER UNSIGNED相同。 | - | BIGINT | INTEGER | |
BIGINT | 一个大的整数,可以带符号。如果有符号,允许范围为-9223372036854775808到9223372036854775807。如果无符号,允许的范围是从0到18446744073709551615. 可以指定最多20位的宽度。 | 5236 | BIGINT | BIGINT | |
BIGINT UNSIGNED | BIGINT的无符号形式。 | - | BIGINT | BIGINT | |
MEDIUMINT | 一个中等大小的整数,可以带符号。如果有符号,允许范围为-8388608至8388607。 如果无符号,允许的范围是从0到16777215,可以指定最多9位的宽度。 | -128,127 | INT | INTEGER | |
MEDIUMINT UNSIGNED | MEDIUMINT的无符号形式。 | - | BIGINT | INTEGER | |
TINYINT | 一个非常小的整数,可以带符号。如果是有符号,它允许的范围是从-128到127。 如果是无符号,允许的范围是从0到255,可以指定多达4位数的宽度。 | 100 | TINYINT | SMALLINT | |
TINYINT UNSIGNED | TINYINT的无符号形式。 | - | TINYINT | SMALLINT | |
BOOL | MySQL的bool实际上就是tinyint(1)。 | -128、127 | SMALLINT | BYTEA | |
SMALLINT | 一个小的整数,可以带符号。如果有符号,允许范围为-32768至32767。 如果无符号,允许的范围是从0到65535,可以指定最多5位的宽度。 | 9999 | SMALLINT | SMALLINT | |
SMALLINT UNSIGNED | SMALLINT的无符号形式。 | - | INT | SMALLINT | |
REAL | 同DOUBLE。 | - | DOUBLE | - | |
FLOAT(M,D) | 不能使用无符号的浮点数字。可以定义显示长度(M)和小数位数(D)。这不是必需的,并且默认为10,2。其中2是小数的位数,10是数字(包括小数)的总数。小数精度可以到24个浮点。 | 52.36 | FLOAT | FLOAT4 | |
DOUBLE(M,D) | 不能使用无符号的双精度浮点数。可以定义显示长度(M)和小数位数(D)。 这不是必需的, 默认为16,4,其中4是小数的位数。小数精度可以达到53位的DOUBLE。 REAL是DOUBLE同义词。 | 52.36 | DOUBLE | FLOAT8 | |
DOUBLE PRECISION | 与DOUBLE相似。 | 52.3 | DOUBLE | FLOAT8 | |
位 | BIT(M) | 存储位值的BIT类型。BIT(M)可以存储多达M位的值,M的范围在1到64之间。 | B'1111100' B'1100' | TINYINT | BYTEA |
日期时间 | DATE | 以YYYY-MM-DD格式的日期,在1000-01-01和9999-12-31之间。 例如,1973年12月30日将被存储为1973-12-30。 | 1999-10-01 | DATE | TIMESTAMP |
TIME | 用于存储时、分、秒信息。 | '09:10:21'或'9:10:21' | 不支持(String) | TIME | |
DATETIME | 日期和时间组合以YYYY-MM-DD HH:MM:SS格式,在1000-01-01 00:00:00 到9999-12-31 23:59:59之间。例如,1973年12月30日下午3:30,会被存储为1973-12-30 15:30:00。 | '1973-12-30 15:30:00' | TIMESTAMP | TIMESTAMP | |
TIMESTAMP | 1970年1月1日午夜之间的时间戳,到2037的某个时候。这看起来像前面的DATETIME格式,无需只是数字之间的连字符; 1973年12月30日下午3点30分将被存储为19731230153000(YYYYMMDDHHMMSS)。 | 19731230153000 | TIMESTAMP | TIMESTAMP | |
YEAR(M) | 以2位或4位数字格式来存储年份。如果长度指定为2(例如YEAR(2)),年份就可以为1970至2069(70~69)。如果长度指定为4,年份范围是1901-2155,默认长度为4。 | 2000 | 不支持(String) | 不支持 | |
多媒体(二进制) | BINARY(M) | 字节数为M,允许长度为0-M的变长二进制字符串,字节数为值的长度加1。 | 0x2A3B4058 (二进制数据) | 不支持 | BYTEA |
VARBINARY(M) | 字节数为M,允许长度为0-M的定长二进制字符串。 | 0x2A3B4059 (二进制数据) | 不支持 | BYTEA | |
TEXT | 字段的最大长度是65535个字符。 TEXT是“二进制大对象”,并用来存储大的二进制数据,如图像或其他类型的文件。 | 0x5236(二进制数据) | 不支持 | 不支持 | |
TINYTEXT | 0-255字节短文本二进制字符串。 | - | - | 不支持 | |
MEDIUMTEXT | 0-167772154字节中等长度文本二进制字符串。 | - | - | 不支持 | |
LONGTEXT | 0-4294967295字节极大长度文本二进制字符串。 | - | - | 不支持 | |
BLOB | 字段的最大长度是65535个字符。 BLOB是“二进制大对象”,并用来存储大的二进制数据,如图像或其他类型的文件。BLOB大小写敏感。 | 0x5236(二进制数据) | 不支持 | 不支持 | |
TINYBLOB | 0-255字节短文本二进制字符串。 | - | 不支持 | 不支持 | |
MEDIUMBLOB | 0-167772154字节中等长度文本二进制字符串。 | - | 不支持 | 不支持 | |
LONGBLOB | 0-4294967295字节极大长度文本二进制字符串。 | 0x5236(二进制数据) | 不支持 | 不支持 | |
特殊类型 | SET | SET是一个字符串对象,可以有零或多个值,其值来自表创建时规定的允许的一列值。指定包括多个SET成员的SET列值时各成员之间用逗号(‘,’)间隔开。这样SET成员值本身不能包含逗号。 | - | - | 不支持 |
JSON | - | - | 不支持 | 不支持(TEXT) | |
ENUM | 当定义一个ENUM,要创建它的值的列表,这些是必须用于选择的项(也可以是NULL)。例如,如果想要字段包含“A”或“B”或“C”,那么可以定义为ENUM为 ENUM(“A”,“B”,“C”)也只有这些值(或NULL)才能用来填充这个字段。 | - | 不支持 | 不支持 |
Oracle数据库迁移时支持的数据类型
源端为Oracle数据库,目的端为Hive、DWS时,支持的数据类型如下:
类别 | 类型 | 简要释义 | Hive | DWS |
|---|---|---|---|---|
字符串 | char | 定长字符串,会用空格填充来达到最大长度。 | CHAR | CHAR |
nchar | 包含unicode格式数据的定长字符串。 | CHAR | CHAR | |
varchar2 | 是VARCHAR的同义词。这是一个变长字符串,与CHAR类型不同,它不会用空格将字段或变量填充至最大长度。 | VARCHAR | VARCHAR | |
nvarchar2 | 包含unicode格式数据的变长字符串。 | VARCHAR | VARCHAR | |
数值 | number | 能存储精度最多高达38位的数字。 | DECIMAL | NUMERIC |
binary_float | 2位单精度浮点数。 | FLOAT | FLOAT8 | |
binary_double | 64位双精度浮点数。 | DOUBLE | FLOAT8 | |
long | 能存储最多2GB的字符数据。 | 不支持 | 不支持 | |
日期时间 | date | 7字节的定宽日期/时间数据类型,其中包含7个属性:世纪、世纪中的哪一年、月份、月中的哪一天、小时、分钟、秒。 | DATE | TIMESTAMP |
timestamp | 7字节或11字节的定宽日期/时间数据类型,它包含小数秒。 | TIMESTAMP | TIMESTAMP | |
timestamp with time zone | 3字节的timestamp,提供了时区支持。 | TIMESTAMP | TIME WITH TIME ZONE | |
timestamp with local time zone | 7字节或11字节的定宽日期/时间数据类型,在数据的插入和读取时会发生时区转换。 | TIMESTAMP | 不支持(TEXT) | |
interval year to month | 5字节的定宽数据类型,用于存储一个时段。 | 不支持 | 不支持(TEXT) | |
interval day to second | 11字节的定宽数据类型,用于存储一个时段。将时段存储为天/小时/分钟/秒数,还可以有9位小数秒。 | 不支持 | 不支持(TEXT) | |
多媒体(二进制) | raw | 一种变长二进制数据类型,采用这种数据类型存储的数据不会发生字符集转换。 | 不支持 | 不支持 |
long raw | 能存储多达2GB的二进制信息。 | 不支持 | 不支持 | |
blob | 能够存储最多4GB的数据。 | 不支持 | 不支持 | |
clob | 在Oracle 10g及以后的版本中允许存储最多(4GB)×(数据库块大小)字节的数据。CLOB包含要进行字符集转换的信息。这种数据类型很适合存储纯文本信息。 | String | 不支持 | |
nclob | 这种类型能够存储最多4GB的数据。当字符集发生转换时,这种类型会受到影响。 | 不支持 | 不支持 | |
bfile | 可以在数据库列中存储一个oracle目录对象和一个文件名,用户可以通过它来读取这个文件。 | 不支持 | 不支持 | |
其他类型 | rowid | 实际上是数据库表中行的地址,它有10字节长。 | 不支持 | 不支持 |
urowid | 是一个通用的rowid,没有固定的rowid的表。 | 不支持 | 不支持 |
SQL Server数据库迁移时支持的数据类型
源端为SQL Server数据库,目的端为Hive、DWS、Oracle时,支持的数据类型如下:
类别 | 类型 | 简要释义 | Hive | DWS | Oracle |
|---|---|---|---|---|---|
字符串数据类型 | char | 定长字符串,会用空格填充来达到最大长度。 | CHAR | CHAR | CHAR |
nchar | 包含unicode格式数据的定长字符串。 | CHAR | CHAR | CHAR | |
varchar | 可变长度的字符串是以长度为1到255之间字符数(高版本的MySQL超过255); 例如: VARCHAR(25);创建VARCHAR类型字段时,必须定义长度。 | VARCHAR | VARCHAR | VARCHAR | |
nvarchar | 与varchar类似,存储可变长度Unicode字符数据。 | VARCHAR | VARCHAR | VARCHAR | |
数值数据类型 | int | int存储在4个字节中,其中一个二进制位表示符号位,其它31个二进制位表示长度和大小,可以表示-2的31次方~2的31次方-1范围内的所有整数。 | INT | INTEGER | INT |
bigint | bigint存储在8个字节中,其中一个二进制位表示符号位,其它63个二进制位表示长度和大小,可以表示-2的63次方~2的63次方-1范围内的所有整数。 | BIGINT | BIGINT | NUMBER | |
smallint | smallint类型的数据占用了两个字节的存储空间,其中一个二进制位表示整数值的正负号,其它15个二进制位表示长度和大小,可以表示-2的15次方~2的15次方-1范围内的所有整数。 | SMALLINT | SMALLINT | NUMBER | |
tinyint | tinyint类型的数据占用了一个字节的存储空间,可以表示0~255范围内的所有整数。 | TINYINT | TINYINT | NUMBER | |
real | 可以存储正的或者负的十进制数值。 | DOUBLE | FLOAT4 | NUMBER | |
float | 其中用于存储float数值尾数的位数(以科学计数法表示),因此可以确定精度和存储大小。 | FLOAT | FLOAT8 | binary_float | |
decimal | 带固定精度和小数位数的数值数据类型。 | DECIMAL | NUMERIC | NUMBER | |
numeric | 用于存储零、正负定点数。 | DECIMAL | NUMERIC | NUMBER | |
日期时间数据类型 | date | 存储用字符串表示的日期数据。 | DATE | TIMESTAMP | DATE |
time | 以字符串形式记录一天的某个时间。 | 不支持(String) | TIME | 不支持 | |
datetime | 用于存储时间和日期数据。 | TIMESTAMP | TIMESTAMP | 不支持 | |
datetime2 | datetime的扩展类型,其数据范围更大,默认的最小精度最高,并具有可选的用户定义的精度。 | TIMESTAMP | TIMESTAMP | 不支持 | |
smalldatetime | smalldatetime类型与datetime类型相似,只是其存储范围是从1900年1月1日到2079年6月6日,当日期时间精度较小时,可以使用smalldatetime,该类型数据占用4个字节的存储空间。 | TIMESTAMP | TIMESTAMP | 不支持 | |
datetimeoffset | 用于定义一个采用24小时制与日期相组合并可识别时区的时间。 | 不支持(String) | TIMESTAMP | 不支持 | |
多媒体数据类型 (二进制) | text | 用于存储文本数据。 | 不支持(String) | 不支持(String) | 不支持 |
ntext | 与text类型作用相同,为长度可变的非Unicode数据。 | 不支持(String) | 不支持(String) | 不支持 | |
image | 长度可变的二进制数据,用于存储照片、目录图片或者图画。 | 不支持(String) | 不支持(String) | 不支持 | |
binary | 长度为n个字节的固定长度二进制数据,其中n是从1~8000的值。 | 不支持(String) | 不支持(String) | 不支持 | |
varbinary | 可变长度二进制数据。 | 不支持(String) | 不支持(String) | 不支持 | |
货币数据类型 | money | 用于存储货币值。 | 不支持(String) | 不支持(String) | 不支持 |
smallmoney | 与money类型相似,输入数据时在前面加上一个货币符号,如美元为$或其它定义的货币符号。 | 不支持(String) | 不支持(String) | 不支持 | |
位数据类型 | bit | 位数据类型,只取0或1为值,长度1字节。bit值经常当作逻辑值用于判断true(1)或false(0),输入非0值时系统将其替换为1。 | 不支持 | 不支持 | 不支持 |
其他数据类型 | rowversion | 每个数据都有一个计数器,当对数据库中包含rowversion列的表执行插入或者更新操作时,该计数器数值就会增加。 | 不支持 | 不支持 | 不支持 |
uniqueidentifier | 16字节的GUID(Globally Unique Identifier,全球唯一标识符),是Sql Server根据网络适配器地址和主机CPU时钟产生的唯一号码,其中,每个位都是0~9或a~f范围内的十六进制数字。 | 不支持 | 不支持 | 不支持 | |
cursor | 游标数据类型。 | 不支持 | 不支持 | 不支持 | |
sql_variant | 用于存储除文本,图形数据和timestamp数据外的其它任何合法的Sql Server数据,可以方便Sql Server的开发工作。 | 不支持 | 不支持 | 不支持 | |
table | 用于存储对表或视图处理后的结果集。 | 不支持 | 不支持 | 不支持 | |
xml | 存储xml数据的数据类型。可以在列中或者xml类型的变量中存储xml实例。存储的xml数据类型表示实例大小不能超过2GB。 | 不支持 | 不支持 | 不支持 |
PostgreSQL数据库迁移时支持的数据类型
源端为PostgreSQL数据库,目的端为Hive、DWS、DLI时,支持的数据类型如下:
类别 | 类型 | 简要释义 | Hive | DWS | DLI |
|---|---|---|---|---|---|
字符 | char | 定长字符串,存储右空格填充到指定的长度。 | CHAR | CHAR | 不支持(String) |
varchar | 变长字符串,不会用空格将字段或变量填充至最大长度。 | VARCHAR | VARCHAR | 不支持(String) | |
数值 | smallint | 扩展名 int2,存储在2个字节中,它允许的范围是从-32768到32767。 | SMALLINT | SMALLINT | SMALLINT |
int | 扩展名 int4,存储在4个字节中,它允许的范围是从-2147483648到2147483647。 | INTEGER | INT | INT | |
bigint | 扩展名 int8,存储在8个字节中,允许范围为-9223372036854775808到9223372036854775807。 | BIGINT | BIGINT | BIGINT | |
decimal(p,s) | 精度p表示为值存储的有效位数,刻度s表示可以在小数点后存储的位数。p最大位数是1000。 | DECIMAL(P,S) | DECIMAL(P,S) | DECIMAL(P,S) | |
float | 4字节或8字节存储。float(n):n取值在1-24内,精度有效位数为6 位数,长度4 个字节,是单精度,n取值在25-53内,精度有效位数为15 位数,长度8 字节,是双精度。 | FLOAT/DOUBLE | FLOAT/DOUBLE | FLOAT/DOUBLE | |
smallserial | 序列数据类型,以smallint格式存储。 | SMALLINT | SMALLINT | SMALLINT | |
serial | 序列数据类型,以int格式存储。 | INTEGER | INT | INT | |
bigserial | 序列数据类型,以bigint格式存储。 | BIGINT | BIGINT | BIGINT | |
日期时间 | date | 存储日期数据。 | DATE | DATE | DATE |
timestamp | 存储日期和时间数据,无时区。 | TIMESTAMP | TIMESTAMP | 不支持(String) | |
timestamptz | 存储日期和时间数据,有时区。 | TIMESTAMP | TIMESTAMPZ | 不支持(String) | |
time | 只用于一日内时间,无时区。 | 不支持(String) | TIME | 不支持(String) | |
timez | 只用于一日内时间,有时区。 | 不支持(String) | TIMEZ | 不支持(String) | |
interval | 时间间隔。 | 不支持(String) | 不支持(String) | 不支持(String) | |
位串类型 | bit | 定长位串,例如: b'000101'。 | 不支持(String) | 不支持(String) | 不支持(String) |
varbit | 可变长位串,例如: b'101'。 | 不支持(String) | 不支持(String) | 不支持(String) | |
货币类型 | money | 存储在8个字节中,它允许的范围是从-922337203685477.5808到922337203685477.5807。 | DOUBLE | MONEY | DECIMAL(P,S) |
布尔类型 | boolean | 存储在1个字节中,可以取值为 1、0 或 NULL。 | BOOLEAN | BOOLEAN | BOOLEAN |
文本类型 | text | 变长文本,无长度限制。 | 不支持(String) | 不支持(String) | 不支持(String) |
DWS数据库迁移时支持的数据类型
源端为DWS数据库时,支持的数据类型如下:
类别 | 类型 | 简要释义 |
|---|---|---|
字符 | char | 定长字符串,存储右空格填充到指定的长度。 |
varchar | 变长字符串,不会用空格将字段或变量填充至最大长度。 | |
数值 | double | 用于存储指明双精度的浮点数。 |
decimal(p,s) | 精度p表示为值存储的有效位数,刻度s表示可以在小数点后存储的位数。p最大位数是1000。 | |
numeric | 用于存储零、正负定点数。 | |
real | 与double相同。 | |
int | int存储在4个字节中,其中一个二进制位表示符号位,其它31个二进制位表示长度和大小,可以表示-2的31次方~2的31次方-1范围内的所有整数。 | |
bigint | bigint存储在8个字节中,其中一个二进制位表示符号位,其它63个二进制位表示长度和大小,可以表示-2的63次方~2的63次方-1范围内的所有整数。 | |
smallint | smallint类型的数据占用了两个字节的存储空间,其中一个二进制位表示整数值的正负号,其它15个二进制位表示长度和大小,可以表示-2的15次方~2的15次方-1范围内的所有整数。 | |
tinyint | tinyint类型的数据占用了一个字节的存储空间,可以表示0~255范围内的所有整数。 | |
日期时间 | date | 存储日期数据。 |
timestamp | 存储日期和时间数据,无时区。 | |
time | 只用于一日内时间,无时区。 | |
位串类型 | bit | 定长位串,例如: b'000101'。 |
布尔类型 | boolean | 存储在1个字节中,可以取值为 1、0 或 NULL。 |
文本类型 | text | 变长文本,无长度限制。 |
神通(ST)数据库迁移时支持的数据类型
源端为神通(ST)数据库,目的端为MRS Hive、MRS Hudi时,支持的数据类型如下:
类别 | 类型 | 简要释义 | 存储格式示例 | MRS Hive | MRS Hudi |
|---|---|---|---|---|---|
字符 | VARCHAR | 用于存储指定定长字符串。 | ‘a’或‘aaaaa’ | VARCHAR(765) | STRING |
BPCHAR | 用于存储指定变长字符串。 | ‘a’或‘aaaaa’ | VARCHAR(765) | STRING | |
数值 | NUMERIC | 用于存储零、正负定点数。 | 52.36 | DECIMAL(10,0) | DECIMAL(18,0) |
INT | 用于存储零、正负定点数。 | 5236 | INT | INT | |
BIGINT | 用于存储有符号整数,精度为19,标度为0。 | 5236 | BIGINT | BIGINT | |
TINYINT | 用于存储有符号整数,精度为3,标度为0。 | 100 | SMALLINT | INT | |
BINARY | 用于存储定长二进制数据。 | 0x2A3B4058 | 不支持 | FLOAT | |
VARBINARY | 用于存储可变长二进制数据。 | 0x2A3B4058 | 不支持 | BINARY | |
FLOAT | 用于存储带二进制精度的浮点数。 | 52.36 | FLOAT | FLOAT | |
DOUBLE | 用于存储指明双精度的浮点数。 | 52.3 | DOUBLE | DOUBLE | |
日期时间 | DATE | 用于存储年、月、日信息。 | '1999-10-01'、'1999/10/01'或'1999.10.01' | DATE | DATE |
TIME | 用于存储时、分、秒信息。 | '09:10:21'或'9:10:21' | STRING | STRING | |
TIMESTAMP | 用于存储年、月、日、时、分、秒信息。 | '2002-12-12 09:10:21'、'2002-12-12 9:10:21'、 '2002/12/12 09:10:21' 或'2002.12.12 09:10:21' | TIMESTAMP | TIMESTAMP | |
多媒体 | CLOB | 用于存储变长的二进制大对象,长度最大为2G-1字节。 | 0x5236(二进制数据) | STRING | STRING |
BLOB | 用于存储变长的二进制大对象,长度最大为2G-1字节。 | 0x5236(二进制数据) | 不支持 | BINARY | |
布尔类型 | BOOLEAN | 存储在1个字节中,可以取值为 1、0 或 NULL。 | 1 | BOOLEAN | BOOLEAN |
SAP HANA数据库迁移时支持的数据类型
源端为SAP HANA数据库时,支持的数据类型如下:
类别 | 类型 | 简要释义 |
|---|---|---|
字符 | VARCHAR | 用于存储指定定长字符串。 |
NVARCHAR | 包含unicode格式数据的变长字符串。 | |
TEXT | 用于存储长字符串类型,其字符串的长度最大为 2G-1,存储长的文本串。 | |
数值 | BIGINT | 用于存储有符号整数,精度为19,标度为0。 |
TINYINT | 用于存储有符号整数,精度为3,标度为0。 | |
SMALLINT | SMALLINT类型的数据占用了两个字节的存储空间,其中一个二进制位表示整数值的正负号,其它15个二进制位表示长度和大小,可以表示-2的15次方~2的15次方-1范围内的所有整数。 | |
REAL | 可以存储正的或者负的十进制数值。 | |
DECIMAL | 带固定精度和小数位数的数值数据类型。 | |
FLOAT | 用于存储带二进制精度的浮点数。 | |
DOUBLE | 用于存储指明双精度的浮点数。 | |
日期时间 | DATE | 用于存储年、月、日信息。 |
TIME | 用于存储时、分、秒信息。 | |
TIMESTAMP | 用于存储年、月、日、时、分、秒信息。 | |
多媒体 | CLOB | 用于存储变长的二进制大对象,长度最大为2G-1字节。 |
NCLOB | 这种类型能够存储最多4GB的数据。当字符集发生转换时,这种类型会受到影响。 | |
布尔类型 | BOOLEAN | 存储在1个字节中,可以取值为 1、0 或 NULL。 |
DLI数据库迁移时支持的数据类型
源端为DLI数据库时,支持的数据类型如下:
类别 | 类型 | 简要释义 |
|---|---|---|
字符 | CHAR | 用于存储指定定长字符串。 |
VARCHAR | 与CHAR相同。 | |
STRING | 用于存储长字符串类型,其字符串的长度最大为 2G-1,存储长的文本串。 | |
数值 | BIGINT | 用于存储有符号整数,精度为19,标度为0。 |
TINYINT | 用于存储有符号整数,精度为3,标度为0。 | |
SMALLINT | SMALLINT类型的数据占用了两个字节的存储空间,其中一个二进制位表示整数值的正负号,其它15个二进制位表示长度和大小,可以表示-2的15次方~2的15次方-1范围内的所有整数。 | |
INT | 用于存储有符号整数,精度为10,标度为0。 | |
DECIMAL | 带固定精度和小数位数的数值数据类型。 | |
FLOAT | 用于存储带二进制精度的浮点数。 | |
DOUBLE | 用于存储指明双精度的浮点数。 | |
日期时间 | DATE | 用于存储年、月、日信息。 |
TIMESTAMP | 用于存储年、月、日、时、分、秒信息。 | |
布尔类型 | BOOLEAN | 存储在1个字节中,可以取值为 1、0 或 NULL。 |
Elasticsearch/云搜索服务(CSS)数据库迁移时支持的数据类型
源端为Elasticsearch/云搜索服务(CSS)数据库时,支持的数据类型如下:
类别 | 类型 | 简要释义 | 存储格式示例 | MySQL |
|---|---|---|---|---|
字符 | keyword | 用于存储字符串。 | “keyword” | String |
text | 用于存储长字符串类型,其字符串的长度最大为 2G-1,存储长的文本串。 | “long string” | TEXT | |
string | 用于存储长字符串类型,其字符串的长度最大为 2G-1,存储长的文本串。 | “a string” | String | |
整数 | short | 用于存储16位有符号整数,取值范围为-32768至32767。 | 32765 | smallInt |
integer | 用于存储32位有符号整数,取值范围为-231至231-1。 | 3276566 | int | |
long | 用于存储64位有符号整数,取值范围为-263至263-1。 | 3276566666 | BIGINT | |
数值 | double | 64位双精度IEEE 754浮点类型。 | 21.333 | double |
float | 32位单精度IEEE 754浮点类型 。 | 21.333 | double | |
布尔类型 | boolean | 存储在1个字节中,可以取值为 1、0 或 NULL。 | 1 | Boolean |
对象 | object | 扁平化存储对象的字符串。 | {"users.name":["John","Smith"], users.age":[26,28], "users.gender":[1,2]} | TEXT |
嵌套 | nested | 嵌套存储对象的字符串。 | {"users.name" : "John" , "users.age" : 26, "users.gender" : 1} { "users.name" : "Smith", "users.age" : 28, "users.gender" : 2} | TEXT |
日期 | date | 日期格式的字符串。 | “2018-01-13”或“2018-01-13 12:10:30” | DATE或timeStamp |
特殊 | ip | IP地址格式的字符串。 | “192.168.127.100” | String |
数组 | string_array | 全部是字符串的数组。 | [“str”,“str”] | TEXT |
short_array | 全部是16位整数的数组。 | [1,1,1] | TEXT | |
integer_array | 全部是32位整数的数组。 | [1,1,1] | TEXT | |
long_array | 全部是64位整数的数组。 | [1,1,1] | TEXT | |
float_array | 全部是32位浮点数的数组。 | [1.0,1.0,1.0] | TEXT | |
double_array | 全部是64位浮点数的数组。 | [1.0,1.0,1.0] | TEXT | |
范围 | completion | 自动补全的字符串。 | “string” | TEXT |
Doris数据库迁移时支持的数据类型
源端为Doris数据库时,支持的数据类型如下:
类别 | 类型 | 简要释义 |
|---|---|---|
字符串 | CHAR(M) | 范围:char[(length)],定长字符串,长度length范围是1~255,默认为1。 |
VARCHAR(M) | 范围:char(length),变长字符串,长度length范围是1~65535。 | |
数值 | DECIMAL(M,D) | 非压缩浮点数不能是无符号的。在解包小数,每个小数对应于一个字节。 定义显示长度(M)和小数(D)的数量是必需的。 NUMERIC是DECIMAL的同义词。 |
数值类型 | TINYINT | 长度:长度为1个字节的有符号整型。 范围:[-128, 127]。 |
SMALLINT | 长度:长度为2个字节的有符号整型。 范围:[-32768, 32767]。 | |
INT | 长度:长度为4个字节的有符号整型。 范围:[-2147483648, 2147483647]。 | |
BIGINT | 长度:长度为8个字节的有符号整型。 范围:[-9223372036854775808, 9223372036854775807]。 | |
LARGEINT | 长度:长度为16个字节的有符号整型。 范围:[-2^127, 2^127-1]。 | |
FLOAT | 长度:长度为4字节的浮点类型。 范围:-3.40E+38 ~ +3.40E+38。 | |
DOUBLE | 长度:长度为8字节的浮点类型。 范围:-1.79E+308 ~ +1.79E+308。 | |
DECIMAL[M, D] | 保证精度的小数类型。M代表一共有多少个有效数字,D代表小数点后最多有多少数字。M的范围是[1,27],D的范围是[1,9],另外,M必须要大于等于D的取值。默认取值为decimal[10,0]。 precision: 1 ~ 27。 scale: 0 ~ 9。 | |
日期类型 | DATE | 范围:['1000-01-01', '9999-12-31']。默认的打印形式是'YYYY-MM-DD'。 |
DATETIME | 范围:['1000-01-01 00:00:00', '9999-12-31 00:00:00']。默认的打印形式是’YYYY-MM-DD HH:MM:SS’。 | |
特殊类型 | HLL | HLL(HyperLogLog) 类型是一个二进制类型。HLL 类型只能用于聚合类型的表(Aggregation Table),并且必须指定聚合类型为 HLL_UNION。 HLL 类型主要用于非精确快速去重场景下,对数据进行预聚合。 HLL列只能通过配套的 hll_union_agg、hll_cardinality、hll_hash 进行查询或使用。 |
BITMAP | BITMAP 类型是一个二进制类型。BITMAP 类型只能用于聚合类型的表(Aggregation Table),并且必须指定聚合类型为 BITMAP_UNION。 BITMAP 类型主要用于精确去重场景下,对数据进行预聚合。同时也可以用于如用户画像场景存放用户ID等。 BITMAP 列只能通过配套的 BITMAP 函数进行查询和使用。 |
达梦数据库迁移时支持的数据类型
源端为达梦数据库,目的端为Hive、DWS时,支持的数据类型如下:
类别 | 类型 | 简要释义 | 存储格式示例 | Hive | DWS |
|---|---|---|---|---|---|
字符 | CHAR | 用于存储指定定长字符串。 | ‘a’或‘aaaaa’ | CHAR | CHAR |
CHARACTER | 与 CHAR 相同。 | ‘a’或‘aaaaa’ | CHAR | CHAR | |
VARCHAR | 用于存储指定变长字符串. | ‘a’或‘aaaaa’ | VARCHAR | VARCHAR | |
VARCHAR2 | 与 VARCHAR 相同。 | ‘a’或‘aaaaa’ | VARCHAR | VARCHAR | |
数值 | NUMERIC | 用于存储零、正负定点数。 | 52.36 | DECIMAL | NUMERIC |
DECIMAL | 与 NUMERIC 相似。 | 52.36 | DECIMAL | NUMERIC | |
DEC | 与 DECIMAL 相同。 | 52.36 | DECIMAL | NUMERIC | |
INTEGER | 用于存储有符号整数,精度为10,标度为0。 | 5236 | INT | INTEGER | |
INT | 与 INTEGER 相同。 | 5236 | INT | INTEGER | |
BIGINT | 用于存储有符号整数,精度为19,标度为0。 | 5236 | BIGINT | BIGINT | |
TINYINT | 用于存储有符号整数,精度为3,标度为0。 | 100 | TINYINT | SMALLINT | |
SMALLINT | 用于存储有符号整数,精度为5,标度为0。 | 9999 | SMALLINT | SMALLINT | |
BYTE | 与 TINYINT 相似,精度为3,标度为0。 | 100 | TINYINT | SMALLINT | |
BINARY | 用于存储定长二进制数据。 | 0x2A3B4058 | BINARY(NULL) | BYTEA(NULL) | |
VARBINARY | 用于存储可变长二进制数据。 | 0x2A3B4058 | BINARY(NULL) | BYTEA(NULL) | |
FLOAT | 用于存储带二进制精度的浮点数。 | 52.36 | FLOAT | FLOAT8 | |
DOUBLE | 与FLOAT类似。 | 52.36 | DOUBLE | FLOAT8 | |
REAL | 用于存储带二进制精度的浮点数,但它不能由用户指定使用的精度。 | 52.3 | FLOAT | FLOAT4 | |
DOUBLE PRECISION | 用于存储指明双精度的浮点数。 | 52.3 | DOUBLE | FLOAT8 | |
位串 | BIT | 用于存储整数数据 1、0 或 NULL。 | 1、0 或 NULL | TINYINT(1 0 NULL) | BOOLEAN(true false NULL) |
日期时间 | DATE | 用于存储年、月、日信息。 | 1999-10-01'、'1999/10/01'或'1999.10.01' | DATE | TIMESTAMP |
TIME | 用于存储时、分、秒信息。 | '09:10:21'或'9:10:21' | 不支持(String) | TIME | |
TIMESTAMP | 用于存储年、月、日、时、分、秒信息。 | 2002-12-12 09:10:21','2002-12-12 9:10:21' '2002/12/12 09:10:21' 或'2002.12.12 09:10:21' | TIMESTAMP | TIMESTAMP | |
TIME WITH TIME ZONE | 用于存储一个带时区的 TIME 值,其定义是在 TIME 类型的后面加上时区信息。 | '09:10:21 +8:00', '09:10:21+8:00'或'9:10:21+8:00' | 不支持(String) | TIME WITH TIME ZONE | |
TIMESTAMP WITH TIME ZONE | 用于存储一个带时区的 TIMESTAMP 值,其定义是TIMESTAMP类型的后面加上时区信息。 | 2002-12-12 09:10:21 +8:00','2002-12-12 9:10:21 +8:00' '2002/12/12 09:10:21 +8:00'或'2002.12.12 09:10:21 +8:00' | TIMESTAMP | TIMESTAMP WITH TIME ZONE | |
TIMESTAMP WITH LOCAL TIME ZONE | 用于存储一个本地时区的 TIMESTAMP 值,能够将标准时区类型 TIMESTAMP WITH TIME ZONE 类型转化为本地时区类型。 | 2002-12-12 09:10:21 +8:00','2002-12-12 9:10:21 +8:00' '2002/12/12 09:10:21 +8:00'或'2002.12.12 09:10:21 +8:00' | 不支持(String) | 不支持(TEXT) | |
DATETIME WITH TIME ZONE | 同TIMESTAMP WITH TIME ZONE。 | 2002-12-12 09:10:21 +8:00','2002-12-12 9:10:21 +8:00' '2002/12/12 09:10:21 +8:00'或'2002.12.12 09:10:21 +8:00' | TIMESTAMP | TIMESTAMP WITH TIME ZONE | |
INTERVAL YEAR | 描述一个若干年的间隔,引导精度规定了年的取值范围。 | INTERVAL '0015' YEAR | 不支持(String) | 不支持(VARCHAR) | |
INTERVAL YEAR TO MONTH | 描述一个若干年若干月的间隔,引导精度规定了年的取值范围。 | INTERVAL '0015-08' YEAR TO MONTH | 不支持(String) | 不支持(VARCHAR) | |
INTERVAL MONTH | 描述一个若干月的间隔,引导精度规定了月的取值范围。 | INTERVAL '0015' MONTH | 不支持(String) | 不支持(VARCHAR) | |
INTERVAL DAY | 描述一个若干日的间隔,引导精度规定了日的取值范围。 | INTERVAL '150' DAY | 不支持(String) | 不支持(VARCHAR) | |
INTERVAL DAY TO HOUR | 描述一个若干日若干小时的间隔,引导精度规定了日的取值范围。 | INTERVAL '9 23' DAY TO HOUR | 不支持(String) | 不支持(VARCHAR) | |
INTERVAL DAY TO MINUTE | 描述一个若干日若干小时若干分钟的间隔,引导精度规定了日的取值范围。 | INTERVAL '09 23:12' DAY TO MINUTE | 不支持(String) | 不支持(VARCHAR) | |
INTERVAL DAY TO SECOND | 描述一个若干日若干小时若干分钟若干秒的间隔,引导精度规定了日的取值范围。 | INTERVAL '09 23:12:01.1' DAY TO SECOND | 不支持(String) | 不支持(VARCHAR) | |
INTERVAL HOUR | 描述一个若干小时的间隔,引导精度规定了小时的取值范围。 | INTERVAL '150' HOUR | 不支持(String) | 不支持(VARCHAR) | |
INTERVAL HOUR TO MINUTE | 描述一个若干小时若干分钟的间隔,引导精度规定了小时的取值范围。 | INTERVAL '23:12' HOUR TO MINUTE | 不支持(String) | 不支持(VARCHAR) | |
INTERVAL HOUR TO SECOND | 描述一个若干小时若干分钟若干秒的间隔,引导精度规定了小时的取值范围。 | INTERVAL '23:12:01.1' HOUR TO SECOND | 不支持(String) | 不支持(VARCHAR) | |
INTERVAL MINUTE | 描述一个若干分钟的间隔,引导精度规定了分钟的取值范围。 | INTERVAL '150' MINUTE | 不支持(String) | 不支持(VARCHAR) | |
INTERVAL MINUTE TO SECOND | 描述一个若干分钟若干秒的间隔,引导精度规定了分钟的取值范围。 | INTERVAL '12:01.1' MINUTE TO SECOND | 不支持(String) | 不支持(VARCHAR) | |
INTERVAL SECOND | 描述一个若干秒的间隔,引导精度规定了秒整数部分的取值范围。 | INTERVAL '51.1' SECOND | 不支持(String) | 不支持(VARCHAR) | |
多媒体 | IMAGE | IMAGE 用于指明多媒体信息中的图像类型。 图像由不定长的像素点阵组成,长度最大为 2G-1 字节。该类型除了存储图像数据之外,还可用于存储任何其它二进制数据。 | 0x2A3B4058 (二进制数据) | 不支持 | 不支持 |
LONGVARBINARY | 与IMAGE相同。 | 0x2A3B4059 (二进制数据) | 不支持 | 不支持 | |
TEXT | 用于存储长字符串类型,其字符串的长度 最大为 2G-1,存储长的文本串。 | 0x5236(二进制数据) | 不支持 | 不支持 | |
LONGVARCHAR | 与 TEXT 相似。 | 0x5236(二进制数据) | 不支持 | 不支持 | |
BLOB | 用于存储变长的二进制大对象,长度最大为2G-1字节。 | 0x5236(二进制数据) | 不支持 | 不支持 | |
CLOB | 用于存储变长的二进制大对象,长度最大为2G-1字节。 | 0x5236(二进制数据) | 不支持 | 不支持 | |
BFILE | 用于指明存储在操作系统中的二进制文件, 文件存储在操作系统而非数 据库中,仅能进行只读访问。 | - | 不支持 | 不支持 |

