kettle之 多表資料複製

2021-06-06 12:40:12 字數 726 閱讀 6097

需求:把a庫中n個表抽取至b庫中,表結構相同或只是增加統一的一些字段, 過濾條件基本類似。

解決方法:

我們把以上內容在解決問題上拆分為二步,

1,從一配製表中讀出相應的表名及過濾條件,存於一結果。

2,根據第一步的結果,一條條迴圈來進行取數插數的過程。

以上過程相當簡單,以下為討論的實現方式。

1,如果是

oracle

同字符集,用dblink結合著儲存過程,寫乙個通用的程式很容易搞定,只需要建立乙個表名及過濾條件的配製表(在此就不多說了)。

在此,我們以kettle為例進行分析,如何解決這個問題(先拋開效能,kettle的確是個好東西)

1),主流程大概是如下這樣的

在此,我們再看一下第一元件(得到多表表名)裡面內容, 

這其中的sql只是模擬乙個得到表名的sql,可靈活使用, 這個元件其實就完成了把要抽取的表放入乙個結果集中了。

我們再看第二個元件(表遷移)

再看一下它們的內容

在此就完成了,但是,我們主job設定(表遷移)元件時,也就是把前面的內容當後面的引數迴圈執行。

基本就是如此,另,記得在各主流程及二轉換中都設定tt_tab這個引數。

說了這麼多,其實很簡單。如果你是要做資料庫表複製的話,kettle有其它的方式,可以根據工具-》嚮導-》複製表嚮導完成。

以上這種適應的是,可實現一些sql的拼接,且要增加減少表時只需求維護配製表了,相對來說會變的簡單。。

Streams實踐之多表複製

1.源與目標資料庫初始化引數設定 streams那些事之初始化引數設定 2.在源和目標資料庫建立目錄 在源資料庫orcl上 必須先手工建立c learnoracle backup orcl 目錄 sql conn strmadmin strmadmin sql create directory or...

SQL複製多表資料

最近在客戶這邊維護的時候,他們有需要把現在的資料複製到以前,應付檢查.所以我就寫了些sql來複製該資料 廢話少說,把 貼出來,大家看看 code 刪除臨時表 drop table tmp1 drop table tmp2 drop table t 獲取資料 select id,company id,...

資料庫之多表操作

分析步驟 1 先站在左表的角度去找 是否左表的多條記錄可以對應右表的一條記錄,如果是,則證明左表的乙個欄位foreign key 右表乙個字段 通常是id 2 再站在右表的角度去找 是否右表的多條記錄可以對應左表的一條記錄,如果是,則證明右表的乙個欄位foreign key 左表乙個字段 通常是id...