更新时间:2022-04-26 GMT+08:00
分享

支持的数据源

批量数据迁移有两种迁移方式,支持的数据源有所不同:

表/文件迁移支持的数据源类型

表/文件迁移可以实现表或文件级别的数据迁移。支持的数据源具体说明如下:
  • 表/文件迁移支持的数据源可以分为数据湖、云关系数据库和其他数据源。具体支持情况如表1所示。
    表1 表/文件迁移支持的数据源

    源端数据源

    目的端数据源

    分类

    数据源

    支持版本

    说明

    支持的目的端数据源

    数据湖

    数据仓库服务(DWS)

    -

    不支持DWS物理机纳管模式。

    • 数据湖
    • 云关系数据库
    • 其他数据源中的OBS

    数据湖探索(DLI)

    -

    -

    MRS Hive

    暂不支持2.x版本,建议使用版本:
    • 1.2.X
    • 3.1.X
    • 仅支持Hadoop集群本地存储,不支持存算分离场景。
    • 不支持Ranger场景。
    • 不支持ZK开启SSL场景。

    MRS Hbase

    建议使用版本:
    • 2.1.X
    • 1.3.X

    MRS HDFS

    建议使用版本:
    • 2.8.X
    • 3.1.X

    MRS Kafka

    -

    • 不支持其他数据源导入到MRS Kafka。
    • 仅支持Hadoop集群本地存储,不支持存算分离场景。
    • 不支持Ranger场景。
    • 不支持ZK开启SSL场景。

    表格存储服务(CloudTable)

    -

    -

    数据接入服务(DIS)

    -

    • DIS仅支持导出数据到云搜索服务。
    • 不支持其他数据源导入到DIS。

    Elasticsearch

    -

    • 仅支持非安全模式Elasticsearch。
    • 不支持其他数据源导入到Elasticsearch。

    云搜索服务(CSS)

    -

    导入数据到CSS推荐使用Logstash,请参见使用Logstash导入数据到Elasticsearch

    云关系数据库

    云数据库 MySQL

    -

    • 云数据库 MySQL不支持SSL模式。
    • 云关系数据库之间的迁移推荐通过数据复制服务DRS进行迁移。
    • 数据湖
    • 云关系数据库

    云数据库 PostgreSQL

    -

    云数据库 SQL Server

    2005以上

    其他

    FusionInsight Hive

    暂不支持2.x版本,建议使用版本:
    • 1.2.X
    • 3.1.X
    • 仅支持Hadoop集群本地存储,不支持存算分离场景。
    • 不支持Ranger场景。
    • 不支持ZK开启SSL场景。
    • 数据湖

    FusionInsight HBase

    建议使用版本:
    • 2.1.X
    • 1.3.X

    FusionInsight HDFS

    建议使用版本:
    • 2.8.X
    • 3.1.X

    Apache Hive

    暂不支持2.x版本,建议使用版本:
    • 1.2.X
    • 3.1.X
    • 仅支持Hadoop集群本地存储,不支持存算分离场景。
    • 不支持Ranger场景。
    • 不支持ZK开启SSL场景。

    Apache HBase

    建议使用版本:
    • 2.1.X
    • 1.3.X

    Apache HDFS

    建议使用版本:
    • 2.8.X
    • 3.1.X

    对象存储服务(OBS)

    -

    对象存储服务之间的迁移场景,推荐使用对象存储迁移服务OMS。

    FTP

    -

    文件系统到OBS的迁移推荐使用obsutil工具,请参见obsutil简介

    SFTP

    -

    HTTP

    -

    HTTP仅支持导出数据到MRS HDFS。

    MySQL

    -

    OLTP数据库之间的迁移场景,推荐使用数据复制服务DRS。

    SAP HANA数据源存在如下约束:
    • 仅支持2.00.050.00.1592305219版本。
    • 仅支持Generic Edition。
    • 不支持BW/4 FOR HANA。
    • 仅支持英文字母的数据库名、表名与列名,不支持存在空格、符号等特殊字符。
    • 仅支持日期、数字、布尔、字符(除SHORTTEXT) 类型的数据类型,不支持二进制类型等其他数据类型。
    • 迁移时不支持目的端自动建表。

    PostgreSQL

    -

    Microsoft SQL Server

    2005以上

    Oracle

    -

    SAP HANA

    -

    分布式缓存服务(DCS)

    -

    • DCS不支持导出到其他数据源。
    • 仅支持MRS Hive\HBase\HDFS\Kafka到DCS迁移。
    • Redis到DCS的迁移,可以通过其他方式进行,请参见自建Redis迁移至DCS

    Redis

    -

    • Redis仅支持导出数据到MRS Hive\HBase\HDFS\Kafka。
    • Redis到DCS的迁移,可以通过其他方式进行,请参见自建Redis迁移至DCS

    MongoDB

    -

    MongoDB仅支持导出数据到MRS Hive\HBase\HDFS\Kafka。

    Cassandra

    -

    -

    Apache Kafka

    -

    Apache Kafka仅支持导出数据到云搜索服务。

    DMS Kafka

    -

    DMS Kafka仅支持导出数据到云搜索服务。

  • 如下数据源的迁移能力尚未商用,如果您有如下数据源需要作为源端的迁移需求,请联系客服或技术支持人员开放白名单进行体验。
    • FusionInsightLibrA
    • 阿里云对象存储(OSS)
    • 七牛云对象存储(KODO)
    • 亚马逊对象存储(S3)
    • 腾讯云对象存储(COS)
    • IBM Db2
    • MYCAT
    • 文档数据库服务(DDS)
    • CloudTable OpenTSDB

整库迁移支持的数据源类型

