CN107368500B - 数据抽取方法及系统 - Google Patents
数据抽取方法及系统 Download PDFInfo
- Publication number
- CN107368500B CN107368500B CN201610319445.5A CN201610319445A CN107368500B CN 107368500 B CN107368500 B CN 107368500B CN 201610319445 A CN201610319445 A CN 201610319445A CN 107368500 B CN107368500 B CN 107368500B
- Authority
- CN
- China
- Prior art keywords
- data
- comparison
- query condition
- preset
- data source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开是关于一种数据抽取方法及系统,属于数据处理技术领域。该方法包括:从数据库服务器中按照预先设置的方式抽取当前需要收集的数据源中的数据;从所述数据源中收集预设查询条件;将所述预设查询条件的部分或者全部配置到按照预设规则编写的XML文件中;自动解析所述XML文件,读取被配置的所述预设查询条件;根据所述预设查询条件过滤所述数据源中的数据。本发明能够实现大数据处理过程中数据逻辑处理的可配置化。
Description
技术领域
本公开涉及数据处理技术,尤其涉及一种数据抽取方法及系统。
背景技术
在EBS集成中间件系统中,需要将业务系统产生的数据按照一定的规则,按时、准确、完整地导入EBS中间表,而第一步就是需要将所需的数据从各个数据源中抽取出来,但是如果在抽取过程中添加的查询条件过多,会给数据库服务器造成很大的访问压力。
图1描述了现有数据抽取的实现方案,包括业务表110、sqoop120和hdfs(HadoopDistributed File System,分布式文件系统)130。其中sqoop主要用于在hadoop(live)与传统的数据库(mysql,postgresql等)间传递数据。
具体工作流程如下:业务系统数据源准备,包括sql server、mysql、oracle等关系型数据库;使用sqoop120抽取业务数据,但是所有的查询条件都放到了数据库中去执行,对数据库服务器访问造成了很大压力;将抽取的数据写入hdfs130。
上述方案中,数据处理逻辑无法实现配置化;虽然支持数据并发抽取,但是对于降低大数据量的数据库服务器的访问压力还不是很理想。
因此,需要一种新的数据抽取方法及系统。
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供一种数据抽取方法及系统,能够实现大数据处理过程中数据逻辑处理的可配置化。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一方面,提供一种数据抽取方法,包括:从数据库服务器中按照预先设置的方式抽取当前需要收集的数据源中的数据;从所述数据源中收集预设查询条件;将所述预设查询条件的部分或者全部配置到按照预设规则编写的XML文件中;自动解析所述XML文件,读取被配置的所述预设查询条件;根据所述预设查询条件过滤所述数据源中的数据。
根据本公开的一实施方式,其中所述预先设置的方式为增量抽取方式。
根据本公开的一实施方式,其中所述预设查询条件为where查询条件。
根据本公开的一实施方式,其中根据所述预设查询条件过滤所述数据源中的数据包括:对所述预设查询条件进行封装,获取CompareFormula对象;执行所述CompareFormula对象,并返回结果。
根据本公开的一实施方式,其中从所述数据源中收集预设查询条件包括:初始化期间检索每个数据源,判断是否有定义where查询条件且参数不为空;如果有定义where查询条件且参数不为空,将相应的数据源标签和where查询条件收集。
根据本公开的一实施方式,其中对所述预设查询条件进行封装,获取CompareFormula对象包括:利用递归的方法将收集的where查询条件参数的值封装成所述CompareFormula对象。
根据本公开的一实施方式,其中所述CompareFormula对象包括:比较的操作符、比较的对象、比较值信息。
根据本公开的一实施方式,其中所述CompareFormula对象还包括:自定义函数信息。
根据本公开的一实施方式,其中所述执行所述CompareFormula对象,并返回结果包括:判断是普通比较还是自定义函数比较;如果是普通比较,则直接比较;如果是自定义函数比较,则调用相应的getResult方法返回函数执行后的结果。
根据本公开实施例的另一方面,提供一种数据抽取系统,包括:抽取模块,用于从数据库服务器中按照预先设置的方式抽取当前需要收集的数据源中的数据;条件收集模块,用于从所述数据源中收集预设查询条件;配置模块,用于将所述预设查询条件的部分或者全部配置到按照预设规则编写的XML文件中;解析模块,用于自动解析所述XML文件,读取被配置的所述预设查询条件;过滤模块,用于根据所述预设查询条件过滤所述数据源中的数据。
根据本公开的一实施方式,其中所述过滤模块包括:条件封装单元,用于对所述预设查询条件进行封装,获取CompareFormula对象;条件执行单元,用于执行所述CompareFormula对象,并返回结果。
根据本公开的一实施方式,其中所述条件收集模块包括:检索单元,用于初始化期间检索每个数据源,判断是否有定义where查询条件且参数不为空;保存单元,用于如果有定义where查询条件且参数不为空,将相应的数据源标签和where查询条件收集。
根据本公开的一实施方式,还包括:自定义函数模块,所述自定义函数模块连接所述配置模块,能够将所述自定义函数中自定义的函数配置到所述XML文件中。
根据本公开的一实施方式,其中所述条件执行单元包括:判断子单元,用于判断所述CompareFormula对象是普通比较还是自定义函数比较;比较子单元,其中如果所述判断单元判断是普通比较,则直接比较;如果判断自定义函数比较,则调用相应的getResult方法返回函数执行后的结果。
根据本公开的数据抽取方法及系统,能够实现大数据处理过程中数据逻辑处理的可配置化。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1示意性示出现有的数据抽取方案的示意图;
图2示意性示出根据本公开示例实施方式的数据抽取方法的流程图;
图3示意性示出根据本公开示例实施方式的数据抽取方法的流程图;
图4示意性示出根据本公开示例实施方式的数据抽取系统的框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、系统、步骤等。在其它情况下,不详细示出或描述公知结构、方法、系统、实现、材料或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器系统和/或微控制器系统中实现这些功能实体。
以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的系统和方法的例子。
图2示意性示出根据本公开示例实施方式的数据抽取方法的流程图。
如图2所示,在步骤S210,从数据库服务器中按照预先设置的方式抽取当前需要收集的数据源中的数据。
在示例性实施例中,其中所述预先设置的方式为增量抽取方式。可以按照创建时间或者更新时间等来抽取。例如,按照创建时间本次抽取数据到2012年6月5日下午5点,那下次抽取数据就从2012年6月5日下午5点开始。
在步骤S220,从所述数据源中收集预设查询条件。
在示例性实施例中,其中所述预设查询条件为where查询条件。
在示例性实施例中,其中从所述数据源中收集预设查询条件包括:初始化期间检索每个数据源,判断是否有定义where查询条件且参数不为空;如果有定义where查询条件且参数不为空,将相应的数据源标签和where查询条件收集。
在步骤S230,将所述预设查询条件的部分或者全部配置到按照预设规则编写的XML文件中。
在集成中间件抽取过程中,需要对源数据进行逻辑处理和业务判断,势必要写很多java代码。而且涉及到的业务系统众多,每个系统、每张表,甚至每个字段的取值范围都不一样。这些原来都需要在java代码中取实现,如果改动一个条件、增加一个类型,都有改动代码,重新打包上线,很不容易维护。
本发明实施例通过把业务逻辑的判断都提到xml文件中去配置,可以减少代码的编写,减轻了开发和维护的工作流,而且所有的逻辑对测试透明化,也有利于测试。
例如,规则配置的xml xsd格式如下
其中,规则配置功能列表包括:支持对符合条件的数据设置常量值;支持对符合条件的数据设置变量值;支持对符合条件的数据设置数学运算结果值;支持字符串拼接,支持字符串和变量值混合拼接;支持过滤无效数据,可以设置where表达式,将不符合表达式的数据过滤掉(正常过滤);支持对每张表、每个字段设置不同的规则,和不同的返回值。
所述预设规则详细配置如下:
(1)对符合条件的数据设置常量值
设置一个判断条件,如果数据符合该条件,则将某一个字段设置成常量值。判断条件为一个where表达式。
<column name="EXPENSE_TYPE">
<rule formula="order_type in(2,3,4)"result="D"/>
</column>
其中,column标签为配置一个中间表字段的所有规则映射关系;name属性为配置中间表字段的列名称;rule标签为配置中间表字段所对应的规则,一个列可以配置多个规则;formula属性为条件表达式,符合条件返回true,不符合条件返回false;result为返回的常量值。
(2)对符合条件的数据设置变量值
设置一个判断条件,如果数据符合该条件,则将某一个字段设置成变量值。判断条件为一个where表达式。
其中,resultType属性为返回值类型,取变量需要设置成variable。
(3)对符合条件的数据设置数学运算结果值
设置一个判断条件,如果数据符合该条件,则将某一个字段设置成一个数据运算结果。判断条件为一个where表达式。
其中result属性为一个数据表达式,支持加、减、乘、除操作;resultType属性为返回值类型,取数学运算结果需要设置成formula。
(4)字符串拼接,支持字符串和变量值混合拼接
设置一个判断条件,如果数据符合该条件,则可以返回一个拼接的字符串,该字符串可以是变量和常量的混合拼接。判断条件为一个where表达式。
其中,result属性为一个字符串,可以是变量和字符串常量的拼接;resultType属性为返回值类型,取字符串拼接结果需要设置成connect。
(5)过滤无效数据
在table端设置一个where条件,如果数据符合where条件才输出,如果不符合条件则直接过滤掉。
<table name="JD_ORDER_COMMISSION_I"where="!(order_type=62and fee_type=40)"/>
where表达式跟formula属性配置的表达式一样。
(6)比较表达式配置
formula属性和where属性配置的比较表达式,根据一系列的判断,返回true或false。支持>、<、>=、<=、=、!=、and、or、!、()、like、in、not in等操作符,几乎涵盖了sql的所有操作符。
(7)表达式函数
表达式支持自定义函数,已经留出了接口,如果有需要,可以随意扩展函数。例如:
Substring字符串截取函数,
用法:func:substring(variable,beginIndex,length);
charAt字符串查找函数,用法:func:charAt(variable,index);
abs取绝对值函数,用法:func:abs(variable)。
例如,一个示例性代码实例如下:
规则配置文件名默认为formulaRule.xml,如果设置为该文件名并且默认放到工作流的目录下,则不用手动的指定文件路径,否则需要在mapping.xml文件中指定,属性为:formulaPath。表达式中配置常量,需要用单引号括起来,以区别变量。
在步骤S240,自动解析所述XML文件,读取被配置的所述预设查询条件。
在步骤S250,根据所述预设查询条件过滤所述数据源中的数据。
以下述示例性代码为例:
<!—fi_ticket.check_yn=2已经核销(没有核销相关发票的结算单,不能审批通过。)
23:财务驳回53:财务审核55:审核完成30:已生成收付款单40:完成收付款
在上述代码中,先按照
的SQL把数据抽取过来,然后根据配置到这个XML文件的放在where属性后面的查询条件where=”datastatus in(23,30,40,55,24)”对抽取过来的数据进行更细一步的过滤。程序会自动解析这个XML文件,读到where查询条件,然后根据这个where查询条件过滤从数据库服务器中抽取出来的数据,即把原本直接放到数据库服务器去查询的where查询条件的一部分配置到按照一定规则配置的XML文件里去判断,把数据库服务器中的数据抽取过来以后再根据where查询条件过滤一遍,从而可以减小数据库服务器的访问压力。
即本发明实施例是先根据预设规则编写了一个xml文件,然后根据增量抽取将本次需要收集的数据源从数据库服务器中抽取出来,收集该数据源中的where查询条件,然后将该where查询条件配置到该xml文件中,再根据where查询条件进一步过滤掉增量抽取的数据源。
在上述示例代码中,虽然SQL中包含了比较复杂的数据库查询语句(SELECT属性部分),这一部分是在数据库服务器中执行的,而配置在XML文件中的where查询条件是一个比较简单的判断,但实际上,配置在XML文件中的where查询是支持复杂查询的,例如,可以将SELECT中的$CONDITIONS甚至SELECT中的所有查询条件配置到该XML文件的where中去,也可以在此配置自定义函数,即数据库中支持的查询条件在该XML文件的where查询中均可以实现。考虑到如果将SELCET中的所有查询条件均配置到XML文件中的where查询中,可能会导致一次从数据库服务器中抽取的数据过多,所以,开发的时候会根据系统的实际情况,在查询SQL中放一些简单的查询条件。
在示例性实施例中,其中根据所述预设查询条件过滤所述数据源中的数据包括:对所述预设查询条件进行封装,获取CompareFormula对象;执行所述CompareFormula对象,并返回结果。
在示例性实施例中,其中对所述预设查询条件进行封装,获取CompareFormula对象包括:利用递归的方法将收集的where查询条件参数的值封装成所述CompareFormula对象。
在示例性实施例中,其中所述CompareFormula对象包括:比较的操作符、比较的对象、比较值信息。
在示例性实施例中,其中所述CompareFormula对象还包括:自定义函数信息。
在示例性实施例中,其中所述执行所述CompareFormula对象,并返回结果包括:判断是普通比较还是自定义函数比较;如果是普通比较,则直接比较;如果是自定义函数比较,则调用相应的getResult方法返回函数执行后的结果。
图3示意性示出根据本公开示例实施方式的数据抽取方法的流程图。
如图3所示,在步骤S310,按照增量抽取方式从数据库服务器中抽取相应数据源中的数据。
在步骤S320,数据源中是否有定义where查询条件且参数不为空?如果是,则进入下一步;反之,跳转到步骤S370。
在步骤S330,将相应的数据源标签和where查询条件收集。
对本次需要收集的数据源检测是否有where查询条件;将已定义where条件的源数据标签例如订单或者采购单及对应条件统一保存等待进行解析并执行。
首先检测源数据是否有where查询条件;如果有where查询条件,调用条件处理模块进行数据处理以便进一步判断是否需要对该数据做下一步处理,对于垃圾数据不会再做后续处理。
在步骤S340,将where查询条件的部分或者全部配置到按照预设规则编写的XML文件中的where语句。
在步骤S350,利用递归方法将where查询条件封装成一个CompareFormula对象。
对有where查询条件的数据在调用封装模块时需要将本次处理的数据作为参数传入,以便在后面处理过程中获取对应变量的值然后进行比较;利用递归方法将传入的条件及数据最后封装成一个大的CompareFormula对象,该对象收集的信息主要由比较的操作符及左右两个比较的对象,如果是自定义函数的话就会封装到该对象中,以便后续条件执行时决定是直接比较还是调用自定义函数定义的方法获取最终结果。
在步骤S360,执行CompareFormula对象,并返回true或者false以表示条件是否成立。
判断是普通比较还是自定义的函数比较;如果是普通比较,则直接比较便可;如果是自定义函数,则调用函数的getResult方法获取函数结果,如果获取的条件结果成立则返回并进行下一步处理,如果条件不成立代表是垃圾数据,不会进行下一步的处理。
在步骤S370,结束。
图4示意性示出根据本公开示例实施方式的数据抽取系统的框图。
如图4所示,该系统包括:抽取模块410,用于从数据库服务器中按照预先设置的方式抽取当前需要收集的数据源中的数据;条件收集模块420,用于从所述数据源中收集预设查询条件;配置模块430,用于将所述预设查询条件的部分或者全部配置到按照预设规则编写的XML文件中;解析模块440,用于自动解析所述XML文件,读取被配置的所述预设查询条件;过滤模块450,用于根据所述预设查询条件过滤所述数据源中的数据。
在示例性实施例中,其中所述过滤模块450包括:条件封装单元,用于对所述预设查询条件进行封装,获取CompareFormula对象;条件执行单元,用于执行所述CompareFormula对象,并返回结果。
所述条件封装单元主要是对收集到的where查询条件做进一步封装。利用递归方法将获取的where查询参数的值最后封装成一个大的CompareFormula对象,每个对象中封装的信息大致有比较的方法即操作符、比较的变量、比较值、自定义的函数等信息。
所述条件执行单元主要是执行所述条件封装单元产生的CompareFormula对象,并返回true或者false以表示条件是否成立。
在示例性实施例中,其中所述条件收集模块420包括:检索单元,用于初始化期间检索每个数据源,判断是否有定义where查询条件且参数不为空;保存单元,用于如果有定义where查询条件且参数不为空,将相应的数据源标签和where查询条件收集。
所述条件收集模块420主要是对where查询条件的收集,在程序初始化期间会检索每个数据源,如果有定义where查询条件参数并且不为空,则将数据源标签及where查询条件统一收集,以便后面进一步解析并执行该查询条件。
在示例性实施例中,还包括:自定义函数模块,所述自定义函数模块连接所述配置模块430,能够将所述自定义函数中自定义的函数配置到所述XML文件中。
由于该系统还可以支持自定义函数,类似关系型数据库中的length(长度获取)、subString(字符串截取)charAt(字符截取)等函数,自定义函数使用func:标记,如func:substring(变量,start,end)、func:length(变量)等等,只要定义了处理函数,调用的时候会自动生成一个该函数的实例并调用对应的getResult方法返回函数执行后的结果。
在示例性实施例中,其中所述条件执行单元包括:判断子单元,用于判断所述CompareFormula对象是普通比较还是自定义函数比较;比较子单元,其中如果所述判断单元判断是普通比较,则直接比较;如果判断自定义函数比较,则调用相应的getResult方法返回函数执行后的结果。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例中其它内容参考上述发明实施例中的内容,在此不再赘述。
图2和3示出根据本公开示例实施方式的数据抽取方法的流程图。该方法可例如利用如图4所示的数据抽取系统实现,但本公开不限于此。需要注意的是,图2和3仅是根据本公开示例实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,图2和3所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块/进程/线程中同步或异步执行的。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本公开的数据抽取方法及系统,能够让程序自动拆分并解析查询条件,并且对定义的查询条件自动进行封装、执行并返回结果,不仅可以减少数据库服务器的访问压力,也使开发效率提高了很多。优化了当前的数据抽取方案,能在大数据抽取过程中减少数据库服务器的访问压力,而且实现了在大数据处理场景中数据逻辑处理的配置化,降低程序编码的复杂性及维护成本。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
以上具体地示出和描述了本公开的示例性实施方式。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (16)
1.一种数据抽取方法,其特征在于,包括:
从数据库服务器中按照预先设置的方式抽取当前需要收集的数据源中的数据;
从所述数据源中收集预设查询条件;
将所述预设查询条件的部分或者全部配置到按照预设规则编写的XML文件中;
自动解析所述XML文件,读取被配置的所述预设查询条件;
根据所述预设查询条件过滤所述数据源中的数据。
2.根据权利要求1所述的方法,其特征在于,其中所述预先设置的方式为增量抽取方式。
3.根据权利要求1所述的方法,其特征在于,其中所述预设查询条件为where查询条件。
4.根据权利要求2所述的方法,其特征在于,其中根据所述预设查询条件过滤所述数据源中的数据包括:
对所述预设查询条件进行封装,获取CompareFormula对象;
执行所述CompareFormula对象,并返回结果。
5.根据权利要求2所述的方法,其特征在于,其中从所述数据源中收集预设查询条件包括:
初始化期间检索每个数据源,判断是否有定义where查询条件且参数不为空;
如果有定义where查询条件且参数不为空,将相应的数据源标签和where查询条件收集。
6.根据权利要求4所述的方法,其特征在于,其中对所述预设查询条件进行封装,获取CompareFormula对象包括:利用递归的方法将收集的where查询条件参数的值封装成所述CompareFormula对象。
7.根据权利要求6所述的方法,其特征在于,其中所述CompareFormula对象包括:比较的操作符、比较的对象、比较值信息。
8.根据权利要求7所述的方法,其特征在于,其中所述CompareFormula对象还包括:自定义函数信息。
9.根据权利要求4所述的方法,其特征在于,其中所述执行所述CompareFormula对象,并返回结果包括:
判断是普通比较还是自定义函数比较;
如果是普通比较,则直接比较;
如果是自定义函数比较,则调用相应的getResult方法返回函数执行后的结果。
10.一种数据抽取系统,其特征在于,包括:
抽取模块,用于从数据库服务器中按照预先设置的方式抽取当前需要收集的数据源中的数据;
条件收集模块,用于从所述数据源中收集预设查询条件;
配置模块,用于将所述预设查询条件的部分或者全部配置到按照预设规则编写的XML文件中;
解析模块,用于自动解析所述XML文件,读取被配置的所述预设查询条件;
过滤模块,用于根据所述预设查询条件过滤所述数据源中的数据。
11.根据权利要求10所述的系统,其特征在于,其中所述过滤模块包括:
条件封装单元,用于对所述预设查询条件进行封装,获取CompareFormula对象;
条件执行单元,用于执行所述CompareFormula对象,并返回结果。
12.根据权利要求10所述的系统,其特征在于,其中所述条件收集模块包括:
检索单元,用于初始化期间检索每个数据源,判断是否有定义where查询条件且参数不为空;
保存单元,用于如果有定义where查询条件且参数不为空,将相应的数据源标签和where查询条件收集。
13.根据权利要求10所述的系统,其特征在于,还包括:自定义函数模块,所述自定义函数模块连接所述配置模块,能够将所述自定义函数中自定义的函数配置到所述XML文件中。
14.根据权利要求11所述的系统,其特征在于,其中所述条件执行单元包括:
判断子单元,用于判断所述CompareFormula对象是普通比较还是自定义函数比较;
比较子单元,其中如果所述判断单元判断是普通比较,则直接比较;如果判断自定义函数比较,则调用相应的getResult方法返回函数执行后的结果。
15.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
16.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610319445.5A CN107368500B (zh) | 2016-05-13 | 2016-05-13 | 数据抽取方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610319445.5A CN107368500B (zh) | 2016-05-13 | 2016-05-13 | 数据抽取方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107368500A CN107368500A (zh) | 2017-11-21 |
CN107368500B true CN107368500B (zh) | 2020-03-03 |
Family
ID=60303682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610319445.5A Active CN107368500B (zh) | 2016-05-13 | 2016-05-13 | 数据抽取方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107368500B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947461A (zh) * | 2019-03-08 | 2019-06-28 | 深圳市天维思信息技术有限公司 | 数据判定链配置方法、装置及计算机设备 |
CN110362595A (zh) * | 2019-07-19 | 2019-10-22 | 北京首汽智行科技有限公司 | 一种sql语句动态解析方法 |
CN110399529A (zh) * | 2019-07-23 | 2019-11-01 | 福建奇点时空数字科技有限公司 | 一种基于深度学习技术的数据实体抽取方法 |
CN113312053A (zh) * | 2020-02-27 | 2021-08-27 | 北京沃东天骏信息技术有限公司 | 一种数据处理的方法和装置 |
CN113688157B (zh) * | 2021-08-29 | 2023-12-05 | 中盾创新数字科技(北京)有限公司 | 一种基于中间表的数据抽取的系统和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101046811A (zh) * | 2006-06-07 | 2007-10-03 | 华为技术有限公司 | 数据集成服务系统及方法 |
KR20080051063A (ko) * | 2006-12-04 | 2008-06-10 | 한국전자통신연구원 | 통합 XQuery 질의 처리 방법 |
CN101446965A (zh) * | 2008-12-31 | 2009-06-03 | 中国建设银行股份有限公司 | 一种数据查询方法及系统 |
CN101866361A (zh) * | 2010-06-30 | 2010-10-20 | 山东中创软件工程股份有限公司 | 一种异构数据集成方法及装置 |
CN103164209A (zh) * | 2011-12-19 | 2013-06-19 | 天津理工大学 | 基于xml数据库与关系型数据库结合的“电子病人”编辑方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040193656A1 (en) * | 2003-03-28 | 2004-09-30 | Pizzo Michael J. | Systems and methods for caching and invalidating database results and derived objects |
CN100481076C (zh) * | 2005-12-23 | 2009-04-22 | 北大方正集团有限公司 | 关系型数据库与全文检索相结合的检索方法 |
CN102479225B (zh) * | 2010-11-26 | 2014-05-07 | 中国移动通信集团四川有限公司 | 一种分布式数据分析和处理方法及系统 |
CN102724105B (zh) * | 2011-03-30 | 2016-03-09 | 腾讯科技(深圳)有限公司 | 一种负载均衡方法和装置 |
CN103345470B (zh) * | 2013-05-31 | 2016-05-25 | 深圳市沃信科技有限公司 | 一种数据库容灾方法、系统及服务器 |
CN104462435A (zh) * | 2014-12-15 | 2015-03-25 | 同方知网数字出版技术股份有限公司 | 一种分布式数据库横向扩展方法 |
-
2016
- 2016-05-13 CN CN201610319445.5A patent/CN107368500B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101046811A (zh) * | 2006-06-07 | 2007-10-03 | 华为技术有限公司 | 数据集成服务系统及方法 |
KR20080051063A (ko) * | 2006-12-04 | 2008-06-10 | 한국전자통신연구원 | 통합 XQuery 질의 처리 방법 |
CN101446965A (zh) * | 2008-12-31 | 2009-06-03 | 中国建设银行股份有限公司 | 一种数据查询方法及系统 |
CN101866361A (zh) * | 2010-06-30 | 2010-10-20 | 山东中创软件工程股份有限公司 | 一种异构数据集成方法及装置 |
CN103164209A (zh) * | 2011-12-19 | 2013-06-19 | 天津理工大学 | 基于xml数据库与关系型数据库结合的“电子病人”编辑方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107368500A (zh) | 2017-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107368500B (zh) | 数据抽取方法及系统 | |
CN108334609B (zh) | Oracle中实现JSON格式数据存取的方法、装置、设备及存储介质 | |
CN111104421A (zh) | 一种基于数据接口标准配置的数据查询方法及装置 | |
CN106055618B (zh) | 一种基于网络爬虫与结构化存储的数据处理方法 | |
CN110866029B (zh) | sql语句构建方法、装置、服务器及可读存储介质 | |
CN110765101B (zh) | 标签的生成方法、装置、计算机可读存储介质及服务器 | |
CN111078776A (zh) | 数据表的标准化方法、装置、设备及存储介质 | |
CN110765750B (zh) | 报表数据录入方法及终端设备 | |
CN112420145A (zh) | 电子病历文书数据处理方法、装置及计算机可读存储介质 | |
CN110569243B (zh) | 一种数据查询方法、数据查询插件和数据查询服务器 | |
CN112346775B (zh) | 指标数据通用处理方法、电子设备和存储介质 | |
CN113220657A (zh) | 数据处理方法、装置及计算机设备 | |
CN107766036B (zh) | 一种模块的构建方法、构建装置及终端设备 | |
CN113448985A (zh) | 一种api接口生成方法、调用方法、装置及电子设备 | |
CN109284088B (zh) | 一种信令大数据处理方法及电子设备 | |
CN114064601A (zh) | 存储过程转换方法、装置、设备和存储介质 | |
CN108427580A (zh) | 配置对命名重复的检测方法、存储介质和智能设备 | |
CN112491943A (zh) | 数据请求方法、装置、存储介质和电子设备 | |
CN106909570B (zh) | 一种数据转换方法及装置 | |
CN109785099B (zh) | 一种自动对业务数据信息进行处理的方法及系统 | |
CN111611056A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN113722302B (zh) | 一种数据治理方法与装置 | |
CN110362595A (zh) | 一种sql语句动态解析方法 | |
CN110866217A (zh) | 一种交叉报表的识别方法、装置、存储介质及电子设备 | |
CN112988778A (zh) | 一种处理数据库查询脚本的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |