数据抽取、转换和加载方法、系统及装置的制作方法

文档序号:6586510阅读:110来源:国知局
专利名称:数据抽取、转换和加载方法、系统及装置的制作方法
技术领域
本发明涉及数据转换技术领域,更具体地说,涉及数据抽取、转换和加载方法、系
统及装置。
背景技术
ETL (Extract-Transform-Load)是用来描述将数据从来源端经过抽取 (extract)、转换(transform)、加载(load)至目的端的过程。ETL—词较常用在数据仓库, 但其对象并不限于数据仓库。ETL的流程可以用任何的编程语言去开发完成。
对于ETL中的数据转换流程,传统作法是将进行数据转换操作的规则嵌入到程序 代码中的方式来实现的。然而,在实施本发明创造的过程中,发明人发现,利用规则内嵌到 代码的方式编写成的数据转换软件一旦开发完成,便不易更改。现实情况却是数据转换逻 辑往往需要频繁地变更,需要开发人员对整个程序进行重新编译,修改分散在各个代码段 的数据转换规则,也即传统作法在实现数据转换逻辑变更时存在开发量大的问题。
发明人同时还发现,一般的规则引擎系统包括规则编辑器、规则库和规则引擎。其 中规则编辑器用于定制(编辑)规则。通过规则编辑器可以将定制的规则存储在规则库 中。在业务逻辑发生改变时,只需要重新定制业务规则就可以达到更新业务逻辑的目的,不 需要对整个程序进行重复开发。规则引擎则可加载上述可执行规则文件中定制的规则,并 执行上述规则完成预设的业务流程。规则引擎系统的上述特点为解决传统方式在ETL流程 因数据转换逻辑变更时存在的开发量大的问题提供了契机。

