为了更好地理解ETL的流程,有必要研究一下ETL的本质。
1)用户应该理解ETL本质上就是数据从源到目标的过程(即数据流动的过程)。
在数据仓库中历史数据是海量的,ETL过程需要经历以下几个步骤:抽取、清洗、转换、加载。抽取和加载是转换过程的输入和输出部分,而数据转换是ETL过程的核心部分,也是难度最大的部分。可以把ETL分成静态单元和动态单元两个部分。所谓静态单元,就是业务数据转换的规则,而动态单元是ETL时间调度的最小单位。目前有很多成熟的工具都提供ETL功能,包括Informatica、DataStage、Kettle等。这些工具不但具有可视化的数据流动、转换编辑界面,还提供各种转换规则定义和数据转化的函数集。
2)多数ETL工具价格昂贵,虽然在宏观上一般都适合处理海量的数据,但是在微观上需要考虑ETL处理的不同情况。
在数据量和复杂度都不高的情况下,可以利用ETL工具提供的组件指定数据源和目标库,通过对图形的拖曳就可以设定需要转换的规则,操作非常方便。在处理大数据量和复杂数据转换时,一般采用编码的方式进行设计和开发,更直观地实现业务转换的规则。ETL工具(如Informatica、DataStage、Kettle)都是用图形界面去设置转换规则和编写代码程序,这需要ETL设计开发人员熟悉工具中的各种组件和规则转换函数。当然,因为这些ETL工具不可能提供所有的转换规则,所以一般ETL工具都提供特定语言环境(JavaScript语言脚本和存储过程的调用功能)来实现高级转换功能。
3)元数据是ETL过程的重要体现,描述了数据源的属性、数据源到目标库的转换规则、数据抽取的历史记录等内容。
ETL的所有过程一般都是依赖元数据去实现数据的清洗、转换,最后加载到目标数据仓库中,同时元数据也是数据仓库项目中不可或缺的部分。采用元数据方法,可以实现数据抽取流程的自动化,并且保证了数据抽取的及时、准确和完整。元数据的概念在数据仓库中非常重要,ETL中存在大量的数据源定义和映射规则、转换规则,这些都是元数据需要管理和存储的。
4)如果构建一个商业智能系统,设计开发人员要完全理解业务数据源系统是非常困难的,需要花费大量的时间去整理数据源的属性,更多的人喜欢在ETL开始之前就将所有的业务转换规则弄清楚。
在ETL过程中,如果遇到质量有问题的源数据,一定要正面对待这些垃圾数据或者错误数据,是丢弃还是处理,这些问题都是无法回避的。如果这些数据不经过处理,那么在ETL过程中错误会逐渐放大。抛开数据源质量问题,我们再来看看ETL过程中哪些因素会对数据的准确性产生重大影响。
影响ETL数据质量的关键因素:
●可能会有一部分数据因为客观或者人为的原因导致数据格式混乱。
●源系统设计存在不合理性。
●在开发过程中,因为开发人员的错误或者设计人员对业务规则描述的问题,同样会导致数据质量出现问题。
因为各种因素都有可能影响ETL数据的质量,所以保证数据质量的通常做法如下所示。
首先,用户必须遵守在数据仓库项目中数据源的质量要求,对业务源数据进行仔细分析,以便对数据源的任何错误或不规范的地方有相应的处理方法,如对错误数据舍弃或者修改。(www.daowen.com)
然后,在保证数据源的质量之后,在设计ETL的过程中,对每一个步骤都应该有一个衡量数据质量的方法,需要重视ETL的每一个过程。对于有误差的数据,需要追溯到根本原因,并且将数据仓库的模型与数据质量的验证方法统一起来,实现每一步的ETL过程都有验证数据质量的脚本。
最后,就是规范业务流程,保证ETL的正确性,避免误删数据或者重复加载业务数据。
其中对质量的衡量有下面几种方式,如图7-39所示。
图7-39 对质量的衡量方式
①定义的数据是否和实际数值相同。
例如,一个数据项“客户来电等候率”是指在客户服务中,客人来电等候的时间超过1 min的次数与客人来电的总次数之比。随着客户服务质量的提高,客人来电等候率会发生变化,当客人来电等候的时间超过1 min的次数减少时,客户来电等候率也会相应降低,但是如果这个值没有被更新,那么该数值可能是不正确的。
②指标数据是否符合业务的规则。
例如,“社会保险类别”是描述社会保险分类的信息,不包括劳动保障类别里的内容。这个指标如果出现劳动保障类别里的信息,就表明该指标违背了业务规则。
③数据是否和业务源系统中的信息保持一致。
该数据和源系统中公认的、权威性的信息必须保持一致,否则该数值可能是不正确的。例如,发票中的公司名称必须和公司注册的名称保持一致,公司涉及的所有票据名称必须和公司合同里的名称保持一致,否则该数值可能不正确。
④数据是否违背自然规律或者不符合常理。
如果数据与业务源系统中公认的、权威性的信息保持一致,但是却违背了自然规律或者不符合常理,同样应该分析该数据是否正确。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。