1 数据抽取
ETL(Extract-Transform-Load)是将数据从来源端经过抽取(extract)、转换(transform)、加载
(load)⾄⽬的端的过程。从数据源抽取出所需要的原始数据,经过数据清洗,最终将清洗后的数据加
载到数据仓库中去。也称为数据仓库技术。
- 数据源通过采集的⽅式获取, 保存到数据仓库
- 通过数据清洗,处理完成落地到数据仓库
- 供业务使⽤
数据抽取是从数据源抽取需要的原始数据,抽取的⽅式多种多样,要根据数据源的特点来确定,通常有
如下⼏种数据抽取的⽅式:
1、从关系数据抽取数据
通常OLTP系统采⽤关系数据库存储业务操作数据,从关系数据库抽取操作型数据是最多⼀种数据抽取
⽅式。
数据从关系数据库抽取后通常会先以⽂件的⽅式存储到分布式⽂件系统中(例如HDFS),⽅便ETL程序
读取原始数据。也有的是将抽取后的数据直接存储到数据仓库中,采⽤第⼆种⽅法需要提前在数据仓库
创建与原始数据相同结构的数据仓库模型。
2、从⽇志⽂件抽取
OLTP系统通过⽇志系统将⽤⼾的操作⽇志、系统⽇志等存储在OLTP服务器上,由专⻔的采集程序从服
务器上采集⽇志⽂件信息。
3、从数据流接⼝抽取
OLTP系统提供对外输出数据的接⼝(⽐如telnet),采集系统与该接⼝对接,从数据流接⼝抽取需要的
数据。
2 数据转换数据转换也叫数据清洗转换,是将采集过来的原始数据(通常原始数据存在⼀定的脏数据)清洗(过
虑)掉不符合要求的脏数据,根据数据仓库的要求对数据格式进⾏转换,经过数据清洗转换后是符合数
据仓库要求的数据。
要清洗的脏数据的形式有:
1、错误的数据
存在数据内容错误的信息,⽐如学⽣选课信息中课程标识错误或选课⽇志⾮法等。
2、不完整的数据
是指信息不完整,⽐如学⽣选课信息中缺少学⽣或缺少课程的信息,这类信息是不符合学⽣选课数据模
型的要求。
3、重复数据
第三类数据是要根据具体的业务进⾏单独去重操作,⽐如:同⼀个课程学习会话中只允许有⼀条学习记
录,这⾥就要根据会话ID对数据进⾏去重操作。
数据转换的形式有:
1、数据格式转换
对数据的格式进⾏转换,通常转换后数据内容是不变的,⽐如:数据仓库要求的⽇期存储格式是
yyyymmdd,⽽采集过来的数据格式是yyyy-mm-dd,这⾥需要将yyyy-mm-dd的格式转换为
yyyymmdd。
2、数据内容转换
对数据内容进⾏转换,通常数据内容转换后是不会改变原始数据内容的意义的,⽐如:数据仓库要求存
储⽤⼾所在区域,这⾥就需要根据采集过来的⽤⼾IP地址从IP库中查找出⽤⼾的IP地址所对应的区域信
息,这⾥根据IP地址转换为区域就是数据内容的转换。
3 数据加载
数据加载就是清洗转换后的数据存储到数据仓库中,数据加载的⽅式包括:全量加载、增量加载。
全量加载:
全量加载相当于覆盖加载的⽅式,每个加载都会覆盖原始数据将数据全部加载的数据仓库,此类加载⽅
式通常⽤于维度数据。
增量加载:
增量加载按照⼀定的计划(通常是时间计划)逐步的将数据⼀批⼀批的将数据加载到数据仓库,此类加
载⽅式通常⽤于OLTP的业务操作数据。