一种适配多种数据源的数据抽取方法和装置制造方法及图纸

技术编号:15704848 阅读:79 留言:0更新日期:2017-06-26 10:01
本发明专利技术实施例提供了一种适配多种数据源的数据抽取方法和装置,其中的方法包括:根据目标数据源类型确定对应的数据抽取规则;根据所述数据抽取规则生成数据抽取指令;对所述目标数据源进行适配处理;执行所述数据抽取指令从所述目标数据源中获取目标数据。当抽取需求发生变化时,本发明专利技术实施例只需对配置文件中的抽取规则进行调整即可,而无需修改任何程序代码,不但有效降低了维护成本,而且大大提高了系统的稳定性。

【技术实现步骤摘要】
一种适配多种数据源的数据抽取方法和装置
本专利技术涉及信息处理
,具体涉及一种适配多种数据源的数据抽取方法和装置。
技术介绍
目前,企业通过采用信息化解决方案已使得企业的生产效率和管理水平得到了极大地提高。但是,由于不同信息系统之间的数据源类型的差异,例如不同的关系型数据库Oracle、MySQL、DB2、SQLServer等造成了信息交换和共享变得非常困难。为了实现不同信息系统之间的数据交换,现有技术多采用硬编码的方式将对不同类型数据源的数据抽取过程固化在程序中。但是采用硬编码的方式灵活性很差,数据源的任何变化都需要对硬编码部分重新修改,不但处理成本高,而且大大降低了系统的稳定性。
技术实现思路
为了解决现有技术中数据抽取过程中采用硬编码成本高、稳定性差的问题,本专利技术实施例期望提供一种适配多种数据源的数据抽取方法和装置。本专利技术实施例提供了一种适配多种数据源的数据抽取方法,包括:根据目标数据源类型确定对应的数据抽取规则;根据所述数据抽取规则生成数据抽取指令;对所述目标数据源进行适配处理;执行所述数据抽取指令从所述目标数据源中获取目标数据。优选地,所述根据目标数据源类型确定对应的数据抽取规则的步骤之前,还包括:预先在配置文件中设置数据抽取规则;其中,所述数据抽取规则包括:关系型数据库抽取规则、非关系型数据库抽取规则、数据文件抽取规则。优选地,所述关系型数据库抽取规则通过以下方式实现:SELECT*FROMaWHEREbBETWEENcANDd;其中,a为数据库名称;b、c、d为数据抽取条件参数。优选地,所述执行所述数据抽取指令从所述目标数据源中获取目标数据之前,还包括:当所述数据抽取规则中设置有数据前置处理标识时,对所述目标数据源执行数据前置处理。优选地,所述执行所述数据抽取指令从所述目标数据源中获取目标数据之后,还包括:当所述数据抽取规则中设置有数据后置处理标识时,对所述获取的目标数据执行数据后置处理。本专利技术实施例提供了一种适配多种数据源的数据抽取方法装置,包括:抽取规则确定模块,用于根据目标数据源类型确定对应的数据抽取规则;抽取指令生成模块,用于根据所述数据抽取规则生成数据抽取指令;数据源适配模块,用于对所述目标数据源进行适配处理;指令执行模块,用于执行所述数据抽取指令从所述目标数据源中获取目标数据。优选地,所述装置,还包括:抽取规则设置模块,用于预先在配置文件中设置数据抽取规则;其中,所述数据抽取规则包括:关系型数据库抽取规则、非关系型数据库抽取规则、数据文件抽取规则。优选地,所述关系型数据库抽取规则通过以下方式实现:SELECT*FROMaWHEREbBETWEENcANDd;其中,a为数据库名称;b、c、d为数据抽取条件参数。优选地,所述装置,还包括:数据前置处理模块,用于当所述抽取规则确定模块所确定的数据抽取规则中设置有数据前置处理标识时,对所述目标数据源执行数据前置处理。优选地,所述装置还包括:数据后置处理模块,用于当所述抽取规则确定模块所确定数据抽取规则中设置有数据后置处理标识时,对所述获取的目标数据执行数据后置处理。。与现有技术相比,本专利技术实施例至少包括以下优点:本专利技术实施例所提供的一种适配多种数据源的数据抽取方法和装置,通过目标数据源确定数据抽取规则,然后依据该数据抽取规则生成数据抽取指令,最后通过执行该数据抽取指令从目标数据源中获取目标数据。可以看出,本专利技术实施例所生成的数据抽取指令是根据预先定义在配置文件中的数据抽取规则所生成,而不必像现有技术在程序中通过硬编码的方式实现,由于所述配置文件独立于系统程序代码,因此,即使对抽取内容有了不同的要求,只需对配置文件中的抽取规则进行调整即可,而无需修改任何程序代码,不但有效降低了维护成本,而且大大提高了系统的稳定性。附图说明图1为本专利技术实施例提供的一种适配多种数据源的数据抽取方法流程图;图2本专利技术实施例提供的另一种适配多种数据源的数据抽取方法流程图;图3为本专利技术实施例提供的一种适配多种数据源的数据抽取装置的基本结构图。具体实施方式实施例一参照图1,示出了本专利技术的一种适配多种数据源的数据抽取方法实施例一的步骤流程图,具体可以包括:步骤101,根据目标数据源类型确定对应的数据抽取规则;具体的,本专利技术实施例所适配的目标数据源可以是关系型数据库、非关系型数据库NoSQL和数据文件。其中,关系型数据库可以是Oracle,MySQL,DB2,SQLServer等任意类型的关系型数据库;数据文件可以是TXT、XML、Excel、CSV等,本专利技术对关系型数据库的类型、非关系数据库的类型以及数据文件的类型不作限制。其中,数据抽取规则描述了如何从对应的目标数据源中抽取数据,具体实现时,根据目标数据源的类型确定对应的数据抽取规则,具体可以包括:关系型数据库抽取规则、非关系数据库抽取规则和数据文件抽取规则等。另外,本领域技术人员还可根据实际需要按照数据源的类型设置对应的数据抽取规则。以关系型数据库抽取规则为例,可通过定义SQL语句来描述该规则,例如:SELECT*FROMaWHEREbBETWEENcANDd;其中,a为数据库名称;b、c、d为数据抽取条件参数,该参数可在具体执行过程中通过JavaSetParameter方法输入。具体的,对于非关系型数据库抽取规则可通过指定抽取类的方法在执行过程中动态执行,例如:com.cattsoft.idea.dataFilter;其中,dataFilter即为预先定义的数据抽取类。其中,数据文件抽取规则可根据实际应用中数据文件具体格式和内容确定,例如Excel文件中的单元格位置,XML文件中节点名称等。需要说明的是,以上只是对本专利技术实施例中关系型数据库抽取规则、非关系型数据库抽取规则的举例说明,在具体实现时,可根据实际需要采用不同的SQL语句、数据抽取类或其它方式设置不同的数据抽取规则。步骤102,根据所述数据抽取规则生成数据抽取指令;具体的,根据应用确定数据抽取参数,然后按照步骤101确定的数据抽取规则生成数据抽取指令,例如:selectID,NamefrompersonwhereIDbetween100And999;其中,person为参数a确定的数据表名称,ID、100和999即为上述抽取规则示例中对应的参数b、c和d,该规则表示从数据表person中抽取ID介于100和999之间的记录。另外,如果目标数据源是非关系数据库NoSQL或数据文件,则根据预先定义的NoSQL抽取规则、数据文件抽取规则生成对应的数据抽取指令。步骤103,对所述目标数据源进行适配处理;其中,对目标数据源进行适配处理具体可以包括:根据目标数据源的不同类型确定对应的数据访问驱动。例如,采用JDBC、JavaIO、第三方开源工具、数据库本身提供的数据工具包实现与底层数据源的对接。当目标数据源是txt、xml之类的数据文件时,则通过基于文件输入输出接口IO的抽象类方法实现对目标数据源的适配访问。步骤104,执行所述数据抽取指令从所述目标数据源中获取目标数据。具体的,以目标数据源是关系型数据库为例,即执行所述生成的SQL指令,从对应的数据库中获取目标数据。另外,执行所述数据处理指令还可以是存储过程。综上,本专利技术实施例根据目标数据源确本文档来自技高网...
一种适配多种数据源的数据抽取方法和装置

