kettle從入門到精通 第七十課 ETL之kettle kettle資料校驗,髒資料清洗輕鬆拿捏

慕容尘轩發表於2024-06-15

場景:輸入在指定的錯誤(錯誤應涵蓋資料型別不匹配的情況)行數內,trans不報錯,但透過錯誤處理步驟捕捉,並記入檔案,整個資料管線正常完成直至處理完最後一個輸入行。

解決方案:使用步驟【資料檢驗】進行處理。這個步驟和常規的業務系統對接三方介面一個邏輯,將符合規則的資料放行,不符合的記錄。

資料準備(data-valid.json檔案中的內容如下),基於如下資料分別進行欄位型別、非空、列舉值、欄位值長度、郵箱正則校驗。

[{
    "id": 1,
    "name": "Java小金剛1",
    "sex": "男",
    "en_name": "xiaojingang1",
    "phone": "13931111111",
    "email": "1@qq.com"
}, {
    "id": 2,
    "name": "Java小金剛2",
    "sex": "男",
    "en_name": "",
    "phone": "13931111111",
    "email": "2@qq.com"
}, {
    "id": 3,
    "name": "Java小金剛3",
    "sex": "未知",
    "en_name": "xiaojingang3",
    "phone": "13931111111",
    "email": "3@qq.com"
}, {
    "id": 4,
    "name": "Java小金剛4",
    "sex": "男",
    "en_name": "xiaojingang4",
    "phone": "1393",
    "email": "4@qq.com"
}, {
    "id": 5,
    "name": "Java小金剛5",
    "sex": "男",
    "en_name": "xiaojingang5",
    "phone": "13931111111",
    "email": "5qq.com"
}]

1、資料校驗總體設計如下:

1)jsonn input 載入data-valid.json檔案資料,實際使用時不一定是jsonn input 步驟,根據自己業務情況選擇則。

2)資料校驗步驟,設定一系列校驗規則進行清洗資料。
3)校驗透過的資料繼續後續處理,校驗失敗的資料記錄日誌或者存入表中,這裡方便演示所以只打了日誌。
2、步驟錯誤處理設定,點選X號,然後在彈出的窗體裡面設定錯誤數列名,錯誤描述列名,錯誤列的列名,錯誤編碼列名的欄位名稱,如下圖所示:

3、型別校驗,也就說如果上游傳遞過來的型別是integer型別,但是你需要的是String型別,這個時候可以進行型別校驗規則攔截,如下圖所示。

4、非空校驗,校驗en_name欄位不允許為空,空值的資料直接流向錯誤記錄步驟,如下圖所示:

5、列舉值校驗,sex欄位的取值範圍只允許男和女兩種,不符合條件的資料直接流向錯誤記錄步驟,如下圖所示:

6、欄位值長度校驗,校驗phone電話號碼長度需要是11位,不符合條件的資料直接流向錯誤記錄步驟,如下圖所示:

7、萬能正則校驗,使用正規表示式可以實現各種各樣的定製化需求,這裡使用正則校驗郵箱是否正確,不符合條件的資料直接流向錯誤記錄步驟,如下圖所示:

8、還有一些其他的規則,朋友們可以自己進行探索下,若有問題歡迎評論區或者交流群內討論。

相關文章