前言:基于人大的《数据科学概论》。第四章,数据清洗与数据集成。主要内容分为三部分:数据抽取、转换和装载;数据清洗;数据集成。
文章目录
一、数据抽取、转换和装载
简说:面向数据服务(或者OLTP)应用的数据库,一般不运行特别复杂的数据分析任务。
- 为了对数据进行分析,我们从这些数据库里,抽取、转换和装载(Extract,Transform and Load ,ETL)数据到数据仓库中,进而在它之上运行复杂的分析负载,包括OLTP分析和数据挖掘,从数据里挖掘模式和知识。
- 如果从多个异构的数据源ETL数据到数据仓库中,而且这些数据源存在各种异构性及不一致性,那么就需要对数据进行
集成
。 - 在进行ETL操作时,如果数据源的数据质量较差,在进行数据转换时,需要利用数据清洗技术,解决数据质量问题,
数据清洗
是一种消除数据里面的错误、去掉重复数据的技术。
(1)数据清洗
1、数据清洗的意义
- 基于准确的数据(高质量)进行分析,才有可能获得可信的分析结果,基于这些分析结果,才有可能做出正确的决策。
- 在以下的讨论中,我们将围绕关系数据模型进行讨论。同样的原理和方法,在其他类型数据的清洗中,也可以灵活运用。
2、数据异常的不同类型
-
语法类异常
- 词法错误。比如在一张人员表中,每个实体有四个属性,分别是姓名、年龄、性别和身高,某些记录里只有三个属性,这就是词法异常。
- 值域格式错误。比如姓名是字符串类型,在名和姓之间有一个“,”,那么“John ,Smith“是正确的值,而”John Smith“则不是正确的值。
- 不规则的取值。比如在一个数据库表里,员工的工资字段,有的是用“元”作为单位,有的是用“万元”作为单位。
4.
-
语义类异常
- 违反完整性约束规则。比如,我们规定员工表的工资字段必须大于0,如果某个员工的工资<0,那么就违反了完整性约束规则。
- 数据中出现矛盾。如果在数据库表里面,某位员工的实发工资,不等于应发工资减去所得税,那么就出现了矛盾。
- 数据的重复值。他指的是两个或两个以上的元组表示同一个实体。不同元组的各个属性的取值可能不是完全相同的。
- 无效元组。它指的是某些元组并没有表示客观世界的有效实体。比如,学生表里有一个学生,名字是“王五”,但是学校里并没有这个人。
-
覆盖类异常
- 值的缺失。它指的是,在进行数据采集的时候,就没有采集到相应的数据。(名册上有,现实中无)
- 元组的缺失。他指的是,在客观世界中,存在某些实体,但是并没有在数据库中通过元组表示出来。(现实中有,名册上无)
3、数据质量
简说:数据质量是个相当宽泛的概念,它包含很多方面。针对某个数据集,我们根据若干评价标准,对数据集的质量进行评价。然后把这些评价标准下的得分进行综合,可以获得一个关于数据