码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • kettle从入门到精通 第七十课 ETL之kettle kettle数据校验,脏数据清洗轻松拿捏


    合集 - kettle(18)
    1.kettle从入门到精通 第五十一课 ETL之kettle Avro input04-052.kettle从入门到精通 第五十二课 ETL之kettle Avro output04-143.kettle从入门到精通 第五十三课 ETL之kettle MQTT/RabbitMQ producer 实战04-214.kettle从入门到精通 第五十三课 ETL之kettle MQTT/RabbitMQ consumer实战04-215.Kettle调优教程(推荐收藏)06-046.kettle从入门到精通 第五十五课 ETL之kettle Excel输入05-057.kettle从入门到精通 第五十六课 ETL之kettle Microsoft Excel Output05-058.kettle从入门到精通 第五十八课 ETL之kettle HTTP post使用教程05-109.kettle从入门到精通 第五十九课 ETL之kettle 邮件发送多个附件,使用正则轻松解决05-1210.kettle从入门到精通 第六十课 ETL之kettle for循环处理每条数据,so easy!05-1511.kettle从入门到精通 第六十三课 ETL之kettle kettle调用python脚本的两种方法05-2512.kettle从入门到精通 第六十四课 ETL之kettle kettle中执行SQL脚本步骤,使用需当心06-0313.kettle从入门到精通 第六十五课 ETL之kettle 执行动态SQL语句,轻松实现全量&增量数据同步06-0414.kettle从入门到精通 第六十六课 ETL之kettle kettle阻塞教程,轻松获取最后一行数据,so easy06-0815.kettle从入门到精通 第六十七课 ETL之kettle 再谈kettle阻塞,阻塞多个分支的多个步骤06-1016.kettle从入门到精通 第六十八课 ETL之kettle kettle随机数生成的一些方案06-1217.kettle从入门到精通 第六十九课 ETL之kettle kettle cdc mysql,轻松实现实时增量同步06-14
    18.kettle从入门到精通 第七十课 ETL之kettle kettle数据校验,脏数据清洗轻松拿捏06-15
    收起

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

     

  • 相关阅读:
    判断线程池任务执行完成的方式
    探索 Linux Namespace:Docker 隔离的神奇背后
    Linux 之 journalctl 查看系统与 kernel 日志
    sharding-jdbc分库分表(一)
    javaScript贪吃蛇
    【Hadoop】序列化、反序列化、序列化案例实操(包括Windows本地运行,hadoop集群运行)
    【iOS开发】——weak底层原理
    73.矩阵置零
    【阿旭机器学习实战】【18】KMeans聚类中的常见问题
    【C++】容器
  • 原文地址:https://www.cnblogs.com/zjBoy/p/18249126
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号