首页技术文章正文

ETL常见三类数据清洗的策略

更新时间:2021-06-08 来源:黑马程序员 浏览量:

数据的清洗转换是指将抽取到的数据源表中的数据,根据数据仓库系统模型的要求进行数据的清洗、转换等操作,保证来自不同系统、不同格式数据的一致性和完整性,并且要按照业务要求加载到目标表。数据的清洗转换是ETL中最复杂的部分,主要任务是过滤掉不符合要求的数据。不符合要求的数据主要是有不完整的数据、错误的数据、重复的数据三大类。下面针对不符合要求的三大类数据进行详细介绍。


1.不完整的数据

数据上报、接口调用时都会产生大量的不完整数据,不完整数据的产生是不可避免的现象,而不完整的数据对大数据环境下的决策具有一定的影响。不完整数据主要包括缺失部分信息的数据。检测不完整数据的方法具体如下。

缺失部分或全部内容的数据主要是采用计算机和人工相结合的方法进行查找,并对缺失的内容进行填充处理。不完整数据的清洗流程如图所示。

不完整数据清洗

在上图中,不完整数据的清洗流程主要分为3个步骤,具体如下。

(1)对获得的数据源进行不完整数据的检测,为后续的数据处理提供所需的数据。

(2)对检测出来的不完整数据进行处理,如修复缺失部分或全部内容的数据。

(3)输出处理后的符合要求的完整数据。


2. 错误的数据

大数据环境下数据量的剧增使得获取到的数据源会由于各种原因存在大量的错误数据。

错误数据产生的原因是业务系统不够健全,在接收输人数据后没有进行过滤判断,而是直接将数据写人后台数据库造成的,如数值数据输成全角数字字符、字符串数据后面出现一个回车操作、日期格式不正确、日期越界等错误。错误数据的清洗流程如下图所示。

错误数据清洗

在上图中,错误数据的清洗流程主要分为3个步骤,具体如下。

(1)将数据源按照规定的数据格式进行检测,并执行数据预处理,为后续的处理步骤做准备。

(2)对预处理后的数据进行一致性检测,如果预处理后的数据与原始数据存在完整性不一致的问题,则通过数据修改过程使数据统一。为避免再次出现该问题,应重复进行检测与修改过程,直到符合要求为止。

(3)输出修改后的数据。


3.重复的数据

产生重复的数据原因较多,如数据集成、系统重复录人等,通常表现为多条记录表达的含义相同,或同一目标实体的记录虽然在形式上有所不同,但其描述的目标却相同。这些重复记录的数据特征并不明显,但是对数据识别和数据清洗造成了很大的难度。因此,对重复记录数据进行清洗,可以提高数据库的使用率,降低系统消耗,并提高数据的质量。

重复数据检测主要分为基于字段和基于记录的重复检测。基于字段的重复检测算法主要为编辑距离算法基于记录的重复检测算法主要包括排序邻居算法、优先队列算法、NGram聚类算法。采用排序合并算法清洗重复数据的流程如图所示。

清除重复数据

在图中,重复数据的清洗流程主要分为4个步骤,具体如下。

(1)通过对源数据库属性段的分析,找到属性的唯-值,并根据唯值对源 数据库中的数据记录进行排序,可以选择自上而下或者自下而上的顺序排序。

(2)按顺序扫描数据库中的每一条记录 ,并将它与相邻的记录进行比较,进行记录的相似度匹配计算,输出修改后的数据。

(3)如果计算出的相似度数值大于系统设定的阈值,说明该记录或连续的几条记录为相似重复记录,则进行数据记录的合并或删除操作;否则扫描下一条数据记录,重复以上第(2)、(3)步骤。

(4)当所有数据记录检测完毕后,输出清洗后的数据结果。



猜你喜欢:

认识Scala的数据类型

Hadoop实现join的几种方法

HDFS存储架构

黑马程序员python+大数据培训课程

分享到:
在线咨询 我要报名
和我们在线交谈!