云数据迁移(Cloud Data Migration,CDM)提供同构/异构数据源之间批量数据迁移服务,帮助客户实现数据自由流动。支持客户自建和公有云上的文件系统,关系数据库,数据仓库,NoSQL,大数据云服务,对象存储等数据源。数据库
CDM服务基于分布式计算框架,利用并行化处理技术,支持用户稳定高效地对海量数据进行移动,实现不停服数据迁移,快速构建所需的数据架构。缓存
图1 CDM定位 安全
支持批量迁移表或者文件,还支持同构/异构数据库之间整库迁移,一个做业便可迁移几百张表。服务器
支持文件增量迁移、关系型数据库增量迁移、HBase/CloudTable增量迁移,以及使用Where条件配合时间变量函数实现增量数据迁移。网络
支持当CDM做业执行失败时,将数据回滚到做业开始以前的状态,自动清理目的表中的数据。架构
支持去隐私、字符串操做、日期操做等经常使用字段的数据转换功能。框架
在迁移文件到文件系统时,CDM支持对写入云端的文件进行加密。运维
支持使用MD5校验,检查端到端文件的一致性,并输出校验结果。分布式
支持将迁移过程当中处理失败的、被清洗过滤掉的、不符合字段转换或者不符合清洗规则的数据单独归档到脏数据日志中,便于用户查看。并支持设置脏数据比例阈值,来决定任务是否成功。ide
用户在云上进行数据集成、数据备份、新应用开发时,常常会涉及到数据迁移。一般状况下用户要进行数据迁移,会开发一些数据迁移脚本,从源端读取数据再写入目的端,相对这样传统的作法,CDM的优点如 表1 所示。
优点项 |
用户自行开发 |
CDM |
---|---|---|
易使用 |
自行准备服务器资源,安装配置必要的软件并进行配置,等待时间长。 程序在读写两端会根据数据源类型,使用不一样的访问接口,通常是数据源提供的对外接口,例如JDBC、原生API等,所以在开发脚本时须要依赖大量的库、SDK等,开发管理成本较高。 |
CDM提供了Web化的管理控制台,经过Web页实时开通服务。 用户只须要经过可视化界面对数据源和迁移任务进行配置,服务会对数据源和任务进行全面的管理和维护,用户只需关注数据迁移的具体逻辑,而不用关心环境等问题,极大下降了开发维护成本。 CDM还提供了REST API,支持第三方系统调用和集成。 |
实时监控 |
须要自行选型开发。 |
您可使用云监控服务监控您的CDM集群,执行自动实时监控、告警和通知操做,帮助您更好地了解CDM集群的各项性能指标。 |
免运维 |
须要自行开发完善运维功能,自行保证系统可用性,尤为是告警及通知功能,不然只能人工值守。 |
使用CDM服务,用户不须要维护服务器、虚拟机等资源。CDM的日志,监控和告警功能,有异常能够及时通知相关人员,避免7*24小时人工值守。 |
高效率 |
在迁移过程当中,数据读写过程都是由一个单一任务完成的,受限于资源,总体性能较低,对于海量数据场景每每不能知足要求。 |
CDM任务基于分布式计算框架,自动将任务切分为独立的子任务并行执行,可以极大提升数据迁移的效率。针对Hive、HBase、MySQL、DWS(数据仓库服务)数据源,使用高效的数据导入接口导入数据。 |
多种数据源支持 |
数据源类型繁杂,针对不一样数据源开发不一样的任务,脚本数量成千上万。 |
支持数据库、Hadoop、NoSQL、数据仓库、文件等多种类型的数据源,具体数据类型请参见 CDM支持的数据源 。 |
多种网络环境支持 |
随着云计算技术的发展,用户数据可能存在于各类环境中,例如公有云、自建/托管IDC、混合场景等。在异构环境中进行数据迁移须要考虑网络连通性等因素,给开发和维护都带来较大难度。 |
不管数据是在用户本地自建的IDC中(Internet Data Center,互联网数据中心)、云服务中、第三方云中,或者使用ECS自建的数据库或文件系统中,CDM都可帮助用户轻松应对各类数据迁移场景,包括数据上云,云上数据交换,以及云上数据回流本地业务系统。 |
CDM有两种迁移方式,支持的数据源不相同:
表/文件迁移时支持的数据源如 表1 所示。
数据源分类 |
数据源 |
做为源端 |
做为目的端 |
---|---|---|---|
数据仓库 |
数据仓库服务(DWS) |
支持 |
支持 |
数据湖探索(DLI) |
不支持 |
支持 |
|
FusionInsight LibrA |
支持 |
支持 |
|
Hadoop |
MRS HDFS |
支持 |
支持 |
MRS HBase |
支持 |
支持 |
|
MRS Hive |
支持 |
支持 |
|
FusionInsight HDFS |
支持 |
支持 |
|
Apache HDFS |
支持 |
支持 |
|
Hadoop HBase |
支持 |
支持 |
|
FusionInsight HBase |
支持 |
支持 |
|
对象存储 |
对象存储服务(OBS) |
支持 |
支持 |
阿里云对象存储(OSS) |
支持 |
不支持 |
|
七牛云对象存储(KODO) |
支持 |
不支持 |
|
亚马逊对象存储S3 |
支持 |
不支持 |
|
文件系统 |
FTP |
支持 |
支持 |
SFTP |
支持 |
支持 |
|
HTTP |
支持 |
不支持 |
|
网络附加存储(NAS) |
支持 |
支持 |
|
弹性文件服务(SFS Turbo) |
支持 |
支持 |
|
关系数据库 |
云数据库 MySQL |
支持 |
支持 |
云数据库 PostgreSQL |
支持 |
支持 |
|
云数据库 SQL Server |
支持 |
支持 |
|
分布式数据库中间件(DDM) |
支持 |
支持 |
|
MySQL |
支持 |
支持 |
|
PostgreSQL |
支持 |
不支持 |
|
Microsoft SQL Server |
支持 |
不支持 |
|
Oracle |
支持 |
不支持 |
|
IBM Db2 |
支持 |
不支持 |
|
Derecho(GaussDB) |
支持 |
不支持 |
|
NoSQL |
分布式缓存服务(DCS) |
不支持 |
支持 |
文档数据库服务(DDS) |
支持 |
支持 |
|
表格存储服务(CloudTable) |
支持 |
支持 |
|
OpenTSDB |
支持 |
支持 |
|
Redis |
支持 |
不支持 |
|
MongoDB |
支持 |
不支持 |
|
搜索 |
云搜索服务(CSS) |
支持 |
支持 |
Elasticsearch |
支持 |
支持 |
|
消息系统 |
数据接入服务(DIS) |
支持 |
支持 |
Apache Kafka |
支持 |
支持 |
|
DMS Kafka |
支持 |
支持 |
说明:
整库迁移适用于将本地数据中心或在ECS上自建的数据库,同步到云上的数据库服务或大数据服务中,适用于数据库离线迁移场景,不适用于在线实时迁移。 CDM支持整库迁移的数据源如 图1 所示。
图1 CDM支持整库迁移的数据源
本地数据是指存储在用户自建或者租用的IDC中的数据,或者第三方云环境中的数据,包括关系型数据库、NoSQL数据库、OLAP数据库、文件系统等。
这个场景是用户但愿利用云上的计算和存储资源,须要先将本地数据迁移上云。该场景下,须要保证本地网络与云上网络是连通的。
图1 本地数据迁移到公有云
这个场景是面向数据已经存储在云上的用户,支持用户完成如下云服务之间的数据交换:
本地环境是指用户自建或者租用的IDC(Internet Data Center,互联网数据中心)中的数据存储系统,或者第三方云环境中的数据存储系统,包括关系型数据库以及文件系统。
这个场景是用户在使用云上计算资源对海量数据进行处理后,将结果数据回流到本地业务系统,主要是各类关系型数据库和文件系统。该场景下,须要保证本地环境的网络与云上网络是连通的。
图2 云端数据迁移到本地
用户使用CDM服务时,CDM管理系统在用户VPC中发放全托管的CDM实例。此实例仅提供控制台和Rest API访问权限,用户没法经过其余接口(如SSH)访问实例。这种方式保证了CDM用户间的隔离,避免数据泄漏,同时保证VPC内不一样华为云服务间数据迁移时的传输安全。用户还可使用***网络将本地数据中心的数据迁移到华为云服务,具备高度的安全性。
CDM数据迁移以抽取-写入模式进行。CDM首先从源端抽取数据而后将数据写入到目的端,数据访问操做均由CDM主动发起,对于数据源(如RDS数据源)支持SSL时,会使用SSL加密传输。迁移过程要求用户提供源端和目的端数据源的用户名和密码,这些信息将存储在CDM实例的数据库中。保护这些信息对于CDM安全相当重要。
图1 CDM迁移原理
图2 风险规避
如 图2 所示,CDM可能存在如下威胁:
对于这些潜在的威胁,CDM提供如下机制来规避终端用户的风险: