1.基于ETL的数据清洗
1.1 ETL的概念
ETL是英文Extract-Transform-Load的缩写,用来描述将数据从源端经过抽取、转换、加载至目的端的过程。
企业中常用的ETL实现有多种方法,常见方式如下:
(1)借助ETL工具。
(2)编写SQL语句。
(3)将ETL工具和SQL语句结合起来使用。
1.2 ETL的体系结构
ETL主要是用来实现异构数据源数据集成的,多种数据源的所有原始数据大部分未作修改就被载入ETL,集成后的数据被置于数据库的数据表和数据仓库的维度表中。
图中数据源1和数据源2均为功能强大的DBMS,则可以通过SQL语句完成一部分数据清洗工作。
2.ETL关键技术
ETL关键技术一共有3部分,分别是数据的抽取、数据的清洗转换以及数据的加载。
2.1 数据的抽取
数据抽取就是从异构数据源中抽取数据,但是并不是所有数据源中的数据都有实际的价值。
数据抽取分为全量抽取和增量抽取,增量抽取有四种方法:触发器方式,时间戳方式,全表对比方式,日志表方式。
2.2 数据的清洗转换
数据的清洗转换是将抽取到的数据源表中的数据,根据数据仓库系统模型的要求进行数据的清洗、转换等操作,保证来自不同的系统、不同格式数据的一致性和完整性,并且按照要求加载到目标表中。数据的数据清洗是ETL中最复杂的部分。
针对不符合要求的三的类数据进行详细的介绍:
1.不完整的数据
不完整的数据清洗主要有三个步骤:
(1)对获得的数据源进行不完整数据的检测,为后续的数据处理提供所需的数据。
(2)对检测出来的不完整数据进行处理,如修复缺失部分或全部内容的数据。
(3)输出处理后的符合要求的完整数据。
2.错误的数据
错误数据的产生原因是业务系统不够健全。
错误数据的数据清洗有三个步骤
(1)将数据源按照规定的数据格式进行一致性检测,并执行数据预处理,为后续处理步骤做准备。
(2)对数据格式进行检测,如果出现不一致问题,则通过数据修改过程使数据统一。为避免再次出现这个问题应重复进行检测与修改问题,直到符合要求为止。
(3)输出修改后的数据。
3.重复的数据
重复数据的数据清洗主要有四个流程:
(1)通过对源数据库属性段的分析,找到唯一的属性值,并根据唯一值对源数据库中的数据记录进行排序,可以选择自上而下或自下而上的的排序方式。
(2)按顺序扫描数据库中的每一条数据,并将它相邻的记录进行比较,进行记录的相似度匹配计算。输出后的数据。
(3)如果计算出的相似度数值大于系统设定的阈值,说明该记录和连续的几条记录为重复记录,则进行数据的合并或删除操作。
(4)当所有记录检查完之后输出数据清洗后的数据结果。
2.3 数据的加载
数据加载是ETL的最后一个阶段,它的主要任务是将数据从临时数据表或文件中加载到指定的数据库中。
1.全量加载
全量加载是指全表删除后再进行全部数据加载。从技术的角度上来说,全量加载和增量加载相比,全量加载更简单。
2.增量加载
增量加载是指目标表仅更新源数据表中的变化的数据。
ETL的增量加载类似于增量抽取,同样有四种方式,分别是时间戳方式、日志表方式、全表对比方式、全表删除插入方式。