一、ETL在数据仓库中的地位
ETL是数据仓库项目中最艰难且耗时最长的工作,ETL系统的设计和开发工作对商务智能项目的成败产生至关重要的影响,如果把数据仓库项目看成一座大厦的话,那么建筑图样规划就是数据仓库模型的设计过程,根据图样建造宫殿的过程就是ETL设计开发的过程,而那座美丽的宫殿就是数据仓库的成果。作为从事商务智能的专业人士,需要真真正正理解ETL理论方面的知识,而不仅仅停留在ETL工具的使用上,因为只有这样,才能更好地发挥它的作用。
二、ETL的一般过程
ETL是数据抽取(Extract)、转换(Transform)、加载(Load)的简写。
它的一般过程是指:将源数据抽取出来,中间经过数据的清洗、转换,最后加载到目标表中。
ETL过程一般都是批量操作的。
三、ETL的本质ETL的本质就是数据从源到目标的过程(即数据流动的过程)。
所以一般ETL工具都提供特定语言环境(javascript语言脚本和存储过程的调用功能)来实现高级转换功能。
四、影响ETL数据质量的关键因素
(一)、影响ETL数据质量的关键因素
1、可能会有一部分数据因为客观或者人为的原因导致数据格式混乱。
2、源系统设计存在不合理性。
3、在开发过程中,因为开发人员的错误或者设计人员对业务规则描述的问题,同样会导致数据质量出现问题。
(二)、保证数据质量的方法
1、保证数据源的质量。用户必须遵守在数据仓库项目中数据源的质量要求,对业务源数据进行仔细分析,以便对数据源的任何错误或不规范的地方有相应的处理方法,如对错误数据舍弃或者修改。
2、衡量数据质量的方法。在保证数据源的质量之后,在设计ETL的过程中,对每一个步骤都应该有一个衡量数据质量的方法,需要重视ETL的每一个过程。对于有误差的数据,需要追溯到根本原因,并且将数据仓库的模型与数据质量的验证方法统一起来,实现每一步的ETL过程都有验证数据质量的脚本。
3、规范业务流程。规范业务流程,保证ETL的正确性,避免误删数据或者重复加载业务数据。
(三)、衡量数据质量的方法
1、定义的数据是否和实际数值相同。
如果实际的数值修改了,存储和得到的数据也应该是最新的修改过的数据。
2、指标数据是否符合业务的规则。不包含在其业务中的信息不要加到该业务中。
3、数据是否和业务源数据中的信息保持一致。
该数据和原系统中公认的、权威性的信息必须保持一致,否则该数值可能是不正确的。
4、数据是否违背自然规律或者不符合常理。
如果数据与业务源数据系统中公认的、权威性的信息保持一致,但是却违背了自然规律或者不符合常理,同样应该分析该数据是否正确。
五、ETL的体系结构

六、ETL的难点
多个数据源数据不一致是一个难点和重点
七、主流ETL的工具
(一)选择ETL工具要考虑的问题
1、使用成本;
2、技术人员对此工具的熟练程度;