使用kettle制作拉鏈表


拉鏈表是在數據倉庫中常見的表,主要用還存儲不按時間變化的表,比如客戶基本信息表。

下面先建兩個實例表,user_info和user_info_l,其中user_info_l為拉鏈表。

user_info表及數據:

user_info_l表及轉換后的數據:

kettle的設計其實很簡單,就一個“表輸入”一個“維度查詢/更新

下面來看一下表輸入的配置:

這個很簡單,但是一定要有個基本表的數據日期

下面幾個是“維度查詢/更新”的配置:

下面介紹一下設置中的關鍵地方,依次如下:

1.不鈎選的話變化的數據不會插入,至於不勾選時的用途,大家可以研究一下。

2.這里是創建每個版本關鍵字,基本就是源表的主鍵。

3.這里是要更新的字段,除了源表關鍵字,其他都選好了。

4.截圖的時候忘了到幾了。。。

5.kettle自動給啦鏈表生成的主鍵。

6.代理關鍵字獲取的方法。

7.每條記錄的版本號,每變化依次一個版本號。

8.根據哪個字段判斷是哪天更新的,也可以使用系統時間。

9.拉鏈的最早開始日期,第一次插入空表時也是這個日期。

10.拉鏈的最晚結束日期,更新的字段都使用這個值,被更新后變為更新的日期,可以參考上面圖中user_info_l里的數據。

我在用的時候發現了一個問題,不知道是bug,還是kettle有意為之。就是在插入拉鏈表時,會產生一條代理主鍵為0的空記錄。可能是bug,也可能是kettle為防止數據出現問題,強制讓其他字段為可以為空。

要解決這個問題很簡單,只需要在加一個刪除的trans即可:

生成記錄的配置如下:

然后把兩個trans放到一個job里即可,job如下圖:

至此,拉鏈表便創建完成。

如果在使用中,有疑問的同學可以聯系我QQ:415426434.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM