Kettle整體使用起來,還是很方便的憎乙,熟悉應(yīng)用了之后,就是對控件的熟悉和使用了叉趣,只要思路有了泞边,就是整合下Kettle中各個控件的使用就行。
這里疗杉,簡單介紹下一個“跨庫查詢”的控件阵谚。
有的時(shí)候,我們一個腳本烟具,可能只是臨時(shí)性的梢什,或者需要實(shí)時(shí)的去查一下,同步到數(shù)倉的話朝聋,可能不太方便绳矩,我們就可以使用跨庫查詢的控件
用到的表信息
Kettle-handbook-10-01.png
Kettle-handbook-10-02.png
1. 數(shù)據(jù)庫連接(Database Join)
我們先用這個控件來實(shí)現(xiàn)一下
Kettle-handbook-10-03.png
用起來也很簡單
Kettle-handbook-10-04.png
表輸入:是我們第一個庫中的SQL
數(shù)據(jù)庫連接:是我們另一個庫的SQL
Kettle-handbook-10-05.png
我們用關(guān)聯(lián)的字段放在where條件后,使用“?”來占位玖翅,并在下面翼馆,選擇要傳入的參數(shù)
默認(rèn)的話,是JOIN金度,我們也可以勾選Outer Join应媚,
然后,我們看下猜极,輸出就行
Kettle-handbook-10-06.png
這是后面導(dǎo)出的文件中姜,
Kettle-handbook-10-07.png
這里,我們就簡單實(shí)現(xiàn)了跨庫的查詢
2. 數(shù)據(jù)庫查詢
我們再來看另一個控件,“數(shù)據(jù)庫查詢”丢胚,這個控件同樣可以實(shí)現(xiàn)跨庫翩瓜,但是有一個小問題
首先,我們使用上一次的數(shù)據(jù)來看
Kettle-handbook-10-08.png
Kettle-handbook-10-09.png
我們執(zhí)行下携龟,結(jié)果看上去是一樣的
Kettle-handbook-10-10.png
這其實(shí)有個隱藏的問題兔跌,我們再增加幾條記錄看看
Kettle-handbook-10-11.png
比如:現(xiàn)在1號有2條記錄,正常的話峡蟋,我們導(dǎo)出也是要有2條的
我們執(zhí)行下看看
Kettle-handbook-10-12.png
我們會看到坟桅,數(shù)據(jù)并沒有增加,這是控件導(dǎo)致的蕊蝗,
先獲取左邊的結(jié)果集仅乓,然后一條一條去右邊匹配;匹配到第一條記錄后蓬戚,就會跳出夸楣,直接去匹配下一個,所以子漩,我們有2條記錄豫喧,也只會找到第一個。
這并不是我們想要的痛单,我們再試下第一個控件
Kettle-handbook-10-13.png
使用這個“數(shù)據(jù)庫查詢”控件的話嘿棘,可以通過將1-N關(guān)系匯總劲腿,將N的一方旭绒,放在前面
Kettle-handbook-10-14.png
Kettle-handbook-10-15.png
最后的結(jié)果也是可以的
Kettle-handbook-10-16.png