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

一、数据一致性处理

通过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”选项卡,查看是否将不符合校验规则的数据检验出来。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值