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

kettle从入门到精通 第七十课 ETL之kettle kettle数据校验,脏数据清洗轻松拿捏的更多相关文章

  1. Spring Boot从入门到精通(七)集成Redis实现Session共享

    单点登录(SSO)是指在多个应用系统中,登录用户只需要登录验证一次就可以访问所有相互信任的应用系统,Redis Session共享是实现单点登录的一种方式.本文是通过Spring Boot框架集成Re ...

  2. Hibernate从入门到精通(七)多对一单向关联映射

    上次的博文Hibernate从入门到精通(六)一对一双向关联映射中我们介绍了一下一对一双向关联映射,本次博文我们讲解一下多对一关联映射 多对一单向关联映射 多对一关联映射与一对一关联映射类似,只是在多 ...

  3. [置顶] Hibernate从入门到精通(七)多对一单向关联映射

    上次的博文Hibernate从入门到精通(六)一对一双向关联映射中我们介绍了一下一对一双向关联映射,本次博文我们讲解一下多对一关联映射 多对一单向关联映射 多对一关联映射与一对一关联映射类似,只是在多 ...

  4. Python基础知识详解 从入门到精通(七)类与对象

    本篇主要是介绍python,内容可先看目录其他基础知识详解,欢迎查看本人的其他文章Python基础知识详解 从入门到精通(一)介绍Python基础知识详解 从入门到精通(二)基础Python基础知识详 ...

  5. ArcGIS10从入门到精通系列实验图文教程(附配套实验数据持续更新)

    @ 目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 本教程<ArcGIS从入门到精通系列实验教程>内容包括:ArcGIS平台简介.ArcGIS应用基础.空间数据的采集 ...

  6. 学习C++从入门到精通的的十本最经典书籍

    原文:http://blog.csdn.net/a_302/article/details/17558369 最近想学C++,找了一下网上推荐的书籍,转载过来给大家分享 转载自http://c.chi ...

  7. Spark入门到精通--(第十节)环境搭建(ZooKeeper和kafka搭建)

    上一节搭建完了Hive,这一节我们来搭建ZooKeeper,主要是后面的kafka需要运行在上面. ZooKeeper下载和安装 下载ZooKeeper 3.4.5软件包,可以在百度网盘进行下载.链接 ...

  8. Swift从入门到精通第七篇 - 扩展 初识

    扩展(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 扩展 为类.结构体.枚举.协议添加新功能,同OC的分类很像,但扩展没有名字 扩展可以添加计算实例属性和计算类型属性(不能添加 ...

  9. Linux的权限管理操作-Linux从入门到精通第七天(非原创)

    文章大纲 一.权限概述二.权限设置三.属主与属组设置四.扩展五.学习资料下载六.参考文章 一.权限概述 总述:Linux系统一般将文件可存/取访问的身份分为3个类别:owner.group.other ...

  10. Simulink仿真入门到精通(七) Simulink的回调函数

    7.1 什么是回调函数 Callback functions(回调函数)是因某种操作而除法对其调用的函数,如按下按钮或双击操作等. 常用的Simulink回调函数可应用在以下场合: 打开Simulin ...

随机推荐

  1. 双11特刊 | 一文揭秘云数据库RDS如何顺滑应对流量洪峰

    ​简介:从绿色低碳到硬核科技,看RDS如何用绿色科技助力2021"双11"? 双十一回顾 从平台到商家,再从物流到客户手中,云数据库RDS支撑着双11集团电商的在线业务.RDS首次 ...

  2. [PHP] Laravel 依赖注入使用不当引起的内存溢出

    业务逻辑: 正常在 controller 方法的参数中注入某个类,方法中使用这个类时发生内存超出提示. 分析: 过往显示,正常使用依赖注入是不存在问题的,那么很有可能是哪里发生了循环引用,导致一直请求 ...

  3. VSCode 打开ESP32工程问题

    一.无法跳转 问题现象: 打开ESP32工程头文件提示波浪线不跳转,如下图所示: 解决办法: 删除工程中.vsccode文件夹下的所有文件 VSCode 中打开命令行搜索 ESP-IDF 找到`添加 ...

  4. C语言程序设计-笔记7-指针

    C语言程序设计-笔记7-指针 例8-1  利用指针模拟密码开锁游戏. #include<stdio.h> int main(void) { int x=5342;          //变 ...

  5. JWT 构建Rails API 授权登录

    目录 安装jwt组件 创建base_controller.rb控制器 配置路由 用户登陆-api接口 验证用户token信息-api接口(*) 参考下面的连接 使用Rails构建JSON-API ht ...

  6. docker-compose部署EFK

    参考 docker_compose_efk elasticsearch.kibana.filebeat https://github.com/haimait/docker_compose_efk do ...

  7. 等保测评--postgresql修改默认超级用户,建立普通用户使用

    1.postgresql权限说明 SELECT INSERT UPDATE DELETE TRUNCATE REFERENCES TRIGGER CREATE CONNECT TEMPORARY EX ...

  8. 渐变颜色css设置

    小说付费章节渐变颜色配置 position: absolute; top: 0; left: 0; width: 100%; height: 211px; transform: translateY( ...

  9. Vue 渲染模板时怎么保留模板中的HTML 注释呢?

    在组件中将 comments 选项设置为 true ...

  10. 使用 Docker 部署 WebTop 运行 Linux 系统

    1)项目介绍 GitHub:https://github.com/linuxserver/docker-webtop WebTop 它是一个基于 Linux ( Ubuntu 和 Alpine 两种版 ...