让数据清澈如水:数据清洗的策略与方法

发布时间:2020.11.23来源:亿信华辰浏览量:103次标签:数据治理

在数据仓库中,数据是面向某一主题的数据的集合,这些数据从多个业务系统抽取而来,不同的数据来源加上历史数据的堆积,难免会有问题数据出现,这些问题数据大致可以分为三大类:不完整的数据、错误的数据以及重复的数据。数据清洗的职责就是分辨、处理这些问题数据。

数据清洗,顾名思义,就是把数据拿去“洗一遍”,把其中的脏数据给“洗掉”,简单来说,数据清洗就是发现并纠正数据中可识别的错误,从而来保持数据的完整性、唯一性、一致性等。

针对不同问题数据有哪些清洗方式?
1、不完整的数据
不完整的数据是指一条数据中记录某一特征的数据丢失了,比如员工信息表中名叫张三的员工的年龄缺失了。某些数据的缺失值可以从本数据源或其他数据源推导出来,像上例中的员工年龄就可以根据身份证号计算出来。除了这种特殊关系的数据缺失外,其他数据的缺失常用的清洗方法还有取平均值、最大值、最小值、计算结果值,或者取其他字段的值等等。

2、重复的数据
重复的数据就是相同的一条数据出现了两次或以上,对于重复的数据清洗起来比较简单,只需要根据主键或者其他规则删除多余的数据即可。

3、错误的数据
错误的数据又可以分成格式错误和内容错误两种。格式错误是指我们收集到的数据的格式跟我们期望的数据格式不一致,比如设计的库表字段为8位的日期“20200604”格式,但我们获取到的数据为“2020-06-04”,这种数据肯定是存不进数据库的,需要将其清洗成8位的日期字符串,我们可以先将“2020-06-04”转换为日期型的数据,然后再将日期转换为“YYYYMMDD”格式的字符串,也可以采用字符串分割在拼接的方法,依次取“2020-06-04”的1-4、6-7、9-10位拼接成一个新的字符串。

内容错误的数据检测处理则稍麻烦些,需要数据处理人员通过分析来找出脏数据。我们可以通过简单的黑名单或白名单来找出脏数据,只要一列数据中出现了黑名单上的值,就认为该数据是脏数据,并将其替换为我们预先准备好的指定值。

如何在数据工厂中进行数据清洗?
看完了上述数据清洗的方法和策略,大多数人还不太清楚实际操作中该如何清洗数据。下面就以亿信数据工厂为例为大家演示清洗数据的全流程。

假设我们现在有一张员工信息表,表中入职时间字段格式为“yyyyMMddHH:mm:ss”,我们要将其格式改为“yyyy-MM-dd HH:mm:ss”,然后存入新的目标表中,下面演示数据清洗的详细步骤。

新建连接池

第一步创建源端数据源连接。依次点击数据源 >> 连接池管理 >> 新建连接池 >> Oracle。

在弹出的对话框中输入数据库的信息,点击保存。

2.创建ETL过程

第二步创建清洗任务。依次点击,设计区 >> ETL过程 >> 新建,进入到ETL过程编辑器界面

依次将输入输出分组中的表输入、表输出组件和转换组件分组中的清洗组件拖到右侧编辑区,并按照表输入-清洗组件-表输出的顺序将组件连线。

双击点开表输入组件,选择刚刚创建的连接池,选择需要清洗数据的表。

双击点开清洗组件,点击“新增”按钮;在弹出的窗口左侧树上选择“日期时间字符串格式转换”,在右侧需要清洗的字段前面打上勾,并点击日期时间转换设置框中的右侧“...”按钮;在弹出的时间转换格式对话框中,选择转换前和转换后的字符串格式,这里选择的是将“yyyyMMddHH:mm:ss”转换为“yyyy-MM-dd HH:mm:ss”点击确定关闭所有对话框。

双击点开表输出组件,选择目标连接池和目标表;点击字段映射,在弹出的字段映射对话框中点击“字段自动映射”,选择“按文字匹配”,点击“确定”按钮关闭对话框。然后在关键字“NO_”后上打钩。

在表输出的目标设置界面中,更新方式选择“数据更新”,批量大小输入“1000”。点击确定,关闭组件设置对话框。这样清洗任务就创建完成了。

3.运行ETL,查看数据
点击上方工具栏中的“运行”按钮,运行完成后右键点击表输出组件,选择预览数据。
这时候可以看到入职时间的数据格式全都变成了“yyyy-MM-dd HH:mm:ss”。至此数据清洗成功。

亿信数据工厂中有数十个组件,内置了大量的数据清洗转换规则,还有SQL组件、表达式组件等支持用户通过SQL的方式自定义转换规则,实现一键清洗数据。通过数据工厂,可以简单、快速完成数据的清洗工作。感兴趣的小伙伴可前往亿信华辰官网申请试用哦~

3小程序.jpg

(部分内容来源网络,如有侵权请联系删除)
立即免费申请产品试用 免费试用
相关文章推荐
相关主题
您点击 “提交”,表明您已理解并同意接受本网站隐私政策和用户协议