雲數據遷移(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提供如下機制來規避終端用戶的風險: