操作場景
CDM可以實現在同構、異構數據源之間進行表或文件級別的數據遷移,支持表/文件遷移的數據源請參見支持的數據源中表/文件遷移支持的數據源類型。
約束限制
- 記錄臟數據功能依賴于OBS服務。
- 作業導入時,JSON文件大小不超過1MB。
前提條件
- 已新建連接。
- CDM集群與待遷移數據源可以正常通信。
操作步驟
1.進入CDM主界面,單擊左側導航上的“集群管理”,選擇集群后的“作業管理”。
2.選擇“表/文件遷移 > 新建作業”,進入作業配置界面。
詳見下圖:新建表/文件遷移的作業

3.選擇源連接、目的連接:
- 作業名稱:用戶自定義任務名稱,名稱由中文、數字、字母、中劃線、下劃線、點號,且首字符不能是中劃線或點號組成,長度必須在1到240個字符之間,例如“oracle2obs_t”。
- 源連接名稱:選擇待遷移數據的數據源,作業運行時將從此端復制導出數據。
- 目的連接名稱:選擇將數據遷移到哪個數據源,作業運行時會將數據導入此端。
4.選擇源連接后,配置作業參數。
每種數據源對應的作業參數不一樣,其它類型數據源的作業參數請根據下表選擇。
源端作業參數說明
| 源端類型 | 說明 | 參數配置 |
|---|---|---|
| OBS | 支持以CSV、JSON或二進制格式抽取數據,其中二進制方式不解析文件內容,性能快,適合文件遷移。 | 參見配置OBS源端參數。 |
| MRS HDFs FusionInsight HDFS Apache HDFS |
支持以CSV、Parquet或二進制格式抽取HDFS數據,支持多種壓縮格式。 | 參見配置HDFS源端參數。 |
| MRS HBase FusionInsight HBase Apache HBase CloudTable |
支持從MRS、FusionInsight HD、開源Apache Hadoop的HBase,或CloudTable服務導出數據,用戶需要知道HBase表的所有列族和字段名。 | 參見配置HBase/CloudTable源端參數。 |
| MRS Hive FusionInsight Hive Apache Hive |
支持從Hive導出數據,使用JDBC接口抽取數據。 Hive作為數據源,CDM自動使用Hive數據分片文件進行數據分區。 | 參見配置Hive源端參數。 |
| DLI | 支持從DLI導出數據。 | 參見配置DLI源端參數。 |
| FTP SFTP |
支持以CSV、JSON或二進制格式抽取FTP/SFTP的數據。 | 參見配置FTP/SFTP源端參數。 |
| HTTP | 用于讀取一個公網HTTP/HTTPS URL的文件,包括第三方對象存儲的公共讀取場景和網盤場景。 當前只支持從HTTP URL導出數據,不支持導入。 | 參見配置HTTP源端參數。 |
| 數據倉庫DWS 云數據庫MySQL 云數據庫SQL Server 云數據庫PostgreSQL |
支持從云端的數據庫服務導出數據。 | 從這些數據源導出數據時,CDM使用JDBC接口抽取數據,源端作業參數相同,詳細請 參見配置作業源端參數文檔中的 配置常見關系數據庫源端參數。 |
| FusionInsight LibrA | 支持從FusionInsight LibrA導出數據。 | 從這些數據源導出數據時,CDM使用JDBC接口抽取數據,源端作業參數相同,詳細請 參見配置作業源端參數文檔中的 配置常見關系數據庫源端參數。 |
| MySQL PostgreSQL Oracle Microsoft SQL Server SAP HANA MYCAT 分庫 |
這些非云服務的數據庫,既可以是用戶在本地數據中心自建的數據庫,也可以是用戶在ECS上部署的,還可以是第三方云上的數據庫服務。 | 從這些數據源導出數據時,CDM使用JDBC接口抽取數據,源端作業參數相同,詳細請 參見配置作業源端參數文檔中的 配置常見關系數據庫源端參數。 |
| MongoDB 文檔數據庫服務(DDS) |
支持從MongoDB或DDS導出數據。 | 參見配置MongoDB/DDS源端參數。 |
| Redis | 支持從開源Redis導出數據。 | 參見配置Redis源端參數。 |
| Apache Kafka DMS Kafka MRS Kafka |
僅支持導出數據到云搜索服務。 | 參見配置Kafka/DMS Kafka源端參數。 |
| 云搜索服務 Elasticsearch |
支持從云搜索服務或Elasticsearch導出數據。 | 參見配置Elasticsearch或云搜索服務源端參數。 |
5.配置目的端作業參數,根據目的端數據類型配置對應的參數,具體下表所示。
目的端作業參數說明
| 目的端類型 | 說明 | 參數配置 |
|---|---|---|
| OBS | 支持使用CSV或二進制格式批量傳輸大量文件到OBS。 | 參見配置OBS源端參數。 |
| MRS HDFS | 導入數據到HDFS時,支持設置壓縮格式。 | 參見配置HDFS源端參數。 |
| MRS HBase CloudTable | 支持導入數據到HBase,創建新HBase表時支持設置壓縮算法。 | 參見配置HBase/CloudTable源端參數。 |
| MRS Hive | 支持快速導入數據到MRS的Hive。 | 參見配置Hive源端參數。 |
| 數據湖探索(DLI) | 支持導入數據到DLI服務。 | 參見配置DLI目的端參數。 |
| 數據倉庫DWS 云數據庫MySQL 云數據庫SQL Server 云數據庫PostgreSQL |
支持導入數據到云端的數據庫服務。 | 使用JDBC接口導入數據,參見配置常見關系數據庫目的端參數。 |
| 文檔數據庫服務(DDS) | 支持導入數據到DDS,不支持導入到本地MongoDB。 | 參見配置DDS目的端參數。 |
| 分布式緩存服務(DCS) | 支持導入數據到DCS,支持“String”或“Hashmap”兩種值存儲方式。不支持導入數據到本地Redis。 | 參見配置DCS目的端參數。 |
| 云搜索服務(CSS) | 支持導入數據到云搜索服務。 | 參見配置云搜索服務目的端參數。 |
6.作業參數配置完成后,單擊“下一步”進入字段映射的操作頁面。
如果是文件類數據源(FTP/SFTP/HDFS/OBS)之間相互遷移數據,且源端“文件格式”配置為“二進制格式”(即不解析文件內容直接傳輸),則沒有字段映射這一步驟。
其他場景下,CDM會自動匹配源端和目的端數據表字段,需用戶檢查字段映射關系和時間格式是否正確,例如:源字段類型是否可以轉換為目的字段類型。

