新建整庫遷移作業
更新時間 2023-07-07 13:55:17
最近更新時間: 2023-07-07 13:55:17
分享文章
本章節主要介紹新建整庫遷移作業。
操作場景
CDM支持在同構、異構數據源之間進行整庫遷移,遷移原理與新建表/文件遷移作業相同,關系型數據庫的每張表、Redis的每個鍵前綴、Elasticsearch的每個類型、MongoDB的每個集合都會作為一個子任務并發執行。
支持整庫遷移的數據源請參見支持的數據源中整庫遷移支持的數據源類型。
自動建表時的字段類型映射
CDM遷移數據庫時支持在目的端自動建表。CDM在數據倉庫服務(Data Warehouse Service,簡稱DWS)中自動建表時,DWS的表與源表的字段類型映射關系如下圖所示。例如使用CDM將Oracle整庫遷移到DWS,CDM在DWS上自動建表,會將Oracle的 NUMBER(3,0) 字段映射到DWS的 SMALLINT 。
詳見下圖:DWS端自動建表時的字段映射

前提條件
- 已新建連接。
- CDM集群與待遷移數據源可以正常通信。
操作步驟
1.進入CDM主界面,單擊左側導航上的“集群管理”,選擇集群后的“作業管理”。
2.選擇“整庫遷移 > 新建作業”,進入作業參數配置界面。
3.配置源端作業參數,根據待遷移的數據庫類型配置對應參數,如下表所示。
源端作業參數
| 源端數據庫類型 | 源端參數 | 參數說明 | 取值樣例 |
|---|---|---|---|
| DWS FusionInsight LibrA MySQL PostgreSQL SQL Server Oracle SAPHANA MYCAT |
模式或表空間 | “使用SQL語句”選擇“否”時,顯示該參數,表示待抽取數據的模式或表空間名稱。單擊輸入框后面的按鈕可進入模式選擇界面,用戶也可以直接輸入模式或表空間名稱。 如果選擇界面沒有待選擇的模式或表空間,請確認對應連接里的帳號是否有元數據查詢的權限。 |
schema |
| DWS FusionInsight LibrA MySQL PostgreSQL SQL Server Oracle SAPHANA MYCAT |
Where子句 | 該參數適用于整庫遷移中的所有子表,配置子表抽取范圍的Where子句,不配置時抽取整表。如果待遷移的表中沒有Where子句的字段,則遷移失敗。 該參數支持配置為時間宏變量,實現抽取指定日期的數據。 |
age > 18 and age <= 60 |
| DWS FusionInsight LibrA MySQL PostgreSQL SQL Server Oracle SAPHANA MYCAT |
分區字段是否允許空值 | 選擇分區字段是否允許空值。 | 是 |
| HIVE | 數據庫名稱 | 待遷移的數據庫名稱,源連接中配置的用戶需要擁有讀取該數據庫的權限。 | hivedb |
| HBASE CloudTable |
起始時間 | 起始時間(包含該值)。格式為'yyyy-MM-dd hh:mm:ss',支持dateformat時間宏變量函數。例如:"2017-12-31 20:00:00"或"{dateformat(yyyy-MM-dd, -1, DAY)} 02:00:00"或 {dateformat(yyyy-MM-dd HH:mm:ss, -1, DAY)} | - |
| HBASE CloudTable |
終止時間 | 終止時間(不包含該值)。格式為'yyyy-MM-dd hh:mm:ss',支持dateformat時間宏變量函數。例如:"2018-01-01 20:00:00"或"{dateformat(yyyy-MM-dd, -1, DAY)} 02:00:00"或" {dateformat(yyyy-MM-dd HH:mm:ss, -1, DAY)}" | - |
| Redis | 鍵過濾字符 | 填寫鍵過濾字符后,將遷移符合條件的鍵。例如:a*,遷移所有:* | - |
| DDS MongoDB |
數據庫名稱 | 待遷移的數據庫名稱,源連接中配置的用戶需要擁有讀取該數據庫的權限。 | mongodb |
| DDS MongDB |
查詢篩選 | 創建用于匹配文檔的篩選器。例如:{HTTPStatusCode:{ $ gt:"400",$lt:"500"},HTTPMethod:"GET"}。 |
- |
| Elasticsearch CSS |
索引 | 待抽取數據的索引,支持配置為通配符,一次遷移多個符合通配符條件的索引。例如這里配置為cdm*時,CDM將遷移所有名稱為cdm開頭的索引:cdm01、cdmB3、cdm_45…… 如果源端配置為遷移多個索引時,目的端的作業參數“索引”將不允許配置。 |
cdm* |
4.配置目的端作業參數,根據待導入數據的云服務配置對應參數,如下表所示。
目的端作業參數
| 源端數據庫類型 | 源端參數 | 參數說明 | 取值樣例 |
|---|---|---|---|
| DWS FusionInsight LibrA MySQL PostgreSQL SQL Server |
- | 整庫遷移到關系數據庫時,目的端作業參數請參見配置常見關系數據庫目的端參數。 | schema |
| MRS HIVE | - | 整庫遷移到MRS HIVE時,目的端作業參數請參見配置Hive目的端參數。 | hivedb |
| MRS HBASE CloudTable | - | 整庫遷移到MRSHBASE或CloudTable時,目的端作業參數請參見配置HBase/CloudTable目的端參數。 | 是 |
| MRS HDFS | - | 整庫遷移到MRS HDFS時,目的端作業參數請參見配置HDFS目的端參數。 | - |
| OBS | - | 整庫遷移到OBS時,目的端作業參數請參見配置OBS目的端參數。 | - |
| DCS | - | 整庫遷移到DCS時,目的端作業參數請參見配置DCS目的端參數。 | - |
| DDS | 數據庫名稱 | 待遷移的數據庫名稱,源連接中配置的用戶需要擁有讀取該數據庫的權限。 | mongodb |
| 遷移行為 | 新增 有則替換,無則新增 |
- | |
| CSS | 索引 | 待抽取數據的索引,支持配置為通配符,一次遷移多個符合通配符條件的索引。 例如這里配置為cdm*時,CDM將遷移所有名稱為cdm開頭的索引:cdm01、cdmB3、cdm_45…… 如果源端配置為遷移多個索引時,目的端的作業參數“索引”將不允許配置。 |
cdm* |
5.如果是關系型數據庫整庫遷移,則作業參數配置完成后,單擊“下一步”會進入表的選擇界面,您可以根據自己的需求選擇遷移哪些表到目的端。
6.單擊“下一步”配置任務參數。
詳見下圖:任務參數

