- 1 -
基于规则可信度的 ETL数据质量控制的研究
李小亮
北京邮电大学计算机学院,北京(100876)
摘 要:ETL(Extract, Transform, Load)占据了数据仓库建立过程的大部分时间,如果在此
过程中出现质量问题,将导致整个数据仓库的失败。目前的 ETL 的普遍方法都是基于元数
据和规则的,但是传统的 ETL过程都没有实现对规则的智能监控。本文在研究 ETL处理过
程的基础上,提出了 ETL过程中的规则监控和管理,从而保证了数据的质量。
关键字:ETL,规则,可信度,元数据
中图分类号:TP311
1.引言
ETL是企业建立数据仓库中重要的一环,据资料表明,建立数据仓库过程中 60-70%的
时间用于数据的 ETL,由此可见,ETL的成败对数据仓库的建立起着至关重要的作用。
ETL 的成败的标准即是数据质量,所以 ETL 过程中在保证效率的同时,应该兼顾数据
质量。有文献中根据数据源的单一还是多个以及问题出现在模式层还是实例层,将数据质量
问题分为四类:单数据源模式层问题、单数据源实例层问题、多数据源模式层问题和多数据
源实例层问题。文献[1]中对这些问题列出实例,并提出了各个问题的清洗方法,并罗列了
各种清洗框架。到目前为止,ETL 中的数据质量问题大都可以通过清洗框架进行有效的处
理,但是对于这些清洗规则尚没有一个行之有效的方法来实现质量控制。本文在研究 ETL
过程的基础上,提出了一个基于规则可信度的数据质量的监控框架,旨在实现 ETL 中各个
阶段规则的自动化控制,从而提高数据质量。
2.ETL简介
ETL中文名称为抽取、转换(清洗)、装载,顾名思义,其实现的数据的流程中的三步
操作:数据抽取、数据的清洗转换、数据的加载,其流程如图一所示。数据抽取是实现从各
个不同的数据源抽取数据到 ODS(Operational Data Store,操作型数据存储)中;数据的清洗
转换是根据目标数据的要求进行数值规范化,去噪及处理空缺值等操作。此步骤花费的时间
一般占到整个 ETL过程的 2/3,而且由于人工干预比较多,清洗规则存在歧义等问题,在清
洗转换过程中出现的质量问题也最多。数据的加载是指将清洗后的数据写入数据仓库中。
图 1 传统的 ETL流程
数据库
文件
其他
抽取 转换 加载
临时数据库
目的数据库
- 2 -
在整个 ETL 中,各步骤实现的功能不是严格分开的,比如在数据抽取过程中,也可以
进行一下简单的清洗工作,例如去除字符型字段的空格。这是出于效率方面的考虑,当然,
也可以严格分开。
ETL 的实现方法主要有三种:第一种是借助 ETL 工具,比如 Oracle 的 OWB,
SQLServer2000 的 DTS 等,这种方法的好处是明显的:节省时间和降低开发难度;但是缺
点也是明显的:缺乏灵活性,用户只能按照工具提供的操作完成功能,功能有限。第二种是
利用 SQL 编程实现,这种方法的优缺点正好同第一种方法相反,灵活性很好,功能强大,
但是实现难度复杂,对实施人员的要求高,且花费时间比较多。第三种方法折中了第一和第
二种方法:部分功能利用专门的工具实现,部分功能利用 sql语句实现。这样的实现方式既
可以控制开发效率,又可以灵活的采用多种方法实现。
3.可信度方法
可信度又称置信度,置信水平,用以表示事物为真的可相信程度,即是对个人信念合理
性的量度。可信度方法是结合概率论,基于可信度的不确定性表示方法,是非单调推理。在
自然界中,各种知识单元之间存在着大量的因果关系,用知识工程的理论表示这些因果关系
就是规则(产生式),由于是对个人理念的度量,在知识本身存在可信度的基础上,这些产
生式也存在可信度。知识/规则的不确定性表示如下所示:
IF E THEN H;又可表示为:E->H。
其中 E为证据,H为结论。CF(E)表示证据 E的可信度。
CF(E->H)表示规则的可信度[-1,1],即证据 E 为真时,对结论 H 为真的支持程度。对
CF(E->H)的值,有以下结论:
(1)CF(E->H)>0,表示证据 E以 CF(E->H)的可信度支持 H;
(2)CF(E->H)<0,表示证据 E以 CF(E->H)的可信度削弱 H;
(3)CF(E->H)=0,表示证据 E与 H无关。
CF(E1∧E2->H)表示证据 E1和 E2为真时,对结论 H为真的支持程度,当证据更多时,
其表达式可依次类推。
假设 CF(E1->H)和 CF(E2->H)的可信度分别为 β1和 β2。当证据 E1和 E2相互支持时,
CF(E1∧E2->H)= CF(E1->H)+ CF(E2->H)- CF(E1->H)* CF(E2->H)= β1+β2-β1*β2;当证据 E1
和 E2相互独立时,CF(E1∧E2->H)= min(CF(E1->H), CF(E2->H))=min(β1,β2)[2]。
现以商业银行反洗钱系统为例来解释可信度的计算。由于商业银行要定期向中国人民银
行报告大额交易,所以需要在银行核心系统原始交易记录的基础上,根据一定的规则统计出
大额交易。这就需要从核心系统中抽取数据,处理后导入到反洗钱系统中。
大额交易中一条定义为:个人银行账户之间,以及个人银行账户与单位银行账户之间单
笔或者当日累计人民币五十万元以上的款项划转。在此定义中涉及到的证据如下:
E1:从核心系统中导出的数据正确;E2:数据预处理正确(为简化起见,此预处理包
括源数据处理空值,去噪,数值规范化等操作);E3:当日单笔交易五十万元以上;E4:当
日累计交易五十万元以上;
涉及的规则如下:
预处理规则:E1->E2;数据统计规则:E2->E3,E2->E4;大额交易规则:E3->H,E4->H。
结论:H:该交易为大额交易。
用与或图表示为:
- 3 -
图 2 大额交易可信度与或图
H的可信度为:
CF(H)=max{CF(E3)*CF(E3->H), CF(E4)*CF(E4->H)}
=max{CF(E2)* CF(E2->E3)* CF(E3->H), CF(E2)* CF(E2->E4)* CF(E4->H)}
=max{CF(E1)*CF(E1->E2)* CF(E2->E3)* CF(E3->H),
CF(E1)*CF(E1->E2)* CF(E2->E4)* CF(E4->H)}
4.基于可信度的 ETL质量控制
在传统 ETL 过程中,质量问题已经得到了基本解决,但是对于规则缺乏智能控制。传
统的方法多是靠人工指导:即业务人员根据最终加载的数据与 OLAP查询出来的数据对比,
依此来鉴别数据的可靠性,进而判断规则的问题。这种方法的缺点是精确度不高,耗费大量
人力,并且追溯问题的根源比较困难。本文提出了一种基于规则可信度的质量管理框架,该
框架在原 ETL框架的基础上增加了规则服务器和可信度引擎,可以定量分析 ETL各个环节
的规则质量问题。该框架如下图所示:
图 3 基于可信度的 ETL质量控制框架
数据库
文件
其他
抽取 转换 加载
临时数据库
目的数据库
元数据服务
规则服务器 可信度引擎
H
E3 E4
E2
E1
- 4 -
元数据服务器
元数据最本质、最抽象的定义为:data about data(关于数据的数据)。Luo Agostas说元
数据是一种比喻,因为它抽象了看起来完全不同的事物。在数据仓库领域元数据被定义为:
描述数据及其环境的数据。从事物管理到数据仓库系统,元数据紧跟数据的含义。他们通过
不同的提取、转换、加载操作实现从源到目的的映射。同时,使这些不同系统之间得以互操
作。所以,元数据相当于源到目的的映射[3]。
元数据服务器提供元数据的统一管理和维护,它贯穿于整个数据仓库的构建过程。在建
库之初,我们需要提供源数据库到目标数据库的统一映射。在数据清洗转换过程中,元数据
服务器将为我们提供指导。在这里我们将为元数据统一命名别名,如 student命名为 E1。并
且把元数据所经过的处理规则也保存下来,在这里,我们采用逆波兰表达式来存储,这样做
的好处是可以将复杂表达式转换为可以依靠简单的操作得到计算结果的表示式,降低可信度
引擎的解析和计算难度。以前面计算大额交易的可信度为例:
CF(H)=max{CF(E1)*CF(E1->E2)* CF(E2->E3)* CF(E3->H),
CF(E1)*CF(E1->E2)* CF(E2->E4)* CF(E4->H)}
采用逆波兰表达式可表示为:
CF(H)=CF(E1) CF(E1->E2) * CF(E2->E3)* CF(E3->H) * CF(E1) CF(E1->E2) *
CF(E2->E4)* CF(E4->H) * max
规则服务器
规则服务器负责统一命名和管理 ETL过程中涉及的所有规则。在 ETL初始化阶段,我
们将所有规则录入,并置所有规则的可信度均为 1,还要设置规则可信度的预警值。在 ETL
过程中由可信度引擎动态计算该规则的可信度,反馈给规则服务器。当该规则的当前可信度
到达预警值时,规则服务器报警,该规则弃用,实施人员必须做出相应的修改后才能重新启
用。当结果的可信度过低时,我们也可以通过该结果经过的转换清洗规则的可信度来衡量问
题所在。
可信度引擎
在元数据服务器和规则服务器都初始化完毕后,可信度引擎在 ETL 过程中动态生成规
则的可信度,具体规则可信度的计算公式需要领域专家来确定。例如:有一个处理空缺值的
规则,我们可以使用最有可能值策略,可用回归、众数、判定树归纳、贝叶斯推断等确定,
也可以使用属性平均值策略,计算一个属性(值)的平均值,并用此值填补该属性所有遗漏
的值[4]。这两种策略使用的规则不同,可信度值必然有所不同。规则的可信度确定之后,可
信度引擎从这元数据服务器中取出元数据可信度的逆波兰表达式,然后解析表达式,根据表
达式中所涉及到的初始元数据和规则分别再到元数据服务器和规则服务器中取出它们的可
信度值。最后根据表达式计算出元数据的可信度,将其反馈到元数据服务器中。
当用户在查看目的数据库最终数据的同时,也将看到该数据的可信度,此时,用户可以
权衡数据值和可信度,然后再做出决策。当然,如果用户对该数据的可信度不满意时,ETL
工程师可以有针对性的对相应的处理规则调优,这样就实现了数据质量管理的量化。
5.结论
在本文分析了传统 ETL过程中质量管理的不足,并基于规则可信度提出了一种 ETL质
量管理框架,有效地实现了 ETL 过程中规则的智能控制,进而保证了数据质量。当然,要
- 5 -
实现这样的功能还要很多工作要做,比如如何确定元数据和规则的可信度,如何在加入质量
管理框架同时尽量不降低 ETL效率等,这都是下一步需要解决的问题。
参考文献
[1]. 郭志懋,周傲英.数据质量和数据清洗研究综述[J] 软件学报,2002,13(11):2076-2081
[2]. 陈仪香,尹艳.两种含可信度的推理[J],模糊系统与数学,2005,19(3):7-9
[3]. Lou Agosta.《The Essential Guide to Data Warehousing》[M].潇湘工作室.北京:人民邮电出版社,2000
[4]. 马超群,兰秋军,陈为民.《金融数据挖掘》[M].北京:科学出版社,2007
Research on Rule Confidence Based Data Quality Control of
ETL
Li Xiaoliang
Beijing University of Posts and Telecommunication, Beijing (100876)
Abstract
ETL(Extract,transForm,Load) takes most of time of Data Warehousing building. The Data
Warehousing will fail if there are some problems during ETL. The general ways ETL processing are
metadata-based and rule-based, so there are not intelligent controls on rule during ETL process. This
paper put forward the monitoring and management of rules during ETL process after research on ETL
process, which guarantees data quality.
Keywords: ETL, Rule, Confidence, Metadata