kettle資料同步的優化

2021-10-24 19:44:21 字數 657 閱讀 6766

在進行將oracle的資料同步到mysql的時候,由於資料量大導致使用kettle的全量同步比較慢,所以需要對這一過程進行優化。

1)從源頭的表輸入入手:通過設定表輸入的多執行緒資料抽取,可提公升資料的輸入速度。

但是如果只是在kettle設定表輸入的多執行緒數量的話,會導致資料重複。比如 ​select * from test​ ,起3個執行緒,就會查3遍,最後的資料就是3份。肯定不行,沒達到優化的目的。因為source是oracle,利用oracle的特性: ​rownum​ 和函式: ​mod​ ,以及kettle的引數: ​internal.step.unique.count,internal.step.unique.number​

例如:select * from (select test.*,rownum rn from test ) where mod(rn,$) = $

解釋說明:

2)在插入更新處入手:設定插入/更新的執行緒數,提高資料的插入/更新速度。

在kettle開啟插入/更新的多執行緒後,需要在對應的mysql資料庫裡對對應的表建立索引,不然會報錯。當然,如果只是建立了索引但是沒有開啟多執行緒也可以提公升速度,但是提公升的還不夠快。開啟的執行緒也不是越多越好,因為到達了一定的瓶頸後再加執行緒後提公升的效果並不是很大,所以具體是開啟多少個執行緒要根據實際的配置確定。

Kettle批量同步多張表資料

背景 公司想要將業務系統使用的資料庫由 sql server 切換到 oracle,因此需要將原 sql server 庫的資料同步到 oracle 庫中。因為涉及的資料表有幾百張,資料約百g的級別,一張表開發乙個kettle 太過於繁瑣了,因此考慮通過配置完成資料同步。方案 sqlserver 庫...

kettle資料同步的5中方案

1.觸發器 在資料庫建立增刪改的觸發器。觸發器將變更放到一張臨時表裡。oracle同步cdc 優點 實時同步 缺點 影響到業務系統,因為需要在業務系統建立觸發器 2.日誌 通過分析源資料庫日誌,來獲得源資料庫中的變化的資料。oracle非同步cdc 優點 不影響業務系統 缺點 有一定得延時,對於沒有...

利用Kettle進行資料同步(下)

技術匯 id jishuhui 2015 可聯絡到作者。上篇介紹了基於kettle的資料同步工程的搭建,entrypoint.kjb就是整個工程執行的入口。為了進一步降低操作成本,讓整個資料同步過程更穩定 安全,需要進行更高層面的抽象,做成乙個簡單易用的系統。以下是應用截圖 除了選擇資料來源和資料庫...