理论教育 解析ETL的本质:数据清洗与整合

解析ETL的本质:数据清洗与整合

时间:2023-06-06 理论教育 版权反馈
【摘要】:为了更好地理解ETL的流程,有必要研究一下ETL的本质。1)用户应该理解ETL本质上就是数据从源到目标的过程。3)元数据是ETL过程的重要体现,描述了数据源的属性、数据源到目标库的转换规则、数据抽取的历史记录等内容。因为各种因素都有可能影响ETL数据的质量,所以保证数据质量的通常做法如下所示。最后,就是规范业务流程,保证ETL的正确性,避免误删数据或者重复加载业务数据。

解析ETL的本质:数据清洗与整合

为了更好地理解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所示。

978-7-111-50289-0-Chapter07-41.jpg

图7-39 对质量的衡量方式

①定义的数据是否和实际数值相同。

例如,一个数据项“客户来电等候率”是指在客户服务中,客人来电等候的时间超过1 min的次数与客人来电的总次数之比。随着客户服务质量的提高,客人来电等候率会发生变化,当客人来电等候的时间超过1 min的次数减少时,客户来电等候率也会相应降低,但是如果这个值没有被更新,那么该数值可能是不正确的。

②指标数据是否符合业务的规则。

例如,“社会保险类别”是描述社会保险分类的信息,不包括劳动保障类别里的内容。这个指标如果出现劳动保障类别里的信息,就表明该指标违背了业务规则。

③数据是否和业务源系统中的信息保持一致。

该数据和源系统中公认的、权威性的信息必须保持一致,否则该数值可能是不正确的。例如,发票中的公司名称必须和公司注册的名称保持一致,公司涉及的所有票据名称必须和公司合同里的名称保持一致,否则该数值可能不正确。

④数据是否违背自然规律或者不符合常理

如果数据与业务源系统中公认的、权威性的信息保持一致,但是却违背了自然规律或者不符合常理,同样应该分析该数据是否正确。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