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、还有一些其他的规则,朋友们可以自己进行探索下,若有问题欢迎评论区或者交流群内讨论。

相关推荐
慕容尘轩5 个月前
kettle从入门到精通 第七十一课 ETL之kettle 再谈http post,轻松掌握body中传递json参数
etl学习·kettle深入浅出·kettle http post·kettle http post body
慕容尘轩5 个月前
kettle从入门到精通 第六十九课 ETL之kettle kettle cdc mysql,轻松实现实时增量同步
etl学习·kettle深入浅出·kettle实时同步·kettle cdc·kettle cdc mysql
慕容尘轩5 个月前
kettle从入门到精通 第六十七课 ETL之kettle 再谈kettle阻塞,阻塞多个分支的多个步骤
kettle·etl学习·kettle深入浅出·kettle阻塞
慕容尘轩5 个月前
kettle从入门到精通 第六十六课 ETL之kettle kettle阻塞教程,轻松获取最后一行数据,so easy
etl学习·kettle深入浅出·kettle阻塞