首页 > 其他分享 >kettle从入门到精通 第七十课 ETL之kettle kettle数据校验,脏数据清洗轻松拿捏

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

时间:2024-06-15 22:43:21浏览次数:16  
标签:en name 步骤 kettle 校验 sex 第七十 数据 ETL

场景:输入在指定的错误(错误应涵盖数据类型不匹配的情况)行数内,trans不报错,但通过错误处理步骤捕捉,并记入文件,整个数据管线正常完成直至处理完最后一个输入行。

解决方案:使用步骤【数据检验】进行处理。这个步骤和常规的业务系统对接三方接口一个逻辑,将符合规则的数据放行,不符合的记录。

数据准备(data-valid.json文件中的内容如下),基于如下数据分别进行字段类型、非空、枚举值、字段值长度、邮箱正则校验。

[{
    "id": 1,
    "name": "Java小金刚1",
    "sex": "男",
    "en_name": "xiaojingang1",
    "phone": "13931111111",
    "email": "[email protected]"
}, {
    "id": 2,
    "name": "Java小金刚2",
    "sex": "男",
    "en_name": "",
    "phone": "13931111111",
    "email": "[email protected]"
}, {
    "id": 3,
    "name": "Java小金刚3",
    "sex": "未知",
    "en_name": "xiaojingang3",
    "phone": "13931111111",
    "email": "[email protected]"
}, {
    "id": 4,
    "name": "Java小金刚4",
    "sex": "男",
    "en_name": "xiaojingang4",
    "phone": "1393",
    "email": "[email protected]"
}, {
    "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、还有一些其他的规则,朋友们可以自己进行探索下,若有问题欢迎评论区或者交流群内讨论。

 

标签:en,name,步骤,kettle,校验,sex,第七十,数据,ETL
From: https://www.cnblogs.com/zjBoy/p/18249126

相关文章

  • kettle从入门到精通 第六十八课 ETL之kettle kettle随机数生成的一些方案
    1、在做ETL数据抽取的时候,会用到生成随机数的功能,今天我们一起来学习下如何生成随机数据。如下图所示 2、将生成随机数拉倒画布即可,然后设置字段名称和选择合适的类型,如下图所示:类型:随机数字:生成一个介于0和1之间的随机数随机整数:生成一个随机的32-bit整数随机字符串:基......
  • kettle从入门到精通 第六十七课 ETL之kettle 再谈kettle阻塞,阻塞多个分支的多个步骤
    场景:ETL沟通交流群内有小伙伴反馈,如何多个分支处理完毕之后记录下同步结果呢?或者是调用后续步骤、存储过程、三方接口等。解决:使用步骤Blockingstep进行阻塞处理即可。 1、 如下流程图中利用Blockingstep步骤同时阻塞【模拟表输出1】和【模拟表输出2】两个步骤,只有当两个步......
  • NetLimiter使用教程,并掌握其基本的网络管理和流量控制能力;NetLimiter的各种高级功能和
    NetLimiter的初级使用教程大纲,可以帮助用户快速了解和上手这个网络管理工具:安装和配置下载和安装NetLimiter启动NetLimiter,进行基本配置界面介绍熟悉NetLimiter的用户界面主要功能区域的介绍和作用限制应用程序的网络访问如何设置应用程序的上传和下载限速如......
  • Moretl 企业级文件采集 1.1.0.1
    Moretl全新Web配置界面,让工程师有更加简单的部署方式!步骤1:服务器部署Moretl文件采集服务.(管理员身份运行)步骤2:设备电脑打开[部署页面],点击[下载采集客户端].解压至合适位置,运行[Start.exe]步骤3:[部署页面]输入远程Token.看到刚刚部署的设备电脑.3.1......
  • kettle_Hbase
    kettle_Hbase☀Hbase学习笔记 读取hdfs文件并将sal大于1000的数据保存到hbase中前置说明:1.需要配置HadoopConnect将集群中的/usr/local/soft/hbase-1.4.6/conf/hbase-site.xml复制至Kettle中的Kettle\pdi-ce-8.2.0.0-342\data-integration\plugins\pentaho-big-data......
  • kettle从入门到精通 第六十六课 ETL之kettle kettle阻塞教程,轻松获取最后一行数据,so e
    场景:ETL沟通交流群内有小伙伴反馈,如何在同步一批数据完成之后记录下同步结果呢?或者是调用后续步骤、存储过程、三方接口等。解决:使用步骤Blockingstep进行阻塞处理即可。1、下面的demo演示从表t1同步数据至表t2(t1表中有三条数据,t2为空表,两个表表结构相同),然后数据同步完毕之后进......
  • kettle从入门到精通 第六十五课 ETL之kettle 执行动态SQL语句,轻松实现全量&增量数据同
    本次课程的逻辑是同步t1表数据到t2表,t1和t2表的表机构相同,都有id,name,createtime三个字段。 CREATETABLE`t1`(`id`bigintNOTNULLAUTO_INCREMENT,`name`varchar(10)CHARACTERSETutf8mb4COLLATEutf8mb4_general_ciDEFAULTNULL,`createtime`datetime......
  • Kettle调优教程(推荐收藏)
    1、调整JVM大小linux文件路径:data-integration/spoon.sh windows路径: -Xms1024m:设置JVM初始内存为1024m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。-Xmx2048m:设置JVM最大可用内存为2048M。-Xmn2g:设置年轻代大小为2G。整个JVM内存大小=年轻代大小......
  • kettle从入门到精通 第六十四课 ETL之kettle kettle中执行SQL脚本步骤,使用需当心
    1、群里有不定时会有同学反馈执行SQL脚本步骤使用有问题,那么咱们今天一起来学习下该步骤。trans中的执行SQL脚本有两方面功能,使用时需小心,不然很容易踩坑。官方定义: 翻译:您可以使用此步骤执行SQL脚本,可以选择在转换的初始化阶段执行一次,或者针对步骤接收的每一行输入执行一......
  • 大数据测试/ETL开发,如何造测试数据
    相信很多的小伙伴,有些是大数据测试岗位,有些是ETL开发,都面临着如何要造数据的情况。1,造数背景【大数据测试岗位】,比较出名的就是宁波银行,如果你在宁波银行做大数据开发,对着需求开发完代码之后,可能需要把代码提交给测试人员,那么测试人员会根据这个业务需求,他们会自己造一批数据......