数据集成有两种迁移方式,支持的数据源有所不同:
- 表/文件迁移:适用于数据入湖和数据上云场景下,表或文件级别的数据迁移,请参见表/文件迁移支持的数据源类型。
- 整库迁移:适用于数据入湖和数据上云场景下,离线或自建数据库整体迁移场景,请参见整库迁移支持的数据源类型。
- 另外,本章还列举了一些常见数据库迁移时所支持的数据类型,请参见开源MySQL数据库迁移时支持的数据类型、Oracle数据库迁移时支持的数据类型和SQL Server数据库迁移时支持的数据类型。
表/文件迁移支持的数据源类型
表/文件迁移可以实现表或文件级别的数据迁移。
表/文件迁移时支持的数据源详见下表
数据源分类 | 源端数据源 | 对应的目的端数据源 | 说明 |
---|---|---|---|
数据仓库 | 数据仓库服务(DWS) | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server,MySQL,PostgreSQL,Microsoft SQL Server,Oracle NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
不支持DWS物理机纳管模式。 |
数据仓库 | 数据湖探索(DLI) | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server,MySQL,PostgreSQL,Microsoft SQL Server,Oracle NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
无 |
Hadoop | MRS HDFS | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server,MySQL,PostgreSQL,Microsoft SQL Server,Oracle NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
支持本地存储,仅MRS Hive支持存算分离场景。 仅MRS Hive支持Ranger场景。 不支持ZK开启SSL场景。 MRS HDFS建议使用的版本: −2.8.X −3.1.X MRS HBase建议使用的版本: −2.1.X −1.3.X MRS Hive暂不支持2.x版本,建议使用的版本: −1.2.X −3.1.X |
Hadoop | MRS HBase | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server,MySQL,PostgreSQL,Microsoft SQL Server,Oracle NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
支持本地存储,仅MRS Hive支持存算分离场景。 仅MRS Hive支持Ranger场景。 不支持ZK开启SSL场景。 MRS HDFS建议使用的版本: −2.8.X −3.1.X MRS HBase建议使用的版本: −2.1.X −1.3.X MRS Hive暂不支持2.x版本,建议使用的版本: −1.2.X −3.1.X |
Hadoop | MRS Hive | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server,MySQL,PostgreSQL,Microsoft SQL Server,Oracle NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
支持本地存储,仅MRS Hive支持存算分离场景。 仅MRS Hive支持Ranger场景。 不支持ZK开启SSL场景。 MRS HDFS建议使用的版本: −2.8.X −3.1.X MRS HBase建议使用的版本: −2.1.X −1.3.X MRS Hive暂不支持2.x版本,建议使用的版本: −1.2.X −3.1.X |
Hadoop | FusionInsight HDFS | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
FusionInsight数据源不支持作为目的端。 仅支持本地存储,不支持存算分离场景。 不支持Ranger场景。 不支持ZK开启SSL场景。 FusionInsight HDFS建议使用的版本: −2.8.X −3.1.X FusionInsight HBase建议使用的版本: −2.1.X −1.3.X FusionInsight Hive建议使用的版本: −1.2.X −3.1.X |
Hadoop | FusionInsight HBase | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
FusionInsight数据源不支持作为目的端。 仅支持本地存储,不支持存算分离场景。 不支持Ranger场景。 不支持ZK开启SSL场景。 FusionInsight HDFS建议使用的版本: −2.8.X −3.1.X FusionInsight HBase建议使用的版本: −2.1.X −1.3.X FusionInsight Hive建议使用的版本: −1.2.X −3.1.X |
Hadoop | FusionInsight Hive | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
FusionInsight数据源不支持作为目的端。 仅支持本地存储,不支持存算分离场景。 不支持Ranger场景。 不支持ZK开启SSL场景。 FusionInsight HDFS建议使用的版本: −2.8.X −3.1.X FusionInsight HBase建议使用的版本: −2.1.X −1.3.X FusionInsight Hive建议使用的版本: −1.2.X −3.1.X |
Hadoop | Apache HBase | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
Apache数据源不支持作为目的端。 仅支持本地存储,不支持存算分离场景。 不支持Ranger场景。 不支持ZK开启SSL场景。 Apache HBas建议使用的版本: −2.1.X −1.3.X Apache Hive暂不支持2.x版本,建议使用的版本: −1.2.X −3.1.X Apache HDFS建议使用的版本: −2.8.X −3.1.X |
Hadoop | Apache Hive | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
Apache数据源不支持作为目的端。 仅支持本地存储,不支持存算分离场景。 不支持Ranger场景。 不支持ZK开启SSL场景。 Apache HBas建议使用的版本: −2.1.X −1.3.X Apache Hive暂不支持2.x版本,建议使用的版本: −1.2.X −3.1.X Apache HDFS建议使用的版本: −2.8.X −3.1.X |
Hadoop | Apache HDFS | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
Apache数据源不支持作为目的端。 仅支持本地存储,不支持存算分离场景。 不支持Ranger场景。 不支持ZK开启SSL场景。 Apache HBas建议使用的版本: −2.1.X −1.3.X Apache Hive暂不支持2.x版本,建议使用的版本: −1.2.X −3.1.X Apache HDFS建议使用的版本: −2.8.X −3.1.X |
对象存储 | 对象存储服务(OBS) | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
对象存储服务之间的迁移,推荐使用对象存储迁移服务OMS。 |
文件系统 | FTP | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
文件系统不支持作为目的端。 FTP/SFTP到搜索的迁移仅支持如CSV等文本文件,不支持二进制文件。 文件系统到OBS的迁移推荐使用obsutil工具。 |
文件系统 | SFTP | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
文件系统不支持作为目的端。 FTP/SFTP到搜索的迁移仅支持如CSV等文本文件,不支持二进制文件。 文件系统到OBS的迁移推荐使用obsutil工具。 |
文件系统 | HTTP | Hadoop:MRS HDFS | 文件系统不支持作为目的端。 FTP/SFTP到搜索的迁移仅支持如CSV等文本文件,不支持二进制文件。 文件系统到OBS的迁移推荐使用obsutil工具。 |
关系型数据库 | 云数据库MySQL | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) NoSQL:表格存储服务(CloudTable) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server 搜索:Elasticsearch,云搜索服务(CSS) |
OLTP数据库之间的迁移推荐通过数据复制服务DRS进行迁移。 云数据库 MySQL不支持SSL模式。 Microsoft SQL Server建议使用的版本:2005以上。 |
关系型数据库 | 云数据库PostgreSQL | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) NoSQL:表格存储服务(CloudTable) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server 搜索:Elasticsearch,云搜索服务(CSS) |
OLTP数据库之间的迁移推荐通过数据复制服务DRS进行迁移。 云数据库 MySQL不支持SSL模式。 Microsoft SQL Server建议使用的版本:2005以上。 |
关系型数据库 | 云数据库SQL Server | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) NoSQL:表格存储服务(CloudTable) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server 搜索:Elasticsearch,云搜索服务(CSS) |
OLTP数据库之间的迁移推荐通过数据复制服务DRS进行迁移。 云数据库 MySQL不支持SSL模式。 Microsoft SQL Server建议使用的版本:2005以上。 |
关系型数据库 | MySQL | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
OLTP数据库之间的迁移推荐通过数据复制服务DRS进行迁移。 云数据库 MySQL不支持SSL模式。 Microsoft SQL Server建议使用的版本:2005以上。 |
关系型数据库 | PostgreSQL | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
OLTP数据库之间的迁移推荐通过数据复制服务DRS进行迁移。 云数据库 MySQL不支持SSL模式。 Microsoft SQL Server建议使用的版本:2005以上。 |
关系型数据库 | Microsoft SQL Server | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
OLTP数据库之间的迁移推荐通过数据复制服务DRS进行迁移。 云数据库 MySQL不支持SSL模式。 Microsoft SQL Server建议使用的版本:2005以上。 |
关系型数据库 | Oracle | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
OLTP数据库之间的迁移推荐通过数据复制服务DRS进行迁移。 云数据库 MySQL不支持SSL模式。 Microsoft SQL Server建议使用的版本:2005以上。 |
关系型数据库 | SAP HANA | 数据仓库:数据湖探索(DLI) Hadoop:MRS Hive |
SAP HANA数据源存在如下约束:SAP HANA不支持作为目的端。 仅支持2.00.050.00.1592305219版本。 仅支持Generic Edition。不支持BW/4 FOR HANA。 仅支持英文字母的数据库名、表名与列名,不支持存在空格、符号等特殊字符。 仅支持日期、数字、布尔、字符(除SHORTTEXT) 类型的数据类型,不支持二进制类型等其他数据类型。 迁移时不支持目的端自动建表。 |
关系型数据库 | 分库 | 数据仓库:数据湖探索(DLI) Hadoop:MRS HBase,MRS Hive 搜索:Elasticsearch,云搜索服务(CSS) 对象存储:对象存储服务(OBS) |
分库数据源不支持作为目的端。 |
NoSQL | 分布式缓存服务(DCS) | Hadoop:MRS HDFS,MRS HBase,MRS Hive | 除了表格存储服务(CloudTable)外,其他NoSQL数据源不支持作为目的端。 |
NoSQL | Redis | Hadoop:MRS HDFS,MRS HBase,MRS Hive | 除了表格存储服务(CloudTable)外,其他NoSQL数据源不支持作为目的端。 |
NoSQL | 文档数据库服务(DDS) | Hadoop:MRS HDFS,MRS HBase,MRS Hive | 除了表格存储服务(CloudTable)外,其他NoSQL数据源不支持作为目的端。 |
NoSQL | MongoDB | Hadoop:MRS HDFS,MRS HBase,MRS Hive | 除了表格存储服务(CloudTable)外,其他NoSQL数据源不支持作为目的端。 |
NoSQL | 表格存储服务(CloudTable) | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server,MySQL,PostgreSQL,Microsoft SQL Server,Oracle NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
除了表格存储服务(CloudTable)外,其他NoSQL数据源不支持作为目的端。 |
NoSQL | Cassandra | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
除了表格存储服务(CloudTable)外,其他NoSQL数据源不支持作为目的端。 |
消息系统 | Apache Kafka | 搜索:云搜索服务(CSS) | 消息系统不支持作为目的端。 |
消息系统 | DMS Kafka | 搜索:云搜索服务(CSS) | 消息系统不支持作为目的端。 |
消息系统 | MRS Kafka | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
MRS Kafka不支持作为目的端。 仅支持本地存储,不支持存算分离场景。 不支持Ranger场景。不支持ZK开启SSL场景。 |
搜索 | Elasticsearch | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
Elasticsearch仅支持非安全模式。 |
搜索 | 云搜索服务(CSS) | 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server NoSQL:表格存储服务(CloudTable) 搜索:Elasticsearch,云搜索服务(CSS) |
导入数据到CSS推荐使用Logstash。 |
说明上表中非云服务的数据源,例如MySQL,既可以支持用户本地数据中心自建的MySQL,也可以是用户在ECS上自建的MySQL,还可以是第三方云的MySQL服务。
整库迁移支持的数据源类型
整库迁移适用于将本地数据中心或在ECS上自建的数据库,同步到云上的数据库服务或大数据服务中,适用于数据库离线迁移场景,不适用于在线实时迁移。
数据集成支持整库迁移的数据源详见下表
数据源分类 | 数据源 | 读取 | 写入 | 说明 |
---|---|---|---|---|
数据仓库 | 数据仓库服务(DWS) | 支持 | 支持 | - |
数据仓库 | FusionInsight LibrA | 支持 | 不支持 | - |
Hadoop (仅支持本地存储,不支持存算分离场景,不支持Ranger场景,不支持ZK开启SSL场景) | MRS HBase | 支持 | 支持 | 整库迁移仅支持导出到MRS HBase。 建议使用的版本: 2.1.X 1.3.X |
Hadoop (仅支持本地存储,不支持存算分离场景,不支持Ranger场景,不支持ZK开启SSL场景) | MRS Hive | 支持 | 支持 | 整库迁移仅支持导出到关系型数据库。 暂不支持2.x版本,建议使用的版本: 1.2.X 3.1.X |
Hadoop (仅支持本地存储,不支持存算分离场景,不支持Ranger场景,不支持ZK开启SSL场景) | FusionInsight HBase | 支持 | 不支持 | 建议使用的版本: 2.1.X 1.3.X |
Hadoop (仅支持本地存储,不支持存算分离场景,不支持Ranger场景,不支持ZK开启SSL场景) | FusionInsight Hive | 支持 | 不支持 | 整库迁移仅支持导出到关系型数据库。 暂不支持2.x版本,建议使用的版本: 1.2.X 3.1.X |
Hadoop (仅支持本地存储,不支持存算分离场景,不支持Ranger场景,不支持ZK开启SSL场景) | Apache HBase | 支持 | 不支持 | 建议使用的版本: 2.1.X 1.3.X |
Hadoop (仅支持本地存储,不支持存算分离场景,不支持Ranger场景,不支持ZK开启SSL场景) | Apache Hive | 支持 | 不支持 | 整库迁移仅支持导出到关系型数据库。 暂不支持2.x版本,建议使用的版本: 1.2.X 3.1.X |
关系数据库 | 云数据库MySQL | 支持 | 支持 | 不支持OLTP到OLTP迁移,此场景推荐通过数据复制服务DRS进行迁移。 |
关系数据库 | 云数据库PostgreSQL | 支持 | 支持 | |
关系数据库 | 云数据库SQL Server | 支持 | 支持 | |
关系数据库 | MySQL | 支持 | 不支持 | |
关系数据库 | PostgreSQL | 支持 | 不支持 | |
关系数据库 | Microsoft SQL Server | 支持 | 不支持 | |
关系数据库 | Oracle | 支持 | 不支持 | |
关系数据库 | SAP HANA | 支持 | 不支持 | 仅支持2.00.050.00.1592305219版本。 仅支持Generic Edition。 不支持BW/4 FOR HANA。 仅支持英文字母的数据库名、表名与列名,不支持存在空格、符号等特殊字符。 仅支持日期、数字、布尔、字符(除SHORTTEXT) 类型的数据类型,不支持二进制类型等其他数据类型。 迁移时不支持目的端自动建表。 |
关系数据库 | 达梦数据库DM | 支持 | 不支持 | 仅支持导出到DWS、Hive |
NoSQL | 分布式缓存服务(DCS) | 不支持 | 支持 | 仅支持MRS到DCS迁移。 |
NoSQL | 文档数据库服务(DDS) | 支持 | 支持 | 仅支持DDS和MRS之间迁移。 |
NoSQL | 表格存储服务(CloudTable) | 支持 | 支持 |
开源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时对应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时,支持的数据类型详见下表
类别 | 类型 | 简要释义 | 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时,支持的数据类型详见下表
类别 | 类型 | 简要释义 | 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 |
不支持 | 不支持 | 不支持 | |
cursor | 游标数据类型。 | 不支持 | 不支持 | 不支持 | |
sql_variant | 用于存储除文本,图形数据和timestamp数据外的其它任何合法的Sql Server数据,可以方便Sql Server的开发工作。 | 不支持 | 不支持 | 不支持 | |
table | 用于存储对表或视图处理后的结果集。 | 不支持 | 不支持 | 不支持 | |
xml | 存储xml数据的数据类型。可以在列中或者xml类型的变量中存储xml实例。存储的xml数据类型表示实例大小不能超过2GB。 | 不支持 | 不支持 | 不支持 |