說明
- 如果字段映射關系不正確,用戶可以通過拖拽字段來調整映射關系。
- 如果在字段映射界面,CDM通過獲取樣值的方式無法獲得所有列(例如從HBase/CloudTable/MongoDB導出數據時,CDM有較大概率無法獲得所有列),則可以單擊
后選擇“添加新字段”來手動增加,確保導入到目的端的數據完整。 - 如果是導入到數據倉庫服務(DWS),則還需在目的字段中選擇分布列,建議按如下順序選取分布列:
- 有主鍵可以使用主鍵作為分布列。
(1)多個數據段聯合做主鍵的場景,建議設置所有主鍵作為分布列。
(2)在沒有主鍵的場景下,如果沒有選擇分布列,DWS會默認第一列作為分布列,可能會有數據傾斜風險。
7.CDM支持字段內容轉換,如果需要可單擊操作列下
,進入轉換器列表界面,再單擊“新建轉換器”。
圖 新建轉換器

CDM支持以下轉換器:
- 脫敏:隱藏字符串中的關鍵數據。
例如要將“12345678910”轉換為“123****8910”,則參數配置如下:
?“起始保留長度”為“3”。
?“結尾保留長度”為“4”。
?“替換字符”為“*”。
- 去前后空格:自動刪除字符串前后的空值。
- 字符串反轉:自動反轉字符串,例如將“ABC”轉換為“CBA”。
- 字符串替換:將選定的字符串替換。
- 表達式轉換:使用JSP表達式語言(Expression Language)對當前字段或整行數據進行轉換。
- 去換行:將字段中的換行符(\n、\r、\r\n)刪除。
8.單擊“下一步”配置任務參數,單擊“顯示高級屬性”展開可選參數。
詳見下圖:任務參數

