使用kettle及正則對內容中的身份證號做脫敏處理

2022-09-09 13:00:27 字數 1063 閱讀 2727

使用kettle及正則對內容中的身份證號做脫敏處理

按照業務要求,將包含身份證號的內容進行脫敏處理,處理過程中使用正規表示式進行查詢和處理。

select regexp_count(字段,'[1-9]\d(18|19|20)\d((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d[0-9xx]')from 表;

統計欄位中符合身份證號正則的數量

select regexp_replace(字段,』^[1-9]\d(18|19|20)\d((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d[0-9xx]』,』』) from 表;

使用正則將身份證號替換為空;

處理中需要將身份證號進行脫敏,並非將身份證號替換為空,需要借助kettle進行處理,kettle樣式如下:

1.拼接內容

通過sql語句查詢出脫敏的身份證號內容,並作為輸入內容進行傳遞。

2.字串替換

使用拼接好的脫敏身份證號,將符合正則的內容替換掉,得到出新的字段,將新字段作為脫敏後的結果進行輸出

3.表輸出

將脫敏後的資料進行輸出到表中做下一步處理

測試表輸出內容如下

使用kettle中遇到的問題

以4.2為例 1 使用merge join操作,資料大的時候會出現資料1條變兩條一樣的情況。但是在跑自帶例子的時候沒問題,資料量小的時候也沒問題。我使用的記錄為20w條,出現了重複問題。2 使用merge join的left outer連線的時候,如果右邊的資料連線值為空,則兩邊資料對應關係會亂掉,...

Kettle中pan和kitchen使用

kettle 命令列使用說明 1.kitchen 作業執行器 是乙個作業執行引擎,用來執行作業。這是乙個命令列執行工具,引數說明如下 1 rep repositoryname 任務包所在儲存名 2 user repositoryusername 執行人 3 pass repositorypasswo...

kettle中變數的設定和使用介紹

有沒有能統一管理乙個引數,然後讓所有的transformation和job都可以讀到呢?答案是有 1.首先,開啟.kettle kettle.properties 個人主機是 c users for elegant kettle 直接在裡面定義,注意這個檔案需要與spoon.bat放在同乙個目錄下面...