文档介绍:ETL的主要步骤
ETL(Extract Transform Loading, 数据抽取转化装载规则)是负责完成是数据源数据向数据仓库数据的转化的过程。是实施数据仓库中最重要的步骤。可以形象的说,ETL的角色相当于砖石修葺成房子的过程。在数据仓库系统设计中最难的部分是用户需求分析和模型设计,那么工作量最大的就是ETL规则的设计和实施了,它要占到整个数据仓库设计工作量的60%-70%,甚至更多。
下面是本人对ETL的几个重要步骤理解,和大家分享!
一、ODS区的数据采集: 最主要作用为了尽量减少对业务系统的影响。表结构可以不必和DW一致。根据具体业务需求和数据量情况,将数据源的数据放入ODS有各种不同的方法,比如 Oracle的数据库链路,表复制,SQL*LOADER,Teradata的Fastload,Sysbase的BCP等等。
需要解决的问题包括:
a、数据的时间差异性问题
在抽取旧有数据时,要将不同时期的数据定义统一,较早的数据不够完整或不符合新系统的数据规范,一般可以根据规则,在存入中转区的过程中予以更新或补充。
b、数据的平台多样性问题
在抽取旧有数据时,大部分数据都可采用表复制方式直接导入数据中转区集中,再做处理,但有部分数据可能需要转换成文本文件或使用第三方工具如 Informatica等装载入数据中转区。这部分数据主要是与数据中转区数据库平台不一致的数据库数据,或非存储于数据库内的文本、excel等数据。
c 、数据的不稳定性问题
对于重要信息的完整历史变更记录,在抽取时可以根据各时期的历史信息,在抽取需要信息等基本属性的旧有数据时,要与相应时段的信息关联得到真实的历史属性。
d 、数据的依赖性问题
旧有业务系统的数据关联一般已有约束保证,代码表和参照表等数据也比较准确,但仍有少量数据不完整,对这部分数据,需根据地税的需求采取清洗策略,保证数据仓库各事实表和维表之间的关联完整有效。
数据仓库各事实表和维表的初始装载顺序有先后关系,要有一个集中的数据装载任务顺序方案,确保初始数据装载的准确。这可以通过操作系统或第三方工具的任务调度机制来保证。
二、数据转换、清洗:
将ODS中的数据,按照数据仓库中数据存储结构进行合理的转换,转换步骤一般还要包含数据清洗的过程。数据清洗主要是针对源数据库中出现二义性、重复、不完整、违反业务或逻辑规则等问题的数据数据进行统一的处理,一般包括如:NULL值处理,日期格式转换,数据类型转换等等。在清洗之前需要进行数据质量分析,以找出存在问题的数据,否则数据清洗将无从谈起。数据装载是通过装载工具或自行编写的SQL程序将抽取、转换后的结果数据加载到目标数据库中。
数据质量问题具体表现在以下几个方面:
a、正确性(Accuracy):数据是否正确的表示了现实或可证实的来源?
b、完整性(Integrity):数据之间的参照完整性是否存在或一致?
c、一致性(Consistency):数据是否被一致的定义或理解?
d、完备性(Completeness):所有需要的数据都存在吗?
e、有效性(Validity):数据是否在企业定义的可接受的范围之内?
f、时效性(Timeliness):数据在需要的时侯是有效的吗