使用kettle製作拉鍊表

2021-09-01 02:50:40 字數 1585 閱讀 4537

拉鍊表是在資料倉儲中常見的表,主要用還儲存不按時間變化的表,比如客戶基本資訊表。

下面先建兩個例項表,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如下圖:

至此,拉鍊表便建立完成。

歷史拉鍊表

在資料倉儲的資料模型設計過程中,經常會遇到這樣的需求 1.資料量比較大 2.表中的部分欄位會被update,如使用者的位址,產品的描述資訊,訂單的狀態等等 3.需要檢視某乙個時間點或者時間段的歷史快照資訊,比如,檢視某乙個訂單在歷史某乙個時間點的狀態,比如,檢視某乙個使用者在過去某一段時間內,更新過...

拉鍊表設計

一 建立拉鍊表 1 假如首日是2022 02 24,首先將資料從ods層載入到dim層,分割槽日期和結束日期都為9999 00 00 2 第二日2022 02 25,一部分使用者新增變化,需要把新增的和變化的裝載到dim層,分割槽結束日期是9999分割槽,但要注意9999分割槽有一部分過期資料 過期...

什麼是拉鍊表

在資料倉儲的資料模型設計過程中,經常會遇到這樣的需求 1.資料量比較大 2.表中的部分欄位會被update,如使用者的位址,產品的描述資訊,訂單的狀態等等 3.需要檢視某乙個時間點或者時間段的歷史快照資訊,比如,檢視某乙個訂單在歷史某乙個時間點的狀態,比如,檢視某乙個使用者在過去某一段時間內,更新過...