配置常見關系數據庫目的端參數
更新時間 2023-07-10 10:04:51
最近更新時間: 2023-07-10 10:04:51
分享文章
本章節主要介紹配置常見關系數據庫目的端參數。
常見關系數據庫作為目的端包括云數據庫 MySQL、云數據庫 SQL Server、云數據庫 PostgreSQL。
將數據導入到以上數據源時,目的端作業參數如下表所示。
表 常見關系型數據庫作為目的端時的作業參數
| 參數類型 | 參數名 | 說明 | 取值樣例 |
|---|---|---|---|
| 基本參數 | 模式或表空間 | 待寫入數據的數據庫名稱,支持自動創建Schema。單擊輸入框后面的按鈕可選擇模式或表空間。 | schema |
| 基本參數 | 自動創表 | 只有當源端為關系數據庫時,才有該參數。表示寫入表數據時,用戶選擇的操作: 不自動創建:不自動建表。 不存在時創建:當目的端的數據庫沒有“表名”參數中指定的表時,CDM會自動創建該表。如果“表名”參數配置的表已存在,則不創建,數據寫入到已存在的表中。 先刪除后創建:CDM先刪除“表名”參數中指定的表,然后再重新創建該表。 |
不自動創建 |
| 基本參數 | 表名 | 寫入數據的目標表名,單擊輸入框后面的按鈕可進入表的選擇界面。 該參數支持配置為時間宏變量,且一個路徑名中可以有多個宏定義變量。使用時間宏變量和定時任務配合,可以實現定期同步新增數據。 |
table |
| 基本參數 | 導入開始前 | 導入數據前,選擇是否清除目的表的數據: 不清除:寫入數據前不清除目標表中數據,數據追加寫入。 清除全部數據:寫入數據前會清除目標表中數據。 清除部分數據:需要配置“where條件”參數,CDM根據條件選擇性刪除目標表的數據。 |
清除部分數據 |
| 基本參數 | where條件 | “導入開始前”參數選擇為“清除部分數據”時配置,配置后導入前根據where條件刪除目的表的數據。 | age > 18 and age <= 60 |
| 基本參數 | 約束沖突處理 | 當遷移數據出現沖突時的處理方式。 insert into:當存在主鍵、唯一性索引沖突時,數據無法寫入并將以臟數據的形式存在。 replace into:當存在主鍵、唯一性索引沖突時,會先刪除原有行、再插入新行,替換原有行的所有字段。 on duplicate key update,當存在主鍵、唯一性索引沖突時,目的表中約束沖突的行除開唯一約束列的其他數據列將被更新。 |
insert into |
| 基本參數 | loader線程數 | 每個loader內部啟動的線程數,可以提升寫入并發數。 說明 不支持“約束沖突處理”策略為“replace into”或“on duplicate key update”的并發場景。 |
1 |
| 高級參數 | 先導入階段表 | 如果選擇“是”,則啟用事務模式遷移,CDM會自動創建臨時表,先將數據導入到該臨時表,導入成功后再通過數據庫的事務模式將數據遷移到目標表中,導入失敗則將目的表回滾到作業開始之前的狀態。 默認為“否”,CDM直接將數據導入到目的表。這種情況下如果作業執行失敗,已經導入到目標表中的數據不會自動回滾。 說明 如果“導入開始前”選擇“清除部分數據”或“清除全部數據”,CDM的事務模式不會回滾已經刪除的數據。 |
否 |
| 高級參數 | 擴大字符字段長度 | 選擇自動創表時,遷移過程中可將字符類型的字段長度擴大為原來的3倍,再寫入到目的表中。如果源端數據庫與目的端數據庫字符編碼不一樣,但目的表字符類型字段與源表一樣,在遷移數據時,可能會有出現長度不足的錯誤。 說明 當啟動該功能時,也會導致部分字段消耗用戶相應的3倍存儲空間。 |
否 |
| 高級參數 | 使用非空約束 | 當選擇自動創建目的表時,如果選擇使用非空約束,則目的表字段的是否非空約束,與原表具有相應非空約束的字段保持一致。 | 是 |
| 高級參數 | 導入前準備語句 | 執行任務之前率先執行的SQL語句。目前向導模式僅允許執行一條SQL語句。 | create temp table |
| 高級參數 | 導入后完成語句 | 執行任務之后執行的SQL語句,目前僅允許執行一條SQL語句。 | merge into |