整库迁移适用于将本地数据中心或在ECS上自建的数据库,同步到云上的数据库服务或大数据服务中,适用于数据库离线迁移场景,不适用于在线实时迁移。

批量数据迁移支持整库迁移的数据源如表2所示。

表2 整库迁移支持的数据源

数据源分类

数据源

读取

写入

说明

数据仓库

数据仓库服务(DWS)

支持

支持

-

FusionInsight LibrA

支持

不支持

-

Hadoop

(仅支持本地存储,不支持存算分离场景,不支持Ranger场景,不支持ZK开启SSL场景)

MRS HBase

支持

支持

整库迁移仅支持导出到MRS HBase。

建议使用的版本:
  • 2.1.X
  • 1.3.X

MRS Hive

支持

支持

整库迁移仅支持导出到关系型数据库。

暂不支持2.x版本,建议使用的版本:
  • 1.2.X
  • 3.1.X

FusionInsight HBase

支持

不支持

建议使用的版本:
  • 2.1.X
  • 1.3.X

FusionInsight Hive

支持

不支持

整库迁移仅支持导出到关系型数据库。

暂不支持2.x版本,建议使用的版本:
  • 1.2.X
  • 3.1.X

Apache HBase

支持

不支持

建议使用的版本:
  • 2.1.X
  • 1.3.X

Apache Hive

支持

不支持

整库迁移仅支持导出到关系型数据库。

暂不支持2.x版本,建议使用的版本:
  • 1.2.X
  • 3.1.X

关系数据库

云数据库 MySQL

支持

支持

不支持OLTP到OLTP迁移,此场景推荐通过数据复制服务DRS进行迁移。

云数据库 PostgreSQL

支持

支持

云数据库 SQL Server

支持

支持

MySQL

支持

不支持

PostgreSQL

支持

不支持

Microsoft SQL Server

支持

不支持

Oracle

支持

不支持

IBM Db2

支持

不支持

SAP HANA

支持

不支持

  • 仅支持2.00.050.00.1592305219版本。
  • 仅支持Generic Edition。
  • 不支持BW/4 FOR HANA。
  • 仅支持英文字母的数据库名、表名与列名,不支持存在空格、符号等特殊字符。
  • 仅支持日期、数字、布尔、字符(除SHORTTEXT) 类型的数据类型,不支持二进制类型等其他数据类型。
  • 迁移时不支持目的端自动建表。

MYCAT

支持

不支持

-

达梦数据库 DM

支持

不支持

仅支持导出到DWS、Hive

NoSQL

分布式缓存服务(DCS)

不支持

支持

仅支持MRS到DCS迁移。

文档数据库服务(DDS)

支持

支持

仅支持DDS和MRS之间迁移。

表格存储服务(CloudTable)

支持

支持

-

开源MySQL数据库迁移时支持的数据类型

源端为开源MySQL数据库,目的端为Hive、DWS时,支持的数据类型如下:

表3 开源MySQL数据库作为源端时支持的数据类型

类别

类型

简要释义

存储格式示例

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时对应NUMBERIC

NUMBERIC

与 DECIMAL 相同

-

DECIMAL

NUMBERIC

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(二进制数据)

不支持

BYTEA

TINYBLOB

0-255字节短文本二进制字符串

-

-

BYTEA

MEDIUMBLOB

0-167772154字节中等长度文本二进制字符串

-

-

BYTEA

LONGBLOB

0-4294967295字节极大长度文本二进制字符串

0x5236(二进制数据)

不支持

BYTEA

特殊类型

SET

SET是一个字符串对象,可以有零或多个值,其值来自表创建时规定的允许的一列值。指定包括多个SET成员的SET列值时各成员之间用逗号(‘,’)间隔开。这样SET成员值本身不能包含逗号。

-

-

不支持

JSON

-

-

不支持

不支持(TEXT)

ENUM

当定义一个ENUM,要创建它的值的列表,这些是必须用于选择的项(也可以是NULL)。例如,如果想要字段包含“A”或“B”或“C”,那么可以定义为ENUM为 ENUM(“A”,“B”,“C”)也只有这些值(或NULL)才能用来填充这个字段。

-

不支持

不支持

Oracle数据库迁移时支持的数据类型

源端为Oracle数据库,目的端为Hive、DWS时,支持的数据类型如下:

表4 Oracle数据库作为源端时支持的数据类型

类别

类型

简要释义

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包含要进行字符集转换的信息。这种数据类型很适合存储纯文本信息。

不支持

不支持

nclob

这种类型能够存储最多4GB的数据。当字符集发生转换时,这种类型会受到影响。

不支持

不支持

bfile

可以在数据库列中存储一个oracle目录对象和一个文件名,我们可以通过它来读取这个文件。

不支持

不支持

其他类型

rowid

实际上是数据库表中行的地址,它有10字节长。

不支持

不支持

urowid

是一个通用的rowid,没有固定的rowid的表。

不支持

不支持

SQL Server数据库迁移时支持的数据类型

源端为SQL Server数据库,目的端为Hive、DWS、Oracle时,支持的数据类型如下:

表5 SQL Server数据库作为源端时支持的数据类型

类别

类型

简要释义

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

不支持

timestamp

时间戳数据类型

TIMESTAMP

TIMESTAMP

TIMESTAMP

datetimeoffset

用于定义一个采用24小时制与日期相组合并可识别时区的时间。

不支持(String)

TIMESTAMP

不支持

多媒体数据类型

(二进制)

text

用于存储文本数据。

不支持(String)

不支持(String)

不支持

netxt

与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。

不支持

不支持

不支持

分享:

    相关文档

    相关产品

关闭导读