《从一个源表到至少一个目标库的表的数据抽取系统及方法.pdf》由会员分享,可在线阅读,更多相关《从一个源表到至少一个目标库的表的数据抽取系统及方法.pdf(11页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN102004744A43申请公布日20110406CN102004744ACN102004744A21申请号200910195024622申请日20090902G06F17/3020060171申请人中国银联股份有限公司地址200135上海市浦东新区含笑路36号银联大厦72发明人杨燕明陈林马东良74专利代理机构中国专利代理香港有限公司72001代理人谭佐晞李家麟54发明名称从一个源表到至少一个目标库的表的数据抽取系统及方法57摘要本发明公开了一种从一个源表到至少一个目标库的表的数据抽取系统及方法,所述系统包括读取模块、中间转换模块以及写入模块,所述中间转换模块包括用于封装源表。
2、的源数据对应于各目标数据库目标表的目标数据格式的转换处理过程的封装子模块,以使中间转换模块的转换处理次数为一次。所述数据抽取方法包括步骤根据需求连接一个源表读取源数据;通过封装子模块将所述源数据一次转换处理成各目标数据库目标表对应的目标数据;以及将转换后的目标数据分别写入其对应的目标数据库目标表。本发明极大地简化了数据转换的操作配置,提高了处理效率,本发明同时还能有效提高整个系统的稳定性、扩展性和通用性,使得数据抽取与转换处理操作更加灵活和方便。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书5页附图3页CN102004757A1/2页21一种从一个源表到至少。
3、一个目标库的表的数据抽取系统,其包括读取模块,其用于根据需求从源数据库的一个源表读取所需的源数据;中间转换模块,其用于将每次读取的所述源数据分别对应于每一个目标数据库的目标表的目标数据格式进行多次转换;以及写入模块,其用于将每次转换后的目标数据写入对应的目标数据库的目标表;其特征在于,所述中间转换模块包括封装子模块,其用于封装所述源表的源数据对应于所述各目标数据库目标表的目标数据的转换处理过程,以使所述中间转换模块的转换处理次数为一次。2根据权利要求1所述的数据抽取系统,其特征在于,所述封装子模块为动态链接库,所述动态链接库包括源数据接口单元,其用于参数化描述所述源表的源数据信息;目标数据接口。
4、单元,其用于参数化描述所述各目标数据库目标表对应的目标数据信息;以及解析单元,其用于调用所述源数据接口单元和所述目标数据接口单元,以将每次读取的源数据对应解析成包括目标数据结果的目标数据结果集,所述目标数据结果中含有经过转换处理后的所述各目标数据库目标表对应的目标数据及其相应的所述目标数据信息。3根据权利要求2所述的数据抽取系统,其特征在于,所述源数据信息的参数化描述内容至少包括所述源数据所属的源数据库名、源表名、源数据记录、以及每条源数据记录的数据长度;以及所述目标数据信息的参数化描述内容至少包括所述目标数据库名、目标表名、目标数据记录、以及每条目标数据记录的数据长度。4根据权利要求2所述的。
5、数据抽取系统,其特征在于,所述目标数据结果集中还包括所述各目标数据库目标表对应的目标数据记录的数目。5根据权利要求14中任一项所述的数据抽取系统,其特征在于还包括设置于所述源数据库和所述各目标数据库之外的中间存储模块,其用于存储经过所述中间转换模块转换后的所述各目标数据库目标表对应的目标数据的全部或者部分。6一种从一个源表到至少一个目标库的表的数据抽取方法,其特征在于,将源数据库的一个源表的源数据与各目标数据库目标表对应的目标数据格式的转换处理过程封装成封装子模块,所述数据抽取方法包括如下步骤A、连接所述源数据库;B、从所述源表读取所需的源数据,如果其首记录非空则执行步骤C,否则结束;C、判断。
6、所述源数据的当前记录是否已为空,如果非空则调用所述封装子模块将所述源数据一次转换处理成所述各目标数据库目标表对应的目标数据,否则结束;D、如果转换后的所述目标数据为空则执行步骤E,否则将其分别写入对应的所述各目标数据库的目标表;以及E、读取所述源数据的下一条记录,再重复执行步骤C。7根据权利要求6所述的数据抽取方法,其特征在于,所述封装子模块为动态链接库,所述动态链接库根据其内设置的均已参数化描述的所述源表的源数据信息与所述各目标数据库目标表对应的目标数据信息,将每次读取的所述源数据对应解析成包括目标数据结权利要求书CN102004744ACN102004757A2/2页3果的目标数据结果集,。
7、所述目标数据结果中含有经过转换处理后的所述各目标数据库目标表对应的目标数据及其相应的所述目标数据信息。8根据权利要求7所述的数据抽取方法,其特征在于,所述源数据信息的参数化描述内容至少包括所述源数据所属的源数据库名、源表名、源数据记录、以及每条源数据记录的数据长度;以及所述目标数据信息的参数化描述内容至少包括所述目标数据库名、目标表名、目标数据记录、以及每条目标数据记录的数据长度。9根据权利要求7所述的数据抽取方法,其特征在于,所述目标数据结果集中还包括所述各目标数据库目标表对应的目标数据记录的数目。10根据权利要求69任一项所述的数据抽取方法,其特征在于还包括步骤将经过所述中间转换模块转换后。
8、的所述各目标数据库目标表对应的目标数据的全部或者部分存储于中间存储模块,所述中间存储模块设置于所述源数据库和所述各目标数据库之外。权利要求书CN102004744ACN102004757A1/5页4从一个源表到至少一个目标库的表的数据抽取系统及方法【技术领域】0001本发明涉及一种数据抽取系统及方法,尤其涉及一种从源数据库的一个源表到至少一个目标数据库的一个或多个目标表的数据抽取系统及方法,属于数据库技术领域。【背景技术】0002在现有的数据库数据处理领域中,存在着一些基于ETLEXTRACTIONTRANSFORMLOAD,即抽取转换加载技术的数据抽取工具,例如ASCENTIAL公司的DAT。
9、ASTAGE、INFORMATICA公司的POWERCENTER、NCRTERADATA公司的ETLAUTOMATION等,这类应用工具均具备实现简单数据转换的功能,也能够很好地处理极为特殊的需求,但通用性问题一直是其主要的应用瓶颈。另外,它们昂贵的价格也是难以将其进行广泛普及的重要因素之一,特别是在面对一些简单的并且无须经常更改处理的数据转换的情形下,更不值得使用者花费高价购买这类工具来实现上述的较简单的需求。0003此外,值得注意的是ETL技术主要被用于创建并维护数据仓库,而针对从源数据库的一个源表向一个或多个目标数据库的一个或多个目标表进行数据抽取的应用场景,如图1所示,则必须为每个目标。
10、数据库分别配置一次ETL应用来对从源数据库抽取的源数据进行中间转换处理,这样就使得整个处理过程中需要进行多次的数据转换操作,因此实现起来颇为复杂,并且繁琐又耗时,从而会影响到数据处理的效率及系统的稳定性。【发明内容】0004有鉴于此,本发明的目的在于提供一种从一个源表到至少一个目标库的表的数据抽取系统及方法,以有效地解决现有技术中存在的从源数据库的一个源表抽取数据到至少一个目标数据库的一个或多个目标表的操作过程复杂、繁琐且耗时,从而将会影响到数据处理效率及系统稳定性的问题。0005为实现上述发明目的,本发明采用的技术方案如下0006一种从一个源表到至少一个目标库的表的数据抽取系统,其包括000。
11、7读取模块,其用于根据需求从源数据库的一个源表读取所需的源数据;0008中间转换模块,其用于将每次读取的所述源数据分别对应于每一个目标数据库的目标表的目标数据格式进行多次转换;以及0009写入模块,其用于将每次转换后的目标数据写入对应的目标数据库;0010其中,所述中间转换模块包括0011封装子模块,其用于封装所述源表的源数据对应于所述各目标数据库目标表的目标数据的转换处理过程,以使所述中间转换模块的转换处理次数为一次。0012优选地,所述封装子模块为动态链接库,所述动态链接库包括源数据接口单元,其用于参数化描述所述源表的源数据信息;目标数据接口单元,其用于参数化描述所述各目标数据库目标表对应。
12、的目标数据信息;以及,解析单元,其用于调用所述源数据接口单元和所述目标数据接口单元,以将每次读取的源数据对应解析成包括目标数据结果的目标数说明书CN102004744ACN102004757A2/5页5据结果集,所述目标数据结果中含有经过转换处理后的所述各目标数据库目标表对应的目标数据及其相应的所述目标数据信息。0013优选地,所述源数据信息的参数化描述内容至少包括所述源数据所属的源数据库名、源表名、源数据记录、以及每条源数据记录的数据长度;以及,所述目标数据信息的参数化描述内容至少包括所述目标数据库名、目标表名、目标数据记录、以及每条目标数据记录的数据长度。0014优选地,所述目标数据结果集。
13、中还包括所述各目标数据库目标表对应的目标数据记录的数目。0015优选地,所述数据抽取系统还包括设置于所述源数据库和所述各目标数据库之外的中间存储模块,其用于存储经过所述中间转换模块转换后的所述各目标数据库目标表对应的目标数据的全部或者部分。0016一种从一个源表到至少一个目标库的表的数据抽取方法,将源数据库的一个源表的源数据与各目标数据库目标表对应的目标数据格式的转换处理过程封装成封装子模块,所述数据抽取方法包括如下步骤0017A、连接所述源数据库;0018B、从所述源表读取所需的源数据,如果其首记录非空则执行步骤C,否则结束;0019C、判断所述源数据的当前记录是否已为空,如果非空则调用所述。
14、封装子模块将所述源数据一次转换处理成所述各目标数据库目标表对应的目标数据,否则结束;0020D、如果转换后的所述目标数据为空则执行步骤E,否则将其分别写入对应的所述各目标数据库的目标表;以及0021E、读取所述源数据的下一条记录,再重复执行步骤C。0022优选地,所述封装子模块为动态链接库,所述动态链接库根据其内设置的均已参数化描述的所述源表的源数据信息与所述各目标数据库目标表对应的目标数据信息,将每次读取的所述源数据对应解析成包括目标数据结果的目标数据结果集,所述目标数据结果中含有经过转换处理后的所述各目标数据库目标表对应的目标数据及其相应的所述目标数据信息。0023优选地,所述源数据信息的。
15、参数化描述内容至少包括所述源数据所属的源数据库名、源表名、源数据记录、以及每条源数据记录的数据长度;以及,所述目标数据信息的参数化描述内容至少包括所述目标数据库名、目标表名、目标数据记录、以及每条目标数据记录的数据长度。0024优选地,所述目标数据结果集中还包括所述各目标数据库目标表对应的目标数据记录的数目。0025优选地,所述数据抽取方法还包括步骤将经过所述中间转换模块转换后的所述各目标数据库目标表对应的目标数据的全部或者部分存储于中间存储模块,所述中间存储模块设置于所述源数据库和所述各目标数据库之外。0026本发明的有益效果在于与现有的基于ETL技术的数据抽取、转换处理相比,本发明采用接口。
16、化和动态链接库DLL,DYNAMICLINKLIB技术,成功地将从一个源数据库到多个目标数据库的数据转换处理过程进行了封装,因此使用本发明所提供的系统及方法仅需通过一次数据转换即能够同时生成到多个目标数据库的数据结果集,从而极大地简化了数说明书CN102004744ACN102004757A3/5页6据转换的操作配置,提高了处理效率,并有利于促进系统的稳定。同时,本发明所提供的系统及方法还支持根据实际应用需求而将相应的数据转换规则自由定制在动态链接库中,因此提高了系统的扩展性和通用性,使得数据抽取与转换处理的设置与操作更加地灵活和方便。【附图说明】0027以下将结合附图和实施例,对本发明的技术。
17、方案作进一步的详细描述。其中0028图1是现有技术中基于ETL技术的数据抽取系统的组成结构示意图;0029图2是本发明的数据抽取系统的一个较佳实施例的组成结构示意图;0030图3是本发明的数据抽取系统的另一个较佳实施例的组成结构示意图;0031图4是本发明的数据抽取系统的较佳实施例中的封装子模块的组成结构示意图;0032图5是本发明的数据抽取方法的较佳实施例的流程图。【具体实施方式】0033请参阅图2,它是本发明的从一个源表到至少一个目标库的表的数据抽取系统的一个较佳实施例的组成结构示意图。在图2中,该数据抽取系统包括读取模块4、中间转换模块2和写入模块5。其中,读取模块4用于从源数据库的源表。
18、1读取所需的源数据;中间转换模块2包括封装子模块21,在该封装子模块21中封装了源数据库的源表1的源数据对应于各目标数据库的目标表3的目标数据格式的转换处理过程,这样中间转换模块2的相应数据转换处理仅需一次即可;写入模块5用于将转换后的数据写入各目标数据库的目标表3。0034图4揭示了通过动态链接库实现的封装子模块21的组成结构,其中的源数据接口单元211用于参数化描述源数据库的源表1的源数据信息,这样的信息内容包括读取的源数据所属的源数据库名、源表名、源数据记录以及每条源数据记录的数据长度;目标数据接口单元212用于参数化描述各目标数据库的目标表3的目标数据信息,这样的信息内容包括目标数据库。
19、名、目标表名、目标数据记录以及每条目标数据记录的数据长度;解析单元213用于调用源数据接口单元211和目标数据接口单元212,从而能够将每次读取的源数据对应解析成包括目标数据结果的目标数据结果集,该目标数据结果中含有经过转换处理后的各目标数据库的目标表3对应的目标数据及其相应的目标数据信息,在目标数据结果集中还包括各目标数据库的目标表3对应的目标数据记录的数目。0035在一个较佳的实施例中,可以采用类似于C语言的伪代码实现具有上述的目标数据结果与目标数据结果集0036/目标数据结果的结构/0037TYPEDEFSTRUCT0038CHARDESTDBNM151;/目标数据库名/0039CHAR。
20、DESTTBLNM401;/目标表名/0040INT32XBRESRECLEN;/每条目标数据记录的数据长度/0041CHARRECDATAREC_MAX_LEN1;/转换后的目标数据记录/0042XB_RES_T;说明书CN102004744ACN102004757A4/5页70043/目标数据结果集的结构/0044TYPEDEFSTRUCT0045INT32RESNO;/目标数据结果集中目标数据记录的数目/0046XB_RES_TXBRESXBRES_MAX_NO;/目标数据结果/0047XB_RES_CON_T;0048采用以上直接描述的或者其他的与之相类似的设置,就可以根据实际应用需求。
21、而通过动态链接库技术和接口化技术封装源数据到多种类型的目标数据格式的转换处理过程,因此最终仅需调用封装子模块21进行一次数据转换就能同时生成预设的各目标数据库对应的目标数据,从而极大地简化了数据转换的操作配置,提高了处理效率,并有利于促进系统的稳定。此外,当在某些情形下出现应用需求发生改变时,也仅需修改其中的动态链接库而不必改造系统的其他部分,这样就可以灵活地应对需求的变更,显著提高整个系统的扩展性和通用性。0049再请参阅图3,它是本发明的从一个源表到至少一个目标库的表的数据抽取系统的另一个较佳实施例的组成结构示意图。它与上述图2所示出的较佳实施例的组成结构基本类似,二者的区别之处在于此时的。
22、数据抽取系统还包括设置于中间转换模块2与写入模块5之间的中间存储模块6,以便在将转换后的目标数据写入对应的目标数据库的目标表3之前先将这些目标数据暂存于该存储模块6中供某些应用服务调用。0050图5是本发明的从一个源表到至少一个目标库的表的数据抽取方法的一个较佳实施例的流程图。请参照图5,下面将详细描述该数据抽取方法的处理步骤0051首先,根据需求在步骤S11中,对一个需要从中获取源数据的源数据库进行连接操作,其方式可以采用预先将该源数据库名、所需源数据所属的源表名、各目标数据库名、转换后的目标数据所属的目标数据库的目标表名、各数据库的物理连接路径以及运行参数配置等信息内容写入配置文件中,再通。
23、过读入此类配置文件来实现上述连接操作。而且,根据实际需求还可以更进一步地将需要处理的若干个源数据库的参数信息都写入上述的配置文件中,以便在采用本发明方法将一个源数据库的源表数据全部处理完毕之后,随后再依次连接并处理下一个源数据库。0052然后,进入步骤S12,从源数据库的源表读取所需的源数据的首记录;0053在步骤S13中,判断在上一个步骤S12中得到的源数据的首记录是否为空,如果其非空,则执行步骤S14;否则,表明所需的源数据目前还不存在或者尚未被更新,因此即无进一步操作的必要,直接结束。0054随后,在步骤S14中,判断所需的源数据的当前记录是否已经为空,如果其非空,则执行步骤S15进行此。
24、次源数据的数据转换处理;否则,表明所需的源数据目前已经全部处理完毕,因此即无进一步操作的必要,直接结束。0055在步骤S15中,调用封装子模块来进行数据转换处理,这样的封装子模块是预先已经将源表的源数据与各目标数据库目标表对应的目标数据格式的转换处理过程进行封装处理,具体可以采用动态链接库的方式。而且,在此类动态链接库中预先已对源表的源数据信息与各目标数据库目标表对应的目标数据信息进行了参数化描述,然后即可利用它们对输入的数据进行解析、转换处理后再予以输出,具体的参数化描述内容如前所述,所以在此不再赘述。说明书CN102004744ACN102004757A5/5页80056在步骤S16中,通。
25、过上述的数据转换处理后,将本次的源数据一次性地同时解析成包括目标数据结果的目标数据结果集,该目标数据结果中含有经过转换处理后的各目标数据库目标表对应的目标数据及其相应的目标数据信息,在目标数据结果集中还包括各目标数据库目标表对应的目标数据记录的数目。0057随后,进入步骤S17,对于获取的目标数据结果集,首先根据其内记载的目标数据记录的数目判断该目标数据结果集是否为空,如果是空,则进入步骤S19;否则,进入步骤S18。0058在步骤S18中,根据获取的目标数据结果集内目标数据结果中的记载信息,将其中的各目标数据分别写入其对应的各目标数据库的目标表中,再将本次转换后的目标数据全部写入处理完毕之后。
26、,进入步骤S19。0059在步骤S19中,读取源数据的下一条记录,然后重新进入步骤S14。0060在本发明方法的另一个较佳实施例中,还可以根据实际需要增加一个步骤即,将经过中间转换模块转换后的各目标数据库目标表对应的目标数据全部或者部分存储于中间存储模块,这样的中间存储模块并非是设于源数据库和各目标数据库的内部,而是可以设于内置或者外置的计算机物理储存装置如内存、闪存等,其具体形式也可以采用存于计算机物理空间上的文件形式,而其存储生命周期可以是暂时的如几十秒、几分钟或几十分钟等,当然也可以是较长的时间如几小时、甚至几天或几周等,这样就可以非常迅速或者更为方便地将所获取的目标数据中的某些关键的或。
27、敏感数据直接提供给某些应用服务使用,从而避免了它们再从目标数据库重复搜索、提取这些数据的过程,因此有利于提高应用服务的处理效率、减轻相应系统如数据库服务器的负担并提高其稳定性。0061综上所述,与现有的基于ETL技术的数据抽取、转换处理相比,本发明所提供的系统及方法能够极大地简化数据转换的操作配置,提高处理效率,并有利于提高系统的稳定性、扩展性与通用性,使得数据抽取与转换处理操作更加灵活和方便。因此,本发明所提供的系统及方法特别适用于银行、金融、证券、电子商务等具有较大业务数据转换处理量的行业领域。0062以上列举了若干具体实施例来详细阐明本发明的一种从一个源表到至少一个目标库的表的数据抽取系统及方法,这些个例仅供说明本发明的原理及其实施方式之用,而非对本发明的限制,在不脱离本发明的精神和范围的情况下,本领域的普通技术人员还可以作出各种变形和改进,因此所有等同的技术方案均应属于本发明的范畴并为本发明的各项权利要求所限定。说明书CN102004744ACN102004757A1/3页9图1图2说明书附图CN102004744ACN102004757A2/3页10图3图4说明书附图CN102004744ACN102004757A3/3页11图5说明书附图CN102004744A。