各參數說明如下表所示。
表任務配置參數
| 參數 | 說明 | 取值樣例 |
|---|---|---|
| 同時執行的表個數 | 抽取時并發執行的表的數量。 | 3 |
| 抽取并發數 | 設置同時執行的抽取任務數,一般保持默認即可。 | 1 |
| 是否寫入臟數據 | 選擇是否記錄臟數據,默認不記錄臟數據。 | 是 |
| 臟數據寫入連接 | 當“是否寫入臟數據”為“是”才顯示該參數。 臟數據要寫入的連接,目前只支持寫入到OBS連接。 | obs_link |
| OBS桶 | 當“臟數據寫入連接”為OBS類型的連接時,才顯示該參數。 寫入臟數據的OBS桶的名稱。 | dirtydata |
| 臟數據目錄 | “是否寫入臟數據”選擇為“是”時,該參數才顯示。 OBS上存儲臟數據的目錄,只有在配置了臟數據目錄的情況下才會記錄臟數據。 用戶可以進入臟數據目錄,查看作業執行過程中處理失敗的數據或者被清洗過濾掉的數據,針對該數據可以查看源數據中哪些數據不符合轉換、清洗規則。 | /user/dirtydir |
| 單個分片的最大錯誤記錄數 | 當“是否寫入臟數據”為“是”才顯示該參數。 單個map的錯誤記錄超過設置的最大錯誤記錄數則任務自動結束,已經導入的數據不支持回退。推薦使用臨時表作為導入的目標表,待導入成功后再改名或合并到最終數據表。 | 0 |
7.單擊“保存”,或者“保存并運行”。
作業任務啟動后,每個待遷移的表都會生成一個子任務,單擊整庫遷移的作業名稱,可查看子任務列表。