ETL笔记——第五章 数据清洗与校验(数据检验)

2023-10-26

一、数据一致性处理

通过Kettle工具,使用弱一致性对数据表Personnel_Information中的数据进行一致性处理,即利用数据表Personnel_Information中的字段GENDER中的值训练出一个健康值预测模型,用于将原始数据中的字符串特征转化为模型可识别的数字特征。

1、数据准备

现在数据库中有一张名为Personnel_Information的数据表,该表中主要记录了500名职员的性别、身高、体重及健康值,具体数据内容如图所示(注:这里只截取数据表中的部分数据进行展示)。

 

2、data _consistency转换

(1)创建一个转换data _consistency,并添加“表输入”控件、“值映射”控件、“插入/更新”控件以及Hop跳连接线。

 

(2)各控件配置

1)配置“表输入”控件

配置数据库连接。

在SQL框中编写查询数据表Personnel_Information的SQL语句。

 

 

查看数据表Personnel_Information的数据是否成功从MySQL数据库中抽取到表输入流中。

 

2)配置“值映射”控件

在“使用的字段名”处的下拉框选择字段GENDER;在“字段值”框中,添加源值和目标值,这里是将Male替换成数字0,将Female替换成数字1。

 

3)配置”插入/更新”控件

单击目标表右侧的【浏览】按钮,选择目标表Personnel_ Information_New。单击【获取字段】按钮,用来指定查询数据所需要的关键字,这里选择的是Personnel_ Information_New数据表中的USERID字段和输入流里面的USERID字段;单击【获取和更新字段】按钮,用来指定需要更新的字段。

 

3、运行data _consistency转换

通过SQLyog工具,查看数据表Personnel_ Information_New是否已成功插入501条数据,查看结果如图所示。

(注:由于转换data _consistency的运行只是单次的,若是后续需要进行将原始数据进行转换、插入操作,则需要运行该转换,这样工作效率很低,因此,通过Kettle工具创建一个作业,对转换data _consistency设置定时器,使得转换data _consistency程序定时自动执行数据同步的操作。)

 

二、数据规范化处理

通过Kettle工具,对数据进行检验操作。

1、data_validation转换

(1)创建一个转换data_validation,并添加“自定义常量数据”控件、“计算器”控件、“数据检验”控件、“空操作”控件以及Hop跳连接线。

 

(2)各控件配置

1)配置”自定义常量数据”控件

在该控件里配置实验用的数据;单击“元数据”选项卡,添加字段常量ProductionDate、ProductionName、ProductionNumber以及CommoditySales并指定其数据类型;单击“数据”选项卡,添加自定义的数据。

 

 

2)配置”计算器”控件

添加一个新字段UnitPrice,用于存储计算出的产品单价数据;在“字段A”和“字段B”处的下拉选项中分别选择“CommoditySales”(销售额)和“ProductionNumber”(销售数量)字段;在“计算”处的下拉框中选择“A/B”,即表示将字段A与字段B进行相除计算。

 

3)配置”数据检验”控件

这里我们制定的检验条件有三个,即日期(ProductionDate)不能在2019年1月1日之前、产品名称(ProductionNumber)必须都是小写以及单个产品价格(UnitPrice)不能超过10这三个检验条件;

单击【增加检验】按钮,弹出“输入检验的名称”窗口,在该窗口中添加检验名称date_verify用于校验如期,添加后单击【确定】按钮关闭“输入检验的名称”窗口。在“要检验的字段名”处,添加要检验的字段;在“错误代码”和“错误描述”处自定义检验到错误数据时日志的输出内容;勾选“检验数据类型”处的复选框;在“数据类型”处指定数据类型;在“转换掩码”处输入与指定检验字段相同的日期格式;在“最小值”处添加检验条件。

 添加检验名称name_verify用于校验商品名称,对其进行如下配置(这里添加的正则表达式用于校验产品名称是否为小写)。

 添加检验名称price_verify用于校验产品单价,对其进行如下配置。

 

4)配置”空操作(什么也不做)”控件

单击选中“数据检验”控件,然后按住Shift键,通过分发方式设置“主输出步骤”连接到“空操作(什么也不做)”控件;设置“错误处理步骤”连接到“空操作(什么也不做)2”控件。

 

2、运行data_validation转换

选中“空操作(什么也不做)2”控件,单击执行结果窗口的“Preview data”选项卡,查看是否将不符合校验规则的数据检验出来。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ETL笔记——第五章 数据清洗与校验(数据检验) 的相关文章

  • 内网穿透两种方式

    一 内网穿透引入 你是否被以下问题所困扰 我想装个B让其他同学在外网访问我的程序 应该怎么办 接了个小外包 给客户演示Demo没有站点怎么办 做微信 支付宝支付等其他第三方平台的功能 没有外网回调地址 应该怎么办 内网穿透 又叫NAT穿透

