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

news/2024/10/5 3:31:02

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/44134.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Linux系统下C语言程序编译过程

Linux系统下C语言程序编译过程C语言程序编译过程:源程序 ---- 预处理 --- 编译 --- 汇编 --- 链接 --- 可执行文件1.预处理: 对源码进行简单的加工,GCC编译器会调用预处理器cpp对程序进行预处理,其实就是解释源程序中所有的预处理指令,如#include(文件包含)、#defi…

locust压测的基本使用

locust压测的基本使用这里介绍的是在本地启动locust以及做后续压测的流程以及各个参数含义一、启动locust执行命令 locust -f **.py (python脚本)如下图: 二、locust的UI界面1、启动界面8089是该服务启动的端口号,如果是本地启动,可以直接在浏览器输入http://localhost:80…

如何解决网页无响应问题

如何解决网页无响应问题 描述 少数电脑在运行网页相关的自动化应用时,会碰到 "网页无响应" 的提示。 解决方案 将 Chrome 的 "使用硬件加速模式(如果可用)" 选项关闭没有找到想要的结果?

Plagiarism

论文造假的,学术造假的定义学习。 ### Plagiarism and Academic Integrity Overview #### A. Brainstorming Activities **Word Cloud:**- For "Writing": narrative, descriptive, expository, argumentative, essay, report, novel, short story, poetry, structu…

泰山派学习11--字符设备驱动

1、字符设备定义应用程序按字节/字符来读写数据的设备,不支持随机存取数据,系统直接从设备读取/写入每一个字符。 2、字符设备抽象Linux内核中将字符设备抽象成一个具体的数据结构(struct cdev),理解为字符设备对象。 字符设备的打开、读写、关闭等操作接口(file_operations…

存入数据库的时间不对

存入数据库的时间和当前时间相差了8个小时?解决更改项目数据库连接串 GMT 为 Asia/Shanghai。如下图:GMT:为格林尼治天文台时间。与东八区,也就是北京时间相差8个小时。这里应该设置为东八区时间,即是Asia/Shanghai。

最低50元的京东云轻量服务器体验

‍ 最低50元的京东云轻量服务器体验:最低的价格,最差的体验。 ​​ 体验​​ 看路人评论 ​​ ‍ 处处是bug ‍ 从自己的机器上ssh到服务器,刚连接的时候正常 ​​ 用了一会,终端没反应了(非禁止画面)这是不是断连? ​​ ‍ 然后是网页的控制台 ​​vim 搜索 alias ,开…

UE Puerts 在 Android 的调试方法

配置流程 在 JsEnv.Build.cs 添加 WITH_INSPECTOR 编译添加这个宏就开启了全平台调试功能看到这里就知道 V8Inspector 之前仅在三个平台会编译,现在会在任意平台编译了 打包的时候会发现存在编译错误(如果没有就是后续 Puerts 版本修复了这个问题),接下来修复这个错误(没有…