本发明专利技术公开了一种ETL流程中异常数据检测方法,属于数据仓库构建领域。本发明专利技术的方法为:1)将ETL工具设计的ETL流程转换为ETL抽象图;ETL抽象图包括关系结点和转换结点,各结点通过有向边连接,记录数据流向;关系结点包括数据源、目的端数据库及各操作的输出记录集;转换结点包含输入记录集模式与输出记录集模式的属性映射关系及元组选择条件;2)将目的端的数据约束转换为统一形式的数据约束;3)以目的端数据库为起点,将目的端的数据约束反向投影到数据源端;4)使用得到的数据源端的数据约束集合进行数据检测。本发明专利技术将目的端的数据约束需求投影到数据源端,来检测数据源端中的非法数据,大大提高ETL过程的效率。
【技术实现步骤摘要】
本专利技术涉及一种数据检测方法,尤其涉及一种ETL流程中异常数据检测方法,属于数 据仓库构建中的ETL过程领域。
技术介绍
ETL (Extract, Transform, and Load)是构建数据仓库的重要过程,它抽取数据源中相 关数据,对数据进行转换使其满足数据仓库的需求,并将数据加载到目的端的数据仓库中。 最初,ETL过程是手工编码实现,维护困难。当前,数据库和数据集成厂商提供了功能丰 富的ETL工具。这些工具可以分为两类 一类工具支持图形化的ETL流程设计并且提供 独立的引擎执行ETL任务,代表工具有Informatica的PowerCenter, IBM的Data Stage和 Microsoft的SSIS;另一类工具,也叫ELT(Extract, Load, Transform), ELT支持数据源端 和目的端的模式映射并且将ETL任务转换为SQL语句,存储过程交由DBMS执行,代表 工具有Oracle的Data Integrators尽管ETL工具支持ETL流程设计,但实际应用中只能依靠数据源模式来设计转换规 则,数据库中很多数据并不一定符合模式,这些不符合模式的数据称为"异常数据",异常 数据会让ETL过程崩溃,或者将错误带入到数据仓库中。当前异常数据主要由人工来分析 处理,所以很难定位复杂ETL流程中的所有异常数据,很难保证数据质量。首先,数据仓 库周期性的从多个数据源更新大量数据,而这些数据源通常是分布式异构的,因此一些数 据源有很大概率包含不一致或者冲突的信息。其次,目的端数据库会对加载的数据定义一 些约束,而源端的数据经过转换后可能仍然会违反这些约束。很多数据质量工具与学术研究提出了异常数据检测和数据清理的方法,主要通过以下 四种方法:数据分析(data analysis),数据清理(data cleansing),数据质量监控(data quality monitor)和数据采样(data sampling)。数据分析通过分析数据实例来得到数据的特点和数 值模式,从而帮助检测异常数据和进行模式映射。数据清理进行异常数据过滤和重复记 录消除,也包含各种提高数据质量的操作。数据清理操作通常与业务紧密结合,需要用户 来决策,而且只能清理用户已发现的异常数据。数据质量监控在ETL流程的各个活动及 加载过程定义数据质量规则和处理策略,系统发现数据违反质量规则后,根据制定的策略来终止ETL过程,或者调用相应的数据清理操作。然而这些质量规则都需要用户来定义, 多数情况并不能定义完善的质量规则来检测所有的异常数据。数据采样设计好ETL流程 后,对一些样本数据进行处理,来找到异常问题,然后对ETL流程的设计进行优化。虽然 这个方法在实践中经常采用,但是并不容易找到高质量的样本数据集。这些方法不能保证对大规模数据进行转换、加载后满足目的端的约束条件,而且都需 要人工对ETL过程进行分析来设计数据源和目的端的映射规则。为了保证加载的数据不违 反这些约束,不能期望用户设计完善的ETL过程。最好可以自动化的将异常数据过滤掉, 并且越早越好。但是这个问题比想象中复杂。已有的ETL工具都不支持ETL流程上的推 理,我们需要一种自动化的方法,它可以分析ETL流程和目的端的数据约束,在ETL流 程中尽可能早的地方进行约束验证。
技术实现思路
本专利技术的目的是提出一种ETL流程中异常数据检测方法,其自动化的分析ETL流程并 将目的端的数据约束沿ETL流程反向传播到数据源端,然后对数据源进行异常数据检测。 本专利技术的技术方案可以表示为图1,具体步骤如下1.将ETL工具设计的ETL流程转换为ETL抽象图。ETL抽象图是一种新的数据流 程模型,它包含两种结点关系结点(relationnode)和转换结点(transformationnode)。 关系结点表示关系记录集,包括数据源、目的端数据库及各操作的输出记录集。 转换结点表示数据转换操作,包含输入记录集模式与输出记录集模式的属性映射 关系及元组选择条件。ETL抽象图中的边为有向边,连接各结点,记录数据流向。给定一个ETL流程Q,它对应的ETL抽象图G(Q)按照下面的步骤构建 1)对Q中每一个数据转换操作创建一个转换结点a,输入记录集为^,...,1^,输出记录集为O,根据其操作语义,生成每个输入记录集模式Ik与输出记录集模式O的属性映射关系mapping(a,Ik,O)和元组选择条件filter(a,lk,0), k取值于1…n。mapping(a,Ik,O)的一个例子表示为Ik〈kbk2,…,kn〉 一〉a0〈0h02,."0n〉。尖括号内为各模式的属性,表示两边属性的对应关系。左边的属性可以包含函数操作。 filter(a,Ik,O)的一个例子表示为Ik(k^pA…Akn=q) —>a O。其中的括号内为 元组选择条件,为built-in谓词的合取式。可以表示大多数select条件。 对于基本关系代数操作,可以参考对应的mapping和filter的生成方法,参见实施例中表1。2) 对于每个转换结点a,创建一个关系结点resultTable(a)来表示该转换操作的输 出记录集,并初始化其数据约束集合mles(resultTable(a))为空。3) 根据Q中数据流向在关系结点和转换结点之间添加有向边。2. 获取目的端的数据约束,表示为统一形式的否定约束(denial constraints): vj^,…^^(/;(S)A…Ag(:)A(ii)(S,…^》。A表示关系i胃i司,^表示元纟且,伊表示多个built-in谓词( < , > ,=,《,》,#等)的合取式。可以表达以下常见约束类型非空(Not Null),值域(Value Domain),函数依赖(Function Dependency), Check (SQL语句支持的约束定义关键词)等。数据约束可以从数据库管理系统自动抽取或由用户自定 义。目的端可以包含多个数据约束。传播过程中各记录集的数据约束也为统一的 否定约束形式。3. 以目的端数据库为起点,沿数据流的反方向,将每个转换结点的输出记录集上的 数据约束反向投影到它的各输入记录集上,直到数据源为止。如果转换结点a包含无函数的mapping和确定的filter,数据约束反向投影过程含以 下步骤1) 对于一个数据约束c,它只含有输出记录集O的属性变量,对于一个输入记录 集Ik,根据mapping(a,Ik,O)中属性映射关系,使用Ik的属性变量对c中变量进 行替换得到c'。2) 如果c'仍包含O的属性变量,那么c无法投影到Ik, c在该边的传播过程终 止。3) 如果c'只包含Ik的属性变量,且filter(a,Ik,O)为空,添加c'到Ik的数据约束集 合rules(Ik)。4) 如果filter(a,Ik,O)不为空,将filter(a,Ik,O)中的元组选择条件添加到c,的合取式 中,得到c"添加c"到Ik的数据约束集合mles(Ik)。5) 对于每个数据约束,依次向每个输入记录集执行上面反向投影操作。 如果转换结点的mapping包含函数或者filter无法确定,需要采用特定的反向投影 方法,在实施例中给出了针对基本关本文档来自技高网...
【技术保护点】
一种ETL流程中异常数据检测方法,其步骤为: 1)将ETL工具设计的ETL流程转换为ETL抽象图;所述ETL抽象图包括关系结点和转换结点,各结点通过有向边连接,记录数据流向;所述关系结点表示关系记录集,包括数据源、目的端数据库及各操作的输出记录集;所述转换结点表示数据转换操作,包含输入记录集模式与输出记录集模式的属性映射关系及元组选择条件; 2)将目的端的数据约束转换为统一形式的数据约束; 3)以目的端数据库为起点,沿数据流的反方向,将目的端统一形式的数据约束反向投影到数据源端; 4)使用得到的数据源端的数据约束集合进行数据检测。
【技术特征摘要】
【专利技术属性】
技术研发人员:刘杰,叶丹,魏峻,黄涛,虞海江,
申请(专利权)人:中国科学院软件研究所,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。