在kettle中实现数据验证和检查

在ETL项目,输入数据通常不能保证一致性。在kettle中有一些步骤能够实现数据验证或检查。验证步骤能够在一些计算的基础上验证行货字段;过滤步骤实现数据过滤;javascript步骤能够实现更复杂的计算。

通常以某种方式查看那些数据是有缺陷的也是实用的,由于大多数ETL是无人值守执行的,所以通常ETL程序会把这些缺陷数据通知给ETL开发人员或管理员。建议把这些问题数据行保存到一个特定的公共表格中,以便跟踪这些数据;那么该表格应该包含一些元信息,如:执行转换的名称、验证错误及错误描写叙述等。

这里下载演示样例文件,csv输入文件里记录客户到达和离开的两个健身场所,转换程序验证客户ID,场所名称,日期格式,给定日期的合理性。正确的数据写入到excel文件,错误数据重定向到错误收集步骤,每行错误数据被拼成一个字符字段,同一时候也收集一些关于转换的元数据信息及错误描写叙述,终于这些错误数据行信息保存到还有一个excel文件。

实际场景中输出步骤更可能是表输出步骤,“get System Info”步骤会收集很多其它数据,之后的错误手机步骤,最好使用子转换,为了在其它转换中重用。

以结构化的方式保存验证错误也使非常好地方便数据监測成为可能,ETL过程完毕后,能够简单地发送邮件给管理员,简短的说明关于包含错误代码,转换名称,BATCH_ID等数据的缺陷,以及不论什么你须要的元数据。假设你工作是关于DWH或BI方面的,如今手头已经有了必要的工具。假设您不想使用的excel报告的方式,你可能仍然使用kettle的job创建一个简短的报告文件,并邮寄给了管理员。

在kettle中实现数据验证和检查的更多相关文章

  1. Java中的数据验证

    原文链接:https://www.cuba-platform.com/blog/2018-10-09/945 翻译:CUBA China CUBA-Platform 官网 : https://www. ...

  2. WPF中的数据验证

    数据验证 WPF的Binding使得数据能够在数据源和目标之间流通,在数据流通的中间,便能够对数据做一些处理. 数据转换和数据验证便是在数据从源到目标 or 从目标到源 的时候对数据的验证和转换. V ...

  3. .NET MVC中的数据验证

    一  概述 关于数据验证和数据注解,是任何软件系统不可小觑的必要模块,主要作用是为了保证数据安全性.防止漏洞注入和网络攻击.从数据验证的验证方式来说,我们一般分为客户端验证和服务端验证(或者两种方式相 ...

  4. [WPF] 在 ViewModel 中让数据验证出错(Validation.HasError)的控件获得焦点

    1. 需求 在 MVVM 中 ViewModel 和 View 之间的交互通常都是靠 Icommand 和 INotifyPropertyChanged,不过有时候还会需要从 MVVM 中控制 Vie ...

  5. C#:实体类中做数据验证

    主要是在实体类中验证 using System; namespace Jone.Function.attribute{        /// <summary>        /// 附加 ...

  6. javaweb从mysql中获取数据验证用户名密码成功跳转,失败重新验证

    要求:validate.jsp页面中获取请求参数(request.getparameter(“name属性的值”)),注意中文参数获取之前要设置请求编码(request.setCharaterEnco ...

  7. struts2(三)---struts2中的服务端数据验证框架validate

    struts2为我们提供了一个很好的数据验证框架–validate,该框架可以很方便的实现服务端的数据验证. ActionSupport类提供了一个validate()方法,当我们需要在某一个acti ...

  8. 【转】Struts1.x系列教程(2):简单的数据验证

    转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/13/251197.html 简单验证从本质上说就是在服务端 ...

  9. 我这么玩Web Api(二):数据验证,全局数据验证与单元测试

    目录 一.模型状态 - ModelState 二.数据注解 - Data Annotations 三.自定义数据注解 四.全局数据验证 五.单元测试   一.模型状态 - ModelState 我理解 ...

随机推荐

  1. vue 事件参数传$event打印当前组件

    <template> <div class="hello"> <button v-on:click.once="getinfo($event ...

  2. NOIp2018模拟赛三十二

    继续挂成傻逼 成绩:100+0+10(90)=110 A全场一眼题,C没取模挂八十分,然后没特判特殊情况又挂十分 A:[agc009b]tournament(太简单,咕了) B:[ATC2142]Bu ...

  3. 页面加载完成触发input[type="file"]控件问题

    由于浏览器厂家的限制,不同的浏览器不开放页面加载完成就允许触发input[type="file"]控件 测试 Chrome .火狐 .IE .微信客户端QQ =>桌面端: C ...

  4. react-native之文件上传下载

    目录 文件上传 1.文件选择 2.文件上传 1.FormData对象包装 2.上传示例 文件下载 最近react-native项目上需要做文件上传下载的功能,由于才接触react-native不久,好 ...

  5. HTTP——学习笔记(3)

    HTTP报文:用于HTTP协议交互的信息,客户端的HTTP报文叫做 请求报文,响应端的叫做 响应报文 本质:是由多行(用CR+LF作换行符)数据构成的字符串文本 注:CR:回车,打印针回到行首   L ...

  6. Android 仿 窗帘效果 和 登录界面拖动效果 (Scroller类的应用) 附 2个DEMO及源代码

    在android学习中,动作交互是软件中重要的一部分.当中的Scroller就是提供了拖动效果的类,在网上.比方说一些Launcher实现滑屏都能够通过这个类去实现.以下要说的就是上次Scroller ...

  7. 6.5.2 C# 中的函数组合

    6.5.2 C# 中的函数组合 C# 中的函数组合是可能的.但使用非常有限,这是部分是由于在 C# 中散应用不能非常easy使用.但更重要的是,由于大多数操作是用成员来写的.而不是函数.但我们至少能够 ...

  8. input range 模拟滑块

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  9. jsp学习-分页功能的实现

    <%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%> < ...

  10. thinkPHP的模板是做什么用的

    thinkPHP的模板是做什么用的 问题 为什么PHP中ThinkPHP有做类似模板引擎的东西?smarty也是?这些到底有何用? 我是真没发现它们的用处在哪里?分离了前端和PHP的依赖?HTML文件 ...