发明内容
有鉴于此,本发明目的在于提供数据抽取、转换和加载方法、系统及装置,以解决 传统方式在ETL流程因数据转换逻辑变更时存在的开发量大的问题。
为实现上述目的,本发明提供如下技术方案 —种基于规则引擎系统的数据抽取、转换和加载方法,所述规则引擎系统包括规 则编辑器和规则引擎,所述方法包括 规则编辑器接收数据转换配置属性值,并根据所述数据转换配置属性值获得数据
转换规则; 抽取数据; 所述规则引擎加载所述数据转换规则,并使用所述数据转换规则对抽取的数据进 行转换; 将转换后的数据进行加载。 —种基于规则引擎系统的数据抽取、转换和加载系统,所述规则引擎系统包括规 则编辑器和规则引擎,所述数据抽取、转换和加载系统包括 生成单元,用于利用所述规则编辑器接收数据转换配置属性值,并根据所述数据 转换配置属性值获得数据转换规则;
抽取单元,用于抽取数据; 转换单元,用于利用所述规则引擎加载所述数据转换规则,并使用所述数据转换 规则对抽取的数据进行转换; 加载单元,用于将转换后的数据进行加载。 —种基于规则引擎系统的数据抽取、转换和加载装置,所述规则引擎系统包括规 则编辑器和规则引擎,所述数据抽取、转换和加载装置包括 生成单元,用于利用所述规则编辑器接收数据转换配置属性值,并根据所述数据 转换配置属性值获得数据转换规则;
抽取单元,用于抽取数据; 转换单元,用于利用所述规则引擎加载所述数据转换规则,并使用所述数据转换 规则对抽取的数据进行转换; 加载单元,用于将转换后的数据进行加载。 从上述的技术方案可以看出,在本发明中,在数据转换逻辑发生改变时,只需要利 用规则编辑器重新定制数据转换规则就可以达到更新数据转换逻辑的目的,不需要对整个 程序进行重复开发。与传统方式相比,开发量较小。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。 图1为本发明实施例所提供的基于规则引擎系统的ETL方法流程图; 图2为本发明实施例所提供的Drools规则引擎系统结构示意图; 图3为本发明实施例所提供的基于Drools规则引擎系统的ETL方法流程图; 图4为本发明实施例所提供的用户图形界面结构示意图; 图5为本发明实施例所提供的基于规则引擎系统的ETL系统结构示意图; 图6为本发明实施例所提供的基于规则引擎系统的ETL装置结构示意图。
具体实施例方式为了引用和清楚起见,下文中使用的技术名词、简写或縮写总结如下
GUI,Gr即hical User Interface,图形用户界面; Drools :是为Java量身定制的基于Charles Forgy的RETE算法的规则引擎的实 现; Java :—种程序设计语言; Rete算法Rete算法是一种前向规则快速匹配算法,其匹配速度与规则数目无 关。Rete是拉丁文,对应英文是net,也就是网络。Rete算法通过形成一个rete网络进行 模式匹配,利用基于规则的系统的两个特征,即时间冗余性(Temporal redundancy)和结构 相似性(structural similarity),提高系统模式匹配效率; 规则一条规则包括一个前件(Antecedent)和一个后件(Consequent)。其中,前件又称条件部分、模式部分或左部(Left Hand Side,LHS),即触发的条件,可以使一个或一 组条件;至于后件,又称右部(Right Hand Side, RHS),是规则触发时要执行的一系列行为。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。 本发明实施例公开了一种基于规则引擎系统的数据抽取、转换和加载方法,以解 决传统方式在ETL流程因数据转换逻辑变更时存在的开发量大的问题。
规则引擎系统一般包括规则编辑器和规则引擎,基于该规则引擎系统,上述方法 具体流程如图1所示,至少包括如下步骤 Sll、规则编辑器接收数据转换配置属性值,并根据所述数据转换配置属性值获得
数据转换规则; S12、抽取数据; S13、规则引擎加载所述数据转换规则,并使用所述数据转换规则对抽取的数据进 行转换; S14、将转换后的数据进行加载。 可以看出,在本实施例中,在数据转换逻辑发生改变时,只需要利用规则编辑器重 新定制数据转换规则就可以达到更新数据转换逻辑的目的,不需要对整个程序进行重复开 发。与传统方式相比,其开发量较小。 上述步骤S12的具体实现方式可为抽取数据,并按照封装规则将抽取到的数据 封装成数据转换对象; 相应的,步骤S13的具体实现方式可为规则引擎加载数据转换规则,并使用数据 转换规则对数据转换对象进行转换。 在将数据封装数据转换对象时,可将一些对数据的处理算法封装进去。在程序中, 一般用字段来存放数据,例如单价字段存放单价数据,数量字段存放数量数据,在封装时, 可增加总价字段,该字段存放了处理算法总价=单价*数量,并将对应于单价和数量的字 段删除。 至于封装规则,既可以从预设的规则文件中获取,也可以在ELT过程中由规则引 擎系统生成。 封装规则的生成可采用如下步骤实现 规则引擎系统通过规则编辑器接收封装配置属性值,并根据所述封装配置属性值 生成封装规则。 在另一实施例中,上述规则编辑器可采用GUI接收数据转换配置属性值和/或封 装配置属性值。 至于ETL的加载流程,由于加载流程也会涉及到加载规则,因此,同样可以使用规 则引擎系统对加载规则进行编辑。而由于一套业务流程的执行均需要业务规则的支持,所 以规则引擎系统可在ETL全程中使用,以达到业务执行过程优化、业务变动灵活化的目的。
需要注意的是,上述规则编辑器可包括多个子规则编辑器,用于分别对数据转换 规则、封装规则、加载规则等不同类的规则进行编辑。而各个子规则编辑器亦可采用GUI接收配置属性值。 前已述及ETL过程可以用任何编程语言来编写,Java这种目前比较流行的一种程 序设计语言自然也可以用来对其进行编写。相应的,规则引擎系统所采用的编程语言也宜 为Java,以实现与ETL过程的无缝对接。Drools规则引擎系统是一个基于Rete算法,专为 Java语言所设计的开源规则引擎系统,且能同时运行在Java和.Net上。业务分析师或审 核人员可以利用drools查看业务规则,从而检验是否已编码的规则执行了所需的业务规 则。 Drools规则引擎系统的一般结构可参见图2,包括编缉器201、规则库202、规则引 擎203和工作内存204,其中规则引擎203又包括模式匹配器205和议程206。
参见图3,基于Drools规则引擎系统的ETL方法如下 S31、规则编辑器201通过GUI接收数据转换配置属性值,并根据所述数据转换配 置属性值获得数据转换规则; GUI可参见图4。本实施例中的GUI主要由区域401-404组成。其中,区域401用 于提示下一步该如何做和提供校验信息;区域402用于定义数据转换规则的编辑方式(自 定义或文本);区域403是规则的列表,用来添加/删除规则;区域404为规则编辑区,用于 编辑每个规则的操作信息。 GUI可支持数据转换逻辑的快速部署,无需编程。当用户需要变更规则时,只要向
界面输入或选取数据转换配置属性值,完成输入或选取后,规则编辑器201解析GUI得到解
析结果,并结合该解析结果和数据转换配置属性值生成数据转换规则将其封装在数据转换
规则文件中,然后将该规则文件存入规则库202。可以理解的是,当用户对某些配置属性不
进行赋值时,系统将按缺省或默认配置属性值生成数据转换规则。 S32、抽取数据,并按照封装规则将抽取到的数据封装成数据转换对象; 其中,封装规则既可为缺省封装规则,也可以是在ELT过程中由规则引擎系统动
态生成的。 S33、规则引擎203将数据转换规则文件和步骤S32中封装的数据转换对象加载到 工作内存204 ; S34、模式匹配器205将数据转换规则文件中的数据转换规则和数据转换对象中 的数据比较,对规则进行激活,并将被激活的规则放入议程206。 在某些情况下,可能同时会有多个规则被激活,也即在某一时刻规则的执行存在 冲突,此时将同时被激活的多个规则放入工作内存204的冲突集合中,解决多个规则间的 冲突,然后接顺序将被激活的规则放入议程206 ; 举一个简单的例子数据转换规则l为当X^5时执行X+5,数据转换规则2为 当X《IO时执行X-I。如果数据对象中存在一个数值8,则数值8将同时激活数据转换规 则1和数据转换规则2,数据转换规则1和数据转换规则2将产生执行冲突。此时,需要把 数据转换规则1和数据转换规则2放入冲突集合中,对其冲突进行解决,解决完冲突后将数 据转换规则1和数据转换规则2按顺序放入议程206。 S35、议程206按优先级顺序执行被激活的规则,直到议程206中的所有规则被执 行完,此时数据转换对象被转换完毕; 当执行规则时,议程206会根据优先顺序逐条执行规则,由于规则的执行可能会
7改变工作区的数据对象,从而使议程206中的某些规则因为条件改变而失效,必须从议程 206中撤销,也可能会激活原来不满足条件的规则,进入议程206。于是就产生了一种"动 态"的规则执行链。因此S34-S35是一个循环过程,直到议程206中再无规则可执行时,该 循环结束。 S36、将转换后的数据进行加载。 与上述ETL方法相对应,本发明实施例还公开了一种基于规则引擎系统的ETL系 统,图5示出了该系统的一种结构,包括 生成单元501,用于利用规则编辑器201接收数据转换配置属性值,并根据该数据 转换配置属性值获得数据转换规则; 其中规则编辑器201可采用GUI接收数据转配置属性值。
抽取单元502,用于抽取数据; 转换单元503,用于利用规则引擎203加载上述数据转换规则,并使用上述数据转 换规则对抽取的数据进行转换; 加载单元504,用于将转换后的数据进行加载。 与上述ETL方法相对应,本发明实施例还公开了一种基于规则引擎系统的ETL装 置,图6示出了该装置601的一种结构,包括 生成单元602,用于利用规则编辑器201接收数据转换配置属性值,并根据该数据 转换配置属性值获得数据转换规则; 其中规则编辑器201采用GUI接收数据转配置属性值。
抽取单元603 ,用于抽取数据; 转换单元604,用于利用规则引擎203加载上述数据转换规则,并使用上述数据转 换规则对抽取的数据进行转换; 加载单元605,用于将转换后的数据进行加载。 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他 实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统 和装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法 部分说明即可。 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,所述程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为 磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,廳)等。 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的 一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明 将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一 致的最宽的范围。
权利要求
一种基于规则引擎系统的数据抽取、转换和加载方法,所述规则引擎系统包括规则编辑器和规则引擎,其特征在于,所述方法包括规则编辑器接收数据转换配置属性值,并根据所述数据转换配置属性值获得数据转换规则;抽取数据;所述规则引擎加载所述数据转换规则,并使用所述数据转换规则对抽取的数据进行转换;将转换后的数据进行加载。
2. 如权利要求1所述的方法,其特征在于所述抽取数据的具体方式为抽取数据,并按照封装规则将抽取到的数据封装成数据 转换对象;所述规则引擎加载所述数据转换规则,并使用所述数据转换规则对抽取的数据进行转 换的具体方式为所述规则引擎加载所述数据转换规则,并使用所述数据转换规则对所述 数据转换对象进行转换。
3. 如权利要求2所述的方法,其特征在于所述封装规则通过所述规则编辑器接收封装配置属性值,并根据所述封装配置属性值 生成。
4. 如权利要求3所述的方法,其特征在于,所述规则编辑器接收封装配置属性值的具 体方式为所述规则编辑器采用图形用户界面GUI接收封装配置属性值。
5. 如权利要求l-4任一项所述的方法,其特征在于,所述规则编辑器接收数据转换配置属性值的具体方式为所述规则编辑器采用GUI接收数据转换配置属性值。
6. —种基于规则引擎系统的数据抽取、转换和加载系统,所述规则引擎系统包括规则编辑器和规则引擎,其特征在于,所述数据抽取、转换和加载系统包括生成单元,用于利用所述规则编辑器接收数据转换配置属性值,并根据所述数据转换配置属性值获得数据转换规则; 抽取单元,用于抽取数据;转换单元,用于利用所述规则引擎加载所述数据转换规则,并使用所述数据转换规则 对抽取的数据进行转换;加载单元,用于将转换后的数据进行加载。
7. 如权利要求6所述的系统,其特征在于,所述规则编辑器采用GUI接收数据转配置属 性值。
8. —种基于规则引擎系统的数据抽取、转换和加载装置,所述规则引擎系统包括规则 编辑器和规则引擎,其特征在于,所述数据抽取、转换和加载装置包括生成单元,用于利用所述规则编辑器接收数据转换配置属性值,并根据所述数据转换 配置属性值获得数据转换规则; 抽取单元,用于抽取数据;转换单元,用于利用所述规则引擎加载所述数据转换规则,并使用所述数据转换规则 对抽取的数据进行转换;加载单元,用于将转换后的数据进行加载。
9.如权利要求8所述的装置,其特征在于,所述规则编辑器采用GUI接收数据转配置属 性值。
全文摘要
本发明实施例公开了提供数据抽取、转换和加载方法、系统及装置,以解决传统方式在ETL流程因数据转换逻辑变更时存在的开发量大的问题。其中方法包括规则编辑器接收数据转换配置属性值,并根据所述数据转换配置属性值获得数据转换规则;抽取数据;所述规则引擎加载所述数据转换规则,并使用所述数据转换规则对抽取的数据进行转换;将转换后的数据进行加载。可以看出,在本发明实施例中,当数据转换逻辑发生改变时,只需要利用规则编辑器重新定制数据转换规则就可以达到更新数据转换逻辑的目的,不需要对整个程序进行重复开发。与传统方式相比,开发量较小。
文档编号G06F9/445GK101763261SQ20091026128
公开日2010年6月30日 申请日期2009年12月28日 优先权日2009年12月28日
发明者刘宗福, 刘春 , 戴毅, 皮开元, 陈俊, 雷玉玲 申请人:山东中创软件商用中间件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1