Oracle与StarRocks字段类型映射
Migration会根据源端的字段类型按默认规则转换成目的端字段类型,并以此完成自动建表和实时同步。
字段类型映射规则
当源端为Oracle,目的端为StarRocks时,支持的字段类型请参见下表,以确保数据完整同步到目的端。
类别 |
数据类型(Oracle) |
数据类型(StarRocks) |
说明 |
---|---|---|---|
字符串 |
CHAR(M) |
CHAR(M) |
定长字符串,空格填充。 |
NCHAR(M) |
CHAR(M) |
定长字符串,空格填充。 |
|
VARCHAR2(M) |
VARCHAR(M) |
变长字符串。 |
|
NVARCHAR2(M) |
VARCHAR(M) |
变长字符串。 |
|
ROWID |
STRING |
变长字符串。 |
|
UROWID |
STRING |
变长字符串。 |
|
数值 |
NUMBER(M,D) |
DECIMAL(M,D)/STRING |
可选择精度的精确数字。 目标端配置-高级配置可设置参数targetVersion指定StarRocks版本号。 当targetVersion >= 1.18.0时, M最大值为38。 当targetVersion < 1.18.0时,M最大值为27。 当M超过最大值时,由STRING承载。 |
DECIMAL(M,D) |
DECIMAL(M,D)/STRING |
与NUMBER等效。 |
|
NUMERIC(M,D) |
DECIMAL(M,D)/STRING |
与NUMBER等效。 |
|
FLOAT |
DOUBLE/STRING |
当M > 53时,Oracle FLOAT精度超过Doris DOUBLE类型精度,由STRING承载。 当M <= 53时,为DOUBLE。 |
|
BINARY_FLOAT |
FLOAT |
单精度浮点数(4字节)。 |
|
BINARY_DOUBLE |
DOUBLE |
双精度浮点数(8字节)。 |
|
日期时间 |
DATE |
DATETIME |
日期时间。 |
TIMESTAMP(M) |
DATETIME/STRING |
日期时间 M <= 6时,为DATETIME。 M > 6,为STRING。 |
|
TIMESTAMP(M) WITH TIME ZONE |
DATETIME/STRING |
日期时间。 M <= 6时,为DATETIME。 M > 6,为STRING。 |
|
TIMESTAMP(M) WITH LOCAL TIME ZONE |
DATETIME/STRING |
日期时间。 M <= 6时,为DATETIME。 M > 6,为STRING。 |
|
二进制 |
BLOB |
VARCHAR(M) |
目标端配置-高级配置可设置参数targetVersion指定StarRocks版本号。 targetVersion >= 3.0.0,将转换为VARBINARY,M = 1048576。 targetVersion < 3.0.0 且 targetVersion >= 2.1,将转换为VARCHAR,M = 1048576。 targetVersion < 2.1时,将转换为VARCHAR,M = 65533。 |
CLOB |
VARCHAR(M) |
同BLOB。 |
|
NCLOB |
VARCHAR(M) |
同BLOB。 |
|
RAW |
VARCHAR(M) |
同BLOB。 |
|
LONG |
VARCHAR(M) |
同BLOB。 |
|
LONG RAW |
VARCHAR(M) |
同BLOB。 |