随机推荐

  • ODOO 安装

    ODOO 安装 对初学者而言 ODOO 的安装是横在面前的第一道坎 必须过的 和几年前情况不同 最近几年 ODOO在安装方面已经大幅改进 不需要太专业的技能也能完成安装过程 下面先说说大致的安装过程 有空再补上详细的图片和步骤 准备工作 1
  • [2017年第八届真题] 分巧克力

    题目 传送门 思路 二分答案 写个check函数 对每个mid进行检查可行性 结果再检查能不能切割出k块或以上的 l l 的巧克力 不能的话 要 1 Code include
  • 七、Hadoop系统应用之搭建Hadoop高可用集群(超详细步骤指导操作,WIN10,VMware Workstation 15.5 PRO,CentOS-6.7)

    Hadoop集群搭建前安装准备参考 一 Hadoop系统应用之安装准备 一 超详细步骤指导操作 WIN10 VMware Workstation 15 5 PRO CentOS 6 7 一 Hadoop系统应用之安装准备 二 超详细步骤指导
  • 大话赛宁云

    如今 随着数字时代的飞速发展 安全漏洞存在于网络空间中 对系统造成极大的安全隐患 为网络攻击者的恶意入侵提供了捷径 对此 解决这一困境 要秉承 快速 自动 安全 的解决标准 首先需要高技术手段的支持 实施常态化演练 及时发现安全漏洞 测评危
  • 暑期必须要学习的52个Python+OpenCV实战项目

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 有个粉丝前几天问我 本人小白一枚 看了很多深度学习 机器学习以及图像处理等视频和书之后 理论有一些长进 但是实际运用能力不足 从反面也是由于理论认识不足所致 所以想问问有
  • 完整的vuejs + django 前后端分离项目实践(登录,注册,权限控制,可视化)

    完整的vuejs django 前后端分离项目实践 登录 注册 权限控制 可视化 vuejs是一个流行的前端框架 django是一个python非常流行的web框架 在某期的作业中 需要基于它两实现一个前端后分离 并且拥有权限管理的系统 声
  • 哈夫曼编码

    哈夫曼编码 Huffman Coding 又称霍夫曼编码 是一种编码方式 哈夫曼编码是可变字长编码 VLC 的一种 Huffman于1952年提出一种编码方法 该方法完全依据字符出现概率来构造异字头的平均长度最短的码字 有时称之为最佳编码
  • sqlmap配置

    1 我们先去sqlmap官网上下载sqlmap的压缩包 2 把解压后的压缩包放在python27的安装路径下 这个路径指的是 然后配置环境变量 新增一个D python2 7 17 sqlmap sqlmapproject sqlmap 1
  • 感谢导师每次组会的锻炼,让我收获今年最想去的一个offer

    题解 名单中出现过的人 a input tuple1 tuple Tom Tony Allen Cydin Lucy Anna print tu 神策校园招聘来啦 你想要跟老板们扁平化相处吗 你想每天吃不完的水果零食饮品不限量吗 毕业第一份
  • 笔记-flowable工作流开启节点自动跳过

    flowable工作流开启节点自动跳过 笔记 开始 准备工作 1 flowable支持流程跳转的功能 在流程图绘画的时候可以设置一个表达式让节点自动跳过 2 在流程开启时需要设置参数 笔记 开始 我们在使用工作流时经常会遇到需要自动跳过节点
  • HTML

    HTML 下拉框和文本域 文件域 1 下拉框 在平时我们填问卷或者冲浪的时候做筛选的时候都会遇到下拉框 html写一个下拉框的方式是使用select标签 name和id是默认属性
  • Android问题集(五)——解决提示:The method **() is undefined for the type ***()

    使用情景 在非Activity子类方法中 有时想要调用Activity类特有的方法 系统会提示无该方法The method is undefined 思路 将Activity的父类Context作为方法参数 通过context调用该方法 例
  • Fckeditor常见漏洞的挖掘与利用整理汇总

    查看编辑器版本 FCKeditor whatsnew html 2 Version 2 2 版本 Apache linux 环境下在上传文件后面加个 突破 测试通过 3 Version lt 2 4 2 For php 在处理PHP 上传的
  • Django 快速搭建博客 第十一节(文章阅读量统计,自动生成文章摘要)

    这一节主要做一些修补工作 一个是 文章阅读量的统计 另一个是自动生成文章摘要内容 1 文章阅读量的统计 1 文章阅读量的统计 我们需要在model下的Post类中新加入一个views 字段用来统计文章被阅读的数量 blog models p
  • 是否二叉搜索树

    习题4 3 是否二叉搜索树 25分 本题要求实现函数 判断给定二叉树是否二叉搜索树 函数接口定义 bool IsBST BinTree T 其中BinTree结构定义如下 typedef struct TNode Position type
  • Go语言函数

    http www jb51 net article 56831 htm Go语言中的函数有系统函数和自定义函数 1 系统函数 系统函数就是Go语言自带的函数 系统函数一般根据功能封装在不同的包内 比如Print Printf Println
  • 微信聊天记录导出工具WeChatExporter开源啦!

    2019年08月21日更新 距离第一次发布软件已经有了许多新功能和稳定性上的提升 本文的一些内容已经过时 欢迎直接到GitHub上看ReadMe https github com tsycnh WeChatExporter 之前曾经写过一个
  • 消息队列 - RabbitMQ - 拓展

    1 Message 状态 Message 在投递时 如果当前 Queue 没有 Message 且有 Consumer 已经订阅了这个 Queue 那么该 Message 会直接发送给 Consumer 不会经过 Queue 存储 Mess
  • 在 Substance Painter中自定义Shader

    为什么要学习在Substance Painter中自定义Shader 答 需要实现引擎与Substance Painter中的渲染效果一致 材质的配置也一致 所见即所得 基础概述 首先在着色器设置这里 我们可以查看当前渲染使用的着色器 如果
  • ETL笔记——第五章 数据清洗与校验(数据检验)

    一 数据一致性处理 通过Kettle工具 使用弱一致性对数据表Personnel Information中的数据进行一致性处理 即利用数据表Personnel Information中的字段GENDER中的值训练出一个健康值预测模型 用于将