kettle从入门到精通 第七十课 ETL之kettle kettle数据校验,脏数据清洗轻松拿捏

场景:输入在指定的错误(错误应涵盖数据类型不匹配的情况)行数内,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、还有一些其他的规则,朋友们可以自己进行探索下,若有问题欢迎评论区或者交流群内讨论。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值