CN101697170B - 一种动态选择数据库的方法和装置 - Google Patents
一种动态选择数据库的方法和装置 Download PDFInfo
- Publication number
- CN101697170B CN101697170B CN 200910236914 CN200910236914A CN101697170B CN 101697170 B CN101697170 B CN 101697170B CN 200910236914 CN200910236914 CN 200910236914 CN 200910236914 A CN200910236914 A CN 200910236914A CN 101697170 B CN101697170 B CN 101697170B
- Authority
- CN
- China
- Prior art keywords
- database
- judgment
- rule
- document
- indexs
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种动态选择数据库的方法,包括:为每个单据配置判断条件;根据用户针对单据输入的查询条件,判断查询条件是否满足对应于单据的判断条件;根据判断结果选择进行查询的数据库。本发明还提供了一种动态选择数据库的装置。根据本发明的方法和装置对查询条件进行分析,根据分析结果和判断条件来决定到哪个数据库进行查询,这样不仅提高了查询的效率,同时也降低了查询操作对业务系统的影响,从而大大减轻了业务数据库的压力。
Description
技术领域
本发明涉及选择数据库的方法和装置,更具体地涉及根据用户的查询来可配置的动态选择数据库的方法和装置。
背景技术
当前的信息系统已经不再仅仅只能有一个数据库,而是可以有多个数据库。其中一个是业务数据库,为联机事务处理OLTP(On-LineTransaction Processing)服务,主要用于系统日常业务操作使用,比如:制作凭证、制作订单等等;其他的一部分数据库是由业务数据库备份来的查询数据库,为联机分析处理OLAP(On-Line AnalyticalProcessing)服务,主要用于查询数据。当用户进行查询时,可以根据用户的查询条件决定去哪个数据库进行查询操作。这样可以使得查询操作对业务系统的影响大大降低,并且能够平衡各个数据库服务器的负载。
信息系统中经常涉及到数据查询的应用,如根据一定的条件查询所有满足条件的单据等,查询返回的结果和数据量是不确定的。如何根据查询条件进行分析从而判断该去哪个数据库进行查询?用户又如何根据自己的业务需要配置这种判断?这是待解决的问题。
信息系统使用多数据库引擎达到业务数据库和查询数据库的分离,而查询数据库是由业务数据库备份而来的,并且查询数据库和业务数据库会进行关联,使得查询数据库能够按一定的时间间隔(如一天)对业务数据库进行数据同步。这样只能基本上保证查询结果的一致性(无法达到实时性)。如果是进行大数据量的查询,可以假设认为这次查询并不要求过高的精确性,所以在数据同步时间差内查询数据库相对于业务数据库所没有数据可以忽略;如果是进行小数据量的查询,那么可以直接查询业务数据库,结果自然是准确的。因此基于这种假设使得有些查询的结果并不是准确的。
为了解决上面的技术问题,本发明提出了一种可配置的查询时动态选择数据库的方法。支持根据查询条件自动判断选用哪个数据库进行实际查询操作,并且支持判断条件的可配置性。
发明内容
本发明提出了一种动态选择数据库的方法,包括:为每个单据配置判断条件;根据用户针对单据输入的查询条件,判断所述查询条件是否满足对应于所述单据的所述判断条件;根据判断结果选择进行查询的数据库。
其中,配置判断条件的步骤包括:从所述每个单据提供的查询条件中选择一个或多个指标;为所述一个或多个指标设置默认值;以及将所述一个或多个指标配置成一个逻辑表达式作为所述判断条件。
其中,所述默认值是在所述用户输入的查询条件中没有为所述一个或多个指标输入相应查询值的情况下所述一个或多个指标的查询值。
其中,所述判断条件可以保存在文件中,也可以保存在数据库中。
优选地,当所述查询条件满足对应于所述单据的所述判断条件时,使用联机事务处理查询业务数据库,否则,使用联机分析处理查询查询数据库。
本发明还提供了一种动态选择数据库的装置,其特征在于,包括:配置单元,用于为每个单据配置判断条件;判断单元,用于根据用户针对单据输入的查询条件,判断所述查询条件是否满足来自所述配置单元的对应于所述单据的所述判断条件;以及选择单元,用于根据所述判断单元的判断结果选择进行查询的数据库。
其中,所述配置单元包括:指标选择模块,用于从所述每个单据提供的查询条件中选择一个或多个指标;设置模块,用于为所述指标选择模块所选择的所述一个或多个指标设置默认值;以及配置模块,用于将所述一个或多个指标配置成一个逻辑表达式作为所述判断条件。
其中,默认值是在所述用户输入的查询条件中没有为所述一个或多个指标输入相应查询值的情况下所述一个或多个指标的查询值。
其中,所述判断条件可以保存在文件中,也可以保存在数据库中。
其中,在所述选择单元中,当所述查询条件满足对应于所述单据的所述判断条件时,使用联机事务处理查询业务数据库,否则,使用联机分析处理查询查询数据库。
根据本发明的方法和装置对查询条件进行分析,根据分析结果和判断条件来决定到哪个数据库进行查询,这样不仅提高了查询的效率,同时也降低了查询操作对业务系统的影响,从而大大减轻了业务数据库的压力。
同时支持用户根据需要自己配置查询选择数据库的判断条件和相关的指标,这样使得系统进行查询时能够更灵活,可以实时的根据用户的需要修改这个配置。
附图说明
图1示出了根据本发明的动态选择数据库的方法的流程图;
图2示出了根据本发明的实施例的动态选择数据库的方法的流程图;
图3示出了根据本发明的实施例的表单示例的示意图;
图4示出了根据本发明的实施例的判断条件的示意图;
图5示出了根据本发明的实施例的查询条件的示意图;
图6示出了根据本发明的实施例的又一查询条件的示意图;
图7示出了根据本发明的实施例的另一查询条件的示意图;以及
图8示出了根据本发明的动态选择数据库的装置的框图。
具体实施方式
下面将参考附图详细说明根据本发明的动态选择数据库的方法和装置。
如图1所示,根据本发明的动态选择数据库的方法包括:
步骤102,为每个单据配置判断条件;
步骤104,根据用户针对单据输入的查询条件,判断所述查询条件是否满足对应于所述单据的所述判断条件;以及
步骤106,根据判断结果选择进行查询的数据库。
其中,配置判断条件的步骤包括:从所述每个单据提供的查询条件中选择一个或多个指标;为所述一个或多个指标设置默认值;以及将所述一个或多个指标配置成一个逻辑表达式作为所述判断条件。
其中,所述默认值是在所述用户输入的查询条件中没有为所述一个或多个指标输入相应查询值的情况下所述一个或多个指标的查询值。
其中,所述判断条件可以保存在文件中,也可以保存在数据库中。
其中,当所述查询条件满足对应于所述单据的所述判断条件时,使用联机事务处理查询业务数据库,否则,使用联机分析处理查询查询数据库。
图2示出了根据本发明的实施例的动态选择数据库的方法。如图2所示,可配置的查询时动态选择数据库的工作流程包括:
步骤202,配置判断条件
首先要解释三个概念:指标、指标默认值和判断条件。
指标是指对于某个查询条件的一种量化描述。下面用一个例子来解释这个概念。
比如对于“采购订单”来说,它提供的查询条件有很多,如图3所示。
如图3所示,我们认为对查询结果数据量影响大的查询条件只有“所属公司”和“订单日期”两项。因为查询1个公司的采购订单和查询5个公司的采购订单返回的数据量差距是很大的,查询订单日期时间跨度为1年内的采购订单和查询时间跨度为5年内的数据量差距也很大。
为此我们要为“采购订单”设置两个指标,如下表所示:
指标编码 | 指标名称 | 默认值 | 指标描述 | |
1 | corps | 所属公司 | 9999 | 所选公司数目 |
2 | isMultiYear | 订单日期是否跨年 | Y | 订单日期是否跨年 |
一个是针对“所属公司”条件设置的指标“corps”,表示“所选公司数目”;另一个是针对“订单日期”条件设置的指标“isMultiYear”,表示“订单日期是否跨年”。
另外指标是可以有默认值的,所谓的默认值就是指当用户进行查询时忽略了这个条件(即没有对这个条件输入查询值)时指标应该使用的值。
比如对“采购订单”进行查询时,对“所属公司”这个条件并没有输入查询值,那么实际上我们查询出来的采购订单是所有公司的,这样的数据量显然很大。为此我们要为“corps所属公司个数”指标设置默认值为一个最大值(如9999)。
判断条件是指根据业务需要由这些指标组成的一个逻辑表达式。
我们会根据用户的实际查询分析这些查询条件得到查询信息,可以通过查询信息得到各个指标的实际值,然后将这些指标的实际值代入判断条件逻辑表达式,判断其是否满足判断条件。如果满足判断条件那么就会使用OLTP进行查询,否则就会使用OLAP进行查询。所以可以将判断条件理解为衡量查询结果数据量的一个标准,满足这个标准就使用OLTP,否则使用OLAP。
比如“采购订单”在设置了上面的指标之后,就要为它设置判断条件。想以“所属公司个数小于5并且订单日期不能跨年”这个判断条件作为查询“采购订单”时数据量的分水岭,凡是大于该数据量的就应该使用OLAP。配置如图4所示。
做完指标设置、默认值设置和判断条件配置之后,就完成了对“采购订单”的查询信息配置。这个配置信息可以保存在文件中,也可以保存在数据库中。可以对每个单据根据其自身业务需要设置它指标(默认值)和判断条件。
返回图2,步骤204,分析查询条件
做完了步骤202之后,对于信息的预配置就结束了,现在用户就可以进行查询了。
比如用户查询“采购订单”,查询条件如图5所示。查询条件分别是“所属公司等于yl”、“订单编号包含aaa”和“订单日期介于2007-07-31和2009-07-31之间”。通过分析这些查询条件可以得到下面的信息:
“所属公司”个数等于1并且
“订单日期”范围是2年
通过这个信息(对于“订单编号”这个查询条件我们不关注,因为判断条件里面并没有涉及它)我们使用判断条件“所属公司个数小于5并且订单日期不能跨年”对它进行判断,结果是不满足判断条件,因为“订单日期”跨年了。
图6是“采购订单”的另一次查询。
通过查询条件分析得到感兴趣的信息是:“所属公司”个数等于1并且“订单日期”等于2007-07-31。显然这次查询是满足判断条件的。
图7是“采购订单”的另一次查询,用这个例子可以说明指标默认值的作用。如图8所示,通过查询条件分析得到感兴趣的信息是:“订单日期”等于2007-07-31。
在这个查询信息中并没有和“所属公司”查询条件有关的信息,因为用户并没有对这个条件输入查询值。这时候我们就需要使用指标的默认值了,按照我们预置的“所属公司”条件对应的指标“corps”的默认值是9999。那么实际上信息就变成了:“所属公司”个数等于9999并且“订单日期”等于2007-07-31。很明显这次查询不满足判断条件。
返回到图2,步骤206,选择数据库执行查询
根据步骤206得到的结果,即查询是否满足判断条件,就可以选择合适的数据库进行真正的查询操作了。如果满足判断条件,那么认为这次查询的数据量是较小的,查询最终将使用OLTP执行;否则就认为查询的数据量是较大的,那么查询使用OLAP执行。
用户可以根据自己的具体业务需要为每个结点(单据)实时修改指标、指标默认值和判断条件。这样就实现了可配置性,使得查询和信息系统的多数据库配合更灵活。
图8示出了根据本发明的动态选择数据库的装置的框图。如图8所示,根据本发明的动态选择数据库的装置800包括:
配置单元802,用于为每个单据配置判断条件;判断单元804,用于根据用户针对单据输入的查询条件,判断所述查询条件是否满足来自配置单元802的对应于所述单据的所述判断条件;以及选择单元806,用于根据判断单元804的判断结果选择进行查询的数据库。
其中,配置单元802可以包括:指标选择模块8022,用于从每个单据提供的查询条件中选择一个或多个指标;设置模块8024,用于为指标选择模块8022所选择的一个或多个指标设置默认值;以及配置模块8026,用于将一个或多个指标配置成一个逻辑表达式作为所述判断条件。
其中,默认值是在所述用户输入的查询条件中没有为所述一个或多个指标输入相应查询值的情况下所述一个或多个指标的查询值。
其中,判断条件可以保存在文件中,也可以保存在数据库中。
其中,在选择单元806中,当所述查询条件满足对应于所述单据的所述判断条件时,使用联机事务处理查询业务数据库,否则,使用联机分析处理查询查询数据库。
根据本发明的方法和装置将查询条件进行分析,根据分析结果和判断条件来决定到哪个数据库进行查询,这样使得查询的效率有了一定的提高,同时也将业务系统受查询操作的影响降低了很多,从而大大减轻了业务数据库的压力。同时支持用户根据需要自己配置查询选择数据库的判断条件和相关的指标,这样使得系统进行查询时能够更灵活,可以实时的根据用户的需要修改这个配置。总的来说也提升了信息系统的灵活性、健壮性和稳定性,均衡了各个数据库系统的负载。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种动态选择数据库的方法,其特征在于,包括:
为每个单据配置判断条件;
根据用户针对单据输入的查询条件,判断所述查询条件是否满足对应于所述单据的所述判断条件;以及
根据判断结果选择进行查询的数据库,具体为,满足所述判断条件时,选择联机事务处理的业务数据库,不满足所述判断条件时,选择联机分析处理的查询数据库。
2.根据权利要求1所述的方法,其特征在于,所述配置判断条件的步骤包括:
从所述每个单据提供的查询条件中选择一个或多个指标;
为所述一个或多个指标设置默认值;以及
将所述一个或多个指标配置成一个逻辑表达式作为所述判断条件。
3.根据权利要求2所述的方法,其特征在于,所述默认值是在所述用户输入的查询条件中没有为所述一个或多个指标输入相应查询值的情况下所述一个或多个指标的查询值。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述判断条件保存在文件中或保存在数据库中。
5.一种动态选择数据库的装置,其特征在于,包括:
配置单元,用于为每个单据配置判断条件;
判断单元,用于根据用户针对单据输入的查询条件,判断所述查询条件是否满足来自所述配置单元的对应于所述单据的所述判断条件;以及
选择单元,用于根据所述判断单元的判断结果选择进行查询的数据库,具体为,满足所述判断条件时,选择联机事务处理的业务数据库,不满足所述判断条件时,选择联机分析处理的查询数据库。
6.根据权利要求5所述的装置,其特征在于,所述配置单元包括:
指标选择模块,用于从所述每个单据提供的查询条件中选择一个或多个指标;
设置模块,用于为所述指标选择模块所选择的所述一个或多个指标设置默认值;以及
配置模块,用于将所述一个或多个指标配置成一个逻辑表达式作为所述判断条件。
7.根据权利要求6所述的装置,其特征在于,所述默认值是在所述用户输入的查询条件中没有为所述一个或多个指标输入相应查询值的情况下所述一个或多个指标的查询值。
8.根据权利要求5至7中任一项所述的装置,其特征在于,所述判断条件保存在文件中或保存在数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910236914 CN101697170B (zh) | 2009-10-27 | 2009-10-27 | 一种动态选择数据库的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910236914 CN101697170B (zh) | 2009-10-27 | 2009-10-27 | 一种动态选择数据库的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101697170A CN101697170A (zh) | 2010-04-21 |
CN101697170B true CN101697170B (zh) | 2012-12-05 |
Family
ID=42142275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910236914 Expired - Fee Related CN101697170B (zh) | 2009-10-27 | 2009-10-27 | 一种动态选择数据库的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101697170B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102135974A (zh) * | 2010-08-06 | 2011-07-27 | 华为软件技术有限公司 | 一种数据源的选择方法及系统 |
US9218566B2 (en) | 2010-08-20 | 2015-12-22 | International Business Machines Corporation | Detecting disallowed combinations of data within a processing element |
CN104574030A (zh) * | 2013-10-14 | 2015-04-29 | 航天信息软件技术有限公司 | 一种erp会计平台中生成凭证的方法 |
CN106776893A (zh) * | 2016-11-30 | 2017-05-31 | 浪潮通信信息系统有限公司 | 一种数据输出方法及装置 |
CN110263105B (zh) | 2019-05-21 | 2021-09-10 | 北京百度网讯科技有限公司 | 查询处理方法、查询处理系统、服务器和计算机可读介质 |
-
2009
- 2009-10-27 CN CN 200910236914 patent/CN101697170B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101697170A (zh) | 2010-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7509301B2 (en) | Systems and methods for data processing | |
CN101697170B (zh) | 一种动态选择数据库的方法和装置 | |
CN103049521B (zh) | 可实现多属性复合条件查询的虚拟表索引系统及方法 | |
CN101452487B (zh) | 一种数据加载的方法、系统及数据加载装置 | |
CN109783512A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN106326429A (zh) | 一种基于solr的Hbase秒级查询方案 | |
US20130085987A1 (en) | Downloading method and device | |
CN106294374A (zh) | 小文件合并的方法和数据查询系统 | |
CN110928903B (zh) | 数据提取方法及装置、设备和存储介质 | |
US20040267553A1 (en) | Evaluating storage options | |
CN102306205A (zh) | 一种事务分配方法和装置 | |
CN106844320B (zh) | 一种财务报表整合方法和设备 | |
KR20100060734A (ko) | 키워드 시맨틱 네트워크 구성을 통한 특허정보 시각화 시스템 및 그 방법 | |
CN105653697A (zh) | 一种推荐词检索方法及系统 | |
CN110598107A (zh) | 查询系统的管理方法和计算机存储介质 | |
CN113159618A (zh) | 一种技术视角分离的规则引擎设计方法和装置 | |
CN101645935B (zh) | 基于QoS指标和Web服务输出参数的Web服务组合方法和装置 | |
CN102521713A (zh) | 数据处理装置和数据处理方法 | |
CN106502786A (zh) | 一种中断分配方法及装置 | |
CN110689386B (zh) | 一种电子票据开具方法及系统 | |
CN115936017B (zh) | 一种支持界面多语言和数据多语言的主数据管理方法 | |
US7613682B2 (en) | Statistics collection using path-identifiers for relational databases | |
CN104391986A (zh) | 业务重分类装置和方法 | |
CN107291938A (zh) | 订单查询系统及方法 | |
CN101650734A (zh) | 一种表单过滤方法、装置、表单处理系统及信息处理设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee |
Owner name: YONYOU NETWORK TECHNOLOGY CO., LTD. Free format text: FORMER NAME: UFIDA SOFTWARE CO., LTD. |
|
CP01 | Change in the name or title of a patent holder |
Address after: 100094 Haidian District North Road, Beijing, No. 68 Patentee after: Yonyou Network Technology Co., Ltd. Address before: 100094 Haidian District North Road, Beijing, No. 68 Patentee before: UFIDA Software Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121205 Termination date: 20181027 |
|
CF01 | Termination of patent right due to non-payment of annual fee |