各參數說明如下表所示。
任務配置參數
| 參數 | 說明 | 取值樣例 |
|---|---|---|
| 作業失敗重試 | 如果作業執行失敗,可選擇自動重試三次或者不重試。 建議僅對文件類作業或啟用了導入階段表的數據庫作業配置自動重試,避免自動重試重復寫入數據導致數據不一致。 說明 如果通過DataArts Studio數據開發使用參數傳遞并調度CDM遷移作業時,不能在CDM遷移作業中配置“作業失敗重試”參數,如有需要請在數據開發中的CDM節點配置“失敗重試”參數。 |
不重試 |
| 作業分組 | 選擇作業的分組,默認分組為“DEFAULT”。在CDM“作業管理”界面,支持作業分組顯示、按組批量啟動作業、按分組導出作業等操作。 | DEFAULT |
| 是否定時執行 | 如果選擇“是”,可以配置作業自動啟動的時間、重復周期和有效期,具體請參見配置定時任務。 說明 如果通過DataArts Studio數據開發調度CDM遷移作業,此處也配置了定時任務,則兩種調度均會生效。為了業務運行邏輯統一和避免調度沖突,推薦您啟用數據開發調度即可,無需配置CDM定時任務。 |
否 |
| 抽取并發數 | 設置同時執行的抽取任務數。并發抽取數取值范圍為1-300,若配置過大,則以隊列的形式進行排隊。 CDM遷移作業的抽取并發量,與集群規格和表大小有關。 按集群規格建議每1CUs(1CUs=1核4G)配置為4。 表每行數據大小為1MB以下的可以多并發抽取,超過1MB的建議單線程抽取數據。 說明 遷移的目的端為文件時,CDM不支持多并發,此時應配置為單進程抽取數據。 單作業的抽取并發數,受到作業“配置管理”中所配置的“最大抽取并發數”影響。“最大抽取并發數”配置的是抽取并發總數。 |
1 |
| 加載(寫入)并發數 | 加載(寫入)時并發執行的Loader數量。 僅當HBase或Hive作為目的數據源時該參數才顯示。 |
3 |
| 分片重試次數 | 每個分片執行失敗時的重試次數,為0表示不重試。 | 0 |
| 是否寫入臟數據 | 選擇是否記錄臟數據,默認不記錄臟數據。 CDM中臟數據指的是數據格式非法的數據。當源數據中存在臟數據時,建議您打開此配置。否則可能導致遷移作業失敗。 |
是 |
| 臟數據寫入連接 | 當“是否寫入臟數據”為“是”才顯示該參數。 臟數據要寫入的連接,目前只支持寫入到OBS連接。 |
obs_link |
| OBS桶 | 當“臟數據寫入連接”為OBS類型的連接時,才顯示該參數。 寫入臟數據的OBS桶的名稱。 |
dirtydata |
| 臟數據目錄 | “是否寫入臟數據”選擇為“是”時,該參數才顯示。 OBS上存儲臟數據的目錄,只有在配置了臟數據目錄的情況下才會記錄臟數據。 用戶可以進入臟數據目錄,查看作業執行過程中處理失敗的數據或者被清洗過濾掉的數據,針對該數據可以查看源數據中哪些數據不符合轉換、清洗規則。 |
/user/dirtydir |
| 單個分片的最大錯誤記錄數 | 當“是否寫入臟數據”為“是”才顯示該參數。 單個map的錯誤記錄超過設置的最大錯誤記錄數則任務自動結束,已經導入的數據不支持回退。推薦使用臨時表作為導入的目標表,待導入成功后再改名或合并到最終數據表。 |
0 |
| 開啟限速 | 設置限速可以保護源端讀取壓力,速率代表CDM傳輸速率,而非網卡流量。 | 是 |
| 單并發速率上限(Mb/s) | 開啟限速情況下設置的單并發速率上限值。 | 20 |
9.單擊“保存”,或者“保存并運行”回到作業管理界面,可查看作業狀態。
說明
作業狀態有New,Pending,Booting,Running,Failed,Succeeded。
其中“Pending”表示正在等待系統調度該作業,“Booting”表示正在分析待遷移的數據。