CN103177035A - 一种在数据库中查询数据的装置及方法 - Google Patents
一种在数据库中查询数据的装置及方法 Download PDFInfo
- Publication number
- CN103177035A CN103177035A CN2011104406627A CN201110440662A CN103177035A CN 103177035 A CN103177035 A CN 103177035A CN 2011104406627 A CN2011104406627 A CN 2011104406627A CN 201110440662 A CN201110440662 A CN 201110440662A CN 103177035 A CN103177035 A CN 103177035A
- Authority
- CN
- China
- Prior art keywords
- task
- database
- data
- data query
- query
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种在数据库中查询数据的方法,包括:根据优先级映射表对准备在所述数据库中查询数据的任务进行分级;将同一级别的任务输入到该级对应的任务队列中;按照从高级到低级的顺序串行输出各级对应的任务队列中的任务,其中对同一个任务队列中的任务按照先进先出的顺序输出。通过使用本发明可以实现对数据库高效稳定的查询。
Description
技术领域
本发明涉及数据库技术,特别涉及在企业级数据仓库上进行查询的装置和方法。
背景技术
现有的企业级数据仓库系统中的数据量往往极为巨大。为保证系统的稳定性,其一般不对用户直接开放对数据的查询,而其应用多为经过加工后的固定报表和多维分析,用户只可以查看和下载经过汇总后的结果数据。即使有些企业级数据仓库系统有少量的查询功能,但也是只能查询数据量很少的数据,且查询条件简单。随着业务的发展,用户需要更加个性化的查询功能以及更加细粒度的数据以满足越来越深入的分析需求。
现有技术中已经提供了一些涉及实现数据仓库系统的设备和方法,例如,申请号为200580047505.2的中国专利发明公开了一种用于数据仓储的方法,包括:从一个或更多个数据源提取数据集合以存储在多个数据仓库的一个或更多个中;将第一数据集合的相应副本存储在包括多个数据仓库中的两个或更多个数据仓库的第一子集的每个数据仓库中;以及在第一数据集合的每个相应副本被存储到第一子集的对应数据仓库之前允许由数据仓库的第一子集中的一个数据仓库对依赖于第一数据集合的查询进行评估。
再如申请号为20110081485.8的中国发明专利申请公开了一种提高数据仓库查询性能的方法,首先将数据仓库中的数据按照所存储的逻辑关系分为事实表和维度表,然后根据维度表数据对事实表中的数据进行分组汇总,将每个分组生成为一个视图,将生成的所有视图添加到候选视图集合中;然后使用基于信息素扩散的双种蚁群算法,模拟自然界中不同种群的蚂蚁群觅食的过程,在候选视图集合中根据查询频率来寻找数据之间的内在联系,选择生成物化视图,在有限的存储空间内将需要进行表间连接或聚集的查询操作的结果进行预先计算和保存,从而提高数据仓库的查询性能。
但是,如何基于海量数据提供个性化的查询,却仍然是一个迫切需要解决的问题。
发明内容
本发明公开了一种在数据库中查询数据的方法,包括:对准备在所述数据库中查询数据的任务进行分级;将同一级别的任务输入到该级对应的任务队列中;按照从高级到低级的顺序串行输出各级对应的任务队列中的任务,其中对同一个任务队列中的任务按照先进先出的顺序输出。
根据本发明的一个方面的在数据库中查询数据的方法还包括将所述查询数据的任务的指令从数据库不可识别语言转换为数据库可识别语言并执行该指令。
根据本发明的一个方面的在数据库中查询数据的方法还包括对数据库中的数据进行预处理,包括:以多个进程并行地获取所述数据库中的目标数据。
根据本发明的一个方面的在数据库中查询数据的方法,其中所述预处理还包括采用多维集群表技术优化数据存取性能。
根据本发明的一个方面的在数据库中查询数据的方法,其中所述预处理还包括采用复合索引模式加快数据查找速度。
本发明公开了一种在数据库中查询数据的装置,包括:分级装置,用于对准备在所述数据库中查询数据的任务进行分级;队列输入装置,用于将同一级别的任务输入到该级对应的任务队列中;队列输出装置,用于按照从高级到低级的顺序串行输出各级对应的任务队列中的任务,其中对同一个任务队列中的任务按照先进先出的顺序输出。
根据本发明的一个方面的在数据库中查询数据的装置还包括将所述查询数据的任务的指令从数据库不可识别语言转换为数据库可识别语言并执行该指令的解释与执行装置。
根据本发明的一个方面的在数据库中查询数据的装置还包括对数据库中的数据进行预处理的预处理装置,其包括以多个进程并行地获取所述数据库中的目标数据的获取装置。
根据本发明的一个方面的在数据库中查询数据的装置,其中所述预处理装置还采用多维集群表技术优化数据存取性能。
根据本发明的一个方面的在数据库中查询数据的装置,其中所述预处理装置还采用复合索引模式加快数据查找速度。
附图说明
通过阅读以下详细说明,并参考附图,可以对本发明有一个更全面的了解。附图中:
图1示出了根据本发明的一个实施例的查询系统的模块架构图;
图2示出了根据本发明的一个实施例的查询数据的基本流程。
具体实施方式
为了实现对大容量数据库,例如企业级数据仓库中的数据的高效查询,首先应该认识到的是不同的查询任务应该具有不同的优先级,所以应当区别化地处理不同的任务。有些任务必需得到立即的处理,有些任务则可以暂缓处理,待优先级高的任务处理完之后,或者系统空闲时再进行处理。这里,查询任务(简称任务)是指查询的请求。
任务处理的第一步因而是对查询任务进行分级(图2中步骤101)。对任务的分级可以按照要求遵循多项准则,例如考虑用户类别、查询对象属性、等待时间、查询来源位置等等,但最终要形成统一的系统可操作的一维分级规则,即明确每一任务的优先级。按照本发明的一个实施例,可以使用优先级映射表对任务进行归类:创建一个映射表,表中有多个项目,每一项目代表一类任务,具有一个特定的优先级。符合该项目的特征的任务被归入表中的该项目之下。例如,映射表中具有“内部查询”、“内网查询”、“外网查询”。所有的任务均被归在这3类下。“内部查询”的任务的优先级高于“内网查询”的任务,而“内网查询”的任务的优先级高于“外网查询”的任务。同样,也可以按照查询对象的属性来对任务进行分级,例如映射表中包括的项也可以是“查询时间敏感数据”、“查询非时间敏感数据”、以及“其它查询”。“查询时间敏感数据”的任务的优先级高于“查询非时间敏感数据”的任务,而“查询非时间敏感数据”的任务的优先级高于“查询其它数据”的任务。此外,在很多情况下对任务的分级是多项准则的综合考虑,比如可以将映射表的第一项归为“内部查询时间敏感数据”、第二项为“内网查询时间敏感数据,或者,内部查询非时间敏感数据”、第三项为“其它查询”。而且实际操作中分级时需要考虑的准则可能远远多于两项。
在对任务分级时,任务的等待时间可作为一项参考因素。比如可以设定一个计数器,对每一任务等待处理的时间进行计数。如果在特定的时间之后还没有得到处理则提升其优先级,这样可以尽可能保证所有的查询任务可以在合理的等待时间之后都得到处理。
在图2所示的步骤102中,优先级映射表中的各项下的任务被输入到一个相应的队列中,每一项对应一个任务队列。例如假设映射表有3项,分别是“查询时间敏感数据”、“查询非时间敏感数据”、以及“其它查询”。则查询时间敏感数据的查询任务被输入最优先任务队列,查询非时间敏感数据的查询任务被输入到次优先任务队列,而其它查询任务被输入到非优先任务队列。
在步骤103中,系统此时已经了解到各个任务的优先级别,即按照从高优先级队列到低优先级队列的顺序执行查询任务,假设在某一时刻,一共有5个任务存在任务队列中,分别是任务A、任务B、任务C、任务D和任务E。其中任务D在最优先任务队列中,用户B在次优先任务队列中,用户A、C、E在非优先任务队列中。那么,在系统空闲时,首先执行任务D,随后执行任务B,最后执行任务A、C、E。在执行A、C、E的任务时,系统对执行顺序的判断不再是基于队列的等级的,因为它们是在同一个任务队列中。此时再次进行判断的标准可以是,例如,先进先出的规则。即首先进入队列的任务优先得到执行,最后进入队列的任务最后才得到执行。如果任务A、C、E的入队时间(可能也就是查询请求的发起时间)就是A、C、E,则先执行任务A,再执行任务C,最后执行任务E。在执行任务的同时,又会有新的任务进入到队列中。对此可以采用动态执行的方式,例如只要在高优先级队列中有任务就始终执行其中的任务,直至高优先级队列中没有任务才转至执行低优先级任务。或者也可以使用静态执行的方式,即在特定时刻记录下所有队列中的任务,在执行完所有已经记录的任务之后再重复这一过程。
对于一些大型的数据库,可能在同一时间有多个查询请求。对于某些数据库在某些特定时间段更是如此。而一些数据库需要消耗很大的资源来满足查询请求。例如对于DB2数据库而言,有时甚至是占用100%的计算能力来满足查询,这将会对数据库其它任务的执行造成不利的影响,例如造成性能下降、反应速度降低甚至当机。因此,同时实施多个查询的情况应该尽量得到避免。按照上面的方法,不论是先后还是同时发起的查询任务都会被存储到队列中,然后按照顺序串行地执行,有效地避免了并行查询的问题。而且数据库可以按照自身的实时的处理能力确定处理查询的速度,例如在资源充裕时可以连续处理,在资源不足时可以间歇处理,或者在一段时间内不处理查询任务而将资源留给处理其它的任务。
通过上面的对任务的分级处理可以提升数据库的性能。如果辅以其它手段,这种提升可以进一步被加强。
图1是根据本发明的一个实施例的查询系统的模块架构图。图中“队列分级管理模块”实现上文所述的分级处理方法。但这只是针对查询的处理。此外,对于数据库中的内容的整理(或者称“预处理”)对于实现对数据库的高效查询也很重要。首先,并不是所有的数据都向用户开放,所以预处理的第一步可以是从数据库中抽取用户可能需要的目标数据;然后,考虑到这些数据的格式可能不统一,并且有些数据被数据库管理者认为是不适宜向用户开放的,则分别通过数据转换的程序和数据清洗的程序来处理这些数据,从而保证最后得到的是最优化的数据。上述抽取、转换和清洗可以通过多个进程并发地执行,进程的数目由系统控制并且可调。这里还可以采用多维集群表技术优化数据存取性能,采用复合索引模式加快数据查找速度。该方法是对于后续数据查询性能影响很大的一个关键技术。
在采用了上述两种技术对查询入口端和数据库端分别进行了处理之后,可能还需要对请求进行转换才能实现用户对数据库的高效查询。例如,在查询入口端,查询可以是在查询终端设备上以选择框的方式输入查询条件而实现的。而数据库中的数据,包括在经历了预处理之后的数据的集合,仍可能不能由这种方式输入的查询请求所查询。根据本发明的一个实施例,通过查询条件优化解释与执行模块来负责将用户输入的查询条件翻译为系统可识别的语言,同时对语句进行优化处理使其以最优的效率来执行。解释与执行可以由JAVA程序来实现。
虽然附图和前面的详述中介绍了本发明的优选实施方案和装置,但是应当理解的是,本发明并不局限于具体公布的实施方案,在不偏离权利要求规定的范围的前提下,仍然可以有多种的修改和变形。
Claims (10)
1.一种在数据库中查询数据的方法,包括:
根据优先级映射表对准备在所述数据库中查询数据的任务进行分级;
将同一级别的任务输入到该级对应的任务队列中;以及
按照从高级到低级的顺序串行输出各级对应的任务队列中的任务,其中对同一个任务队列中的任务按照先进先出的顺序输出。
2.如权利要求1所述的在数据库中查询数据的方法还包括将所述查询数据的任务的指令从数据库不可识别语言转换为数据库可识别语言并执行该指令。
3.如权利要求1或2所述的在数据库中查询数据的方法还包括对数据库中的数据进行预处理,包括:以多个进程并行地获取所述数据库中的目标数据。
4.如权利要求3所述的在数据库中查询数据的方法,其中所述预处理还包括采用多维集群表技术优化数据存取性能。
5.如权利要求3所述的在数据库中查询数据的方法,其中所述预处理还包括采用复合索引模式加快数据查找速度。
6.一种在数据库中查询数据的装置,包括:
分级装置,用于根据优先级映射表对准备在所述数据库中查询数据的任务进行分级;
队列输入装置,用于将同一级别的任务输入到该级对应的任务队列中;以及
队列输出装置,用于按照从高级到低级的顺序串行输出各级对应的任务队列中的任务,其中对同一个任务队列中的任务按照先进先出的顺序输出。
7.如权利要求6所述的在数据库中查询数据的装置还包括将所述查询数据的任务的指令从数据库不可识别语言转换为数据库可识别语言并执行该指令的解释与执行装置。
8.如权利要求6或7所述的在数据库中查询数据的装置还包括对数据库中的数据进行预处理的预处理装置,其包括以多个进程并行地获取所述数据库中的目标数据的获取装置。
9.如权利要求8所述的在数据库中查询数据的装置,其中所述预处理装置还采用多维集群表技术优化数据存取性能。
10.如权利要求8所述的在数据库中查询数据的装置,其中所述预处理装置还采用复合索引模式加快数据查找速度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104406627A CN103177035A (zh) | 2011-12-26 | 2011-12-26 | 一种在数据库中查询数据的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104406627A CN103177035A (zh) | 2011-12-26 | 2011-12-26 | 一种在数据库中查询数据的装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103177035A true CN103177035A (zh) | 2013-06-26 |
Family
ID=48636916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104406627A Pending CN103177035A (zh) | 2011-12-26 | 2011-12-26 | 一种在数据库中查询数据的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103177035A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104166738A (zh) * | 2014-09-04 | 2014-11-26 | 北京国双科技有限公司 | 数据库查询处理的方法及装置 |
CN104346215A (zh) * | 2013-08-07 | 2015-02-11 | 中兴通讯股份有限公司 | 一种任务调度服务系统及方法 |
CN104462420A (zh) * | 2014-12-12 | 2015-03-25 | 北京国双科技有限公司 | 数据库的查询任务的执行方法和装置 |
CN106294472A (zh) * | 2015-06-03 | 2017-01-04 | 中国移动通信集团广东有限公司 | 一种Hadoop数据库HBase的查询方法及装置 |
CN108897767A (zh) * | 2018-05-24 | 2018-11-27 | 努比亚技术有限公司 | 一种数据查询方法及系统 |
CN108984281A (zh) * | 2018-05-30 | 2018-12-11 | 深圳市买买提信息科技有限公司 | 一种任务处理方法及服务器 |
CN109388658A (zh) * | 2018-09-21 | 2019-02-26 | 麒麟合盛网络技术股份有限公司 | 一种数据确定方法和装置 |
CN110489447A (zh) * | 2019-07-16 | 2019-11-22 | 招联消费金融有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN110515990A (zh) * | 2019-07-23 | 2019-11-29 | 华信永道(北京)科技股份有限公司 | 数据查询展示方法及查询展示系统 |
CN110879818A (zh) * | 2019-10-12 | 2020-03-13 | 北京字节跳动网络技术有限公司 | 一种获取数据的方法、装置、介质和电子设备 |
CN113111083A (zh) * | 2021-03-31 | 2021-07-13 | 北京沃东天骏信息技术有限公司 | 数据查询的方法、装置、设备、存储介质和程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252506A (zh) * | 2007-12-29 | 2008-08-27 | 中国建设银行股份有限公司 | 一种数据传输系统 |
CN101938396A (zh) * | 2009-06-30 | 2011-01-05 | 华为技术有限公司 | 数据流控制方法及装置 |
CA2679494A1 (en) * | 2009-09-17 | 2011-03-17 | Ibm Canada Limited - Ibm Canada Limitee | Consolidating related task data in process management solutions |
CN102096599A (zh) * | 2009-12-14 | 2011-06-15 | 中国移动通信集团公司 | 一种多队列任务调度方法及相关系统和设备 |
-
2011
- 2011-12-26 CN CN2011104406627A patent/CN103177035A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252506A (zh) * | 2007-12-29 | 2008-08-27 | 中国建设银行股份有限公司 | 一种数据传输系统 |
CN101938396A (zh) * | 2009-06-30 | 2011-01-05 | 华为技术有限公司 | 数据流控制方法及装置 |
CA2679494A1 (en) * | 2009-09-17 | 2011-03-17 | Ibm Canada Limited - Ibm Canada Limitee | Consolidating related task data in process management solutions |
CN102096599A (zh) * | 2009-12-14 | 2011-06-15 | 中国移动通信集团公司 | 一种多队列任务调度方法及相关系统和设备 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346215A (zh) * | 2013-08-07 | 2015-02-11 | 中兴通讯股份有限公司 | 一种任务调度服务系统及方法 |
CN104166738A (zh) * | 2014-09-04 | 2014-11-26 | 北京国双科技有限公司 | 数据库查询处理的方法及装置 |
CN104462420A (zh) * | 2014-12-12 | 2015-03-25 | 北京国双科技有限公司 | 数据库的查询任务的执行方法和装置 |
CN104462420B (zh) * | 2014-12-12 | 2018-09-18 | 北京国双科技有限公司 | 数据库的查询任务的执行方法和装置 |
CN106294472B (zh) * | 2015-06-03 | 2019-08-02 | 中国移动通信集团广东有限公司 | 一种Hadoop数据库HBase的查询方法及装置 |
CN106294472A (zh) * | 2015-06-03 | 2017-01-04 | 中国移动通信集团广东有限公司 | 一种Hadoop数据库HBase的查询方法及装置 |
CN108897767A (zh) * | 2018-05-24 | 2018-11-27 | 努比亚技术有限公司 | 一种数据查询方法及系统 |
CN108984281A (zh) * | 2018-05-30 | 2018-12-11 | 深圳市买买提信息科技有限公司 | 一种任务处理方法及服务器 |
CN109388658A (zh) * | 2018-09-21 | 2019-02-26 | 麒麟合盛网络技术股份有限公司 | 一种数据确定方法和装置 |
CN110489447A (zh) * | 2019-07-16 | 2019-11-22 | 招联消费金融有限公司 | 数据查询方法、装置、计算机设备和存储介质 |
CN110515990A (zh) * | 2019-07-23 | 2019-11-29 | 华信永道(北京)科技股份有限公司 | 数据查询展示方法及查询展示系统 |
CN110515990B (zh) * | 2019-07-23 | 2021-10-01 | 华信永道(北京)科技股份有限公司 | 数据查询展示方法及查询展示系统 |
CN110879818A (zh) * | 2019-10-12 | 2020-03-13 | 北京字节跳动网络技术有限公司 | 一种获取数据的方法、装置、介质和电子设备 |
CN113111083A (zh) * | 2021-03-31 | 2021-07-13 | 北京沃东天骏信息技术有限公司 | 数据查询的方法、装置、设备、存储介质和程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103177035A (zh) | 一种在数据库中查询数据的装置及方法 | |
CN105045820B (zh) | 一种处理海量级数据的视频图像信息的方法及数据库系统 | |
CN106168965B (zh) | 知识图谱构建系统 | |
Verma et al. | Big data management processing with Hadoop MapReduce and spark technology: A comparison | |
Tao et al. | Minimal mapreduce algorithms | |
CN103345514B (zh) | 大数据环境下的流式数据处理方法 | |
CN109656963B (zh) | 元数据获取方法、装置、设备及计算机可读存储介质 | |
CN109815283B (zh) | 一种异构数据源可视化查询方法 | |
CN103631922B (zh) | 基于Hadoop集群的大规模Web信息提取方法及系统 | |
CN103559300B (zh) | 数据的查询方法和查询装置 | |
US9992269B1 (en) | Distributed complex event processing | |
CN105279276A (zh) | 一种数据库索引优化系统 | |
CN103678609A (zh) | 一种基于分布式关系-对象映射处理的大数据查询的方法 | |
CN108108466A (zh) | 一种分布式系统日志查询分析方法及装置 | |
CN104331421A (zh) | 一种大数据的高效处理方法及系统 | |
CN104111958A (zh) | 一种数据查询方法及装置 | |
CN104657446A (zh) | 分表联合统计查询方法、装置和系统 | |
Nguyen et al. | Design of a platform for collecting and analyzing agricultural big data | |
CN108280082A (zh) | 一种统计数据的即席查询方法及系统 | |
CN103886508A (zh) | 海量农田数据的监控方法和系统 | |
Al-Khasawneh et al. | MapReduce a comprehensive review | |
CN108009270A (zh) | 一种基于分布式内存计算的文本检索方法 | |
CN108287889B (zh) | 一种基于弹性表模型的多源异构数据存储方法和系统 | |
CN114756629B (zh) | 基于sql的多源异构数据交互分析引擎及方法 | |
CN106909624B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130626 |
|
RJ01 | Rejection of invention patent application after publication |