【技术保护点】
一种适配多种数据源的数据抽取方法,其特征在于,所述方法包括:根据目标数据源类型确定对应的数据抽取规则;根据所述数据抽取规则生成数据抽取指令;对所述目标数据源进行适配处理;执行所述数据抽取指令从所述目标数据源中获取目标数据。

【技术特征摘要】
1.一种适配多种数据源的数据抽取方法,其特征在于,所述方法包括:根据目标数据源类型确定对应的数据抽取规则;根据所述数据抽取规则生成数据抽取指令;对所述目标数据源进行适配处理;执行所述数据抽取指令从所述目标数据源中获取目标数据。2.根据权利要求1所述的方法,其特征在于,所述根据目标数据源类型确定对应的数据抽取规则的步骤之前,还包括:预先在配置文件中设置数据抽取规则;其中,所述数据抽取规则包括:关系型数据库抽取规则、非关系型数据库抽取规则、数据文件抽取规则。3.根据权利要求2所述的方法,其特征在于,所述关系型数据库抽取规则通过以下方式实现:SELECT*FROMaWHEREbBETWEENcANDd;其中,a为数据库名称;b、c、d为数据抽取条件参数。4.根据权利要求1所述的方法,其特征在于,所述执行所述数据抽取指令从所述目标数据源中获取目标数据之前,还包括:当所述数据抽取规则中设置有数据前置处理标识时,对所述目标数据源执行数据前置处理。5.根据权利要求4所述的方法,其特征在于,所述执行所述数据抽取指令从所述目标数据源中获取目标数据之后,还包括:当所述数据抽取规则中设置有数据后置处理标识时,对所述获取的目标数据执行数据后置处理。6.一种适配多种数据源的...

【专利技术属性】
技术研发人员:栗增光陈彬程之明
申请(专利权)人:大唐软件技术股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1