CN105637506B - 用于优化数据存储上的查询执行的方法 - Google Patents
用于优化数据存储上的查询执行的方法 Download PDFInfo
- Publication number
- CN105637506B CN105637506B CN201480054764.7A CN201480054764A CN105637506B CN 105637506 B CN105637506 B CN 105637506B CN 201480054764 A CN201480054764 A CN 201480054764A CN 105637506 B CN105637506 B CN 105637506B
- Authority
- CN
- China
- Prior art keywords
- queries
- query
- grouping
- data store
- lists
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012216 screening Methods 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 23
- 238000004891 communication Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000013500 data storage Methods 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 23
- 230000004044 response Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 208000022120 Jeavons syndrome Diseases 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 101100521334 Mus musculus Prom1 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/2453—Query optimisation
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/242—Query formulation
- G06F16/2433—Query languages
- G06F16/244—Grouping and aggregation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施例涉及大数据。具体而言,本发明涉及一种优化数据存储上的查询执行的方法和服务器。通过将要求来自所述数据存储的同一部分数据的一个或多个查询分成一个或多个组优化本发明中的查询执行。将所述一个或多个查询分成所述一个或多个组从一个或多个元数据中实现,所述一个或多个元数据包含在用户指定的一个或多个查询中,所述用户希望基于所述一个或多个元数据检索结果。执行划分在所述一个或多个分组下的所述一个或多个查询仅涉及所述数据存储的一次扫描。通过这种方式,以最小延迟返回每个查询所需的来自所述数据存储的结果。
Description
技术领域
本发明涉及计算机领域中的数据库技术。具体而言,本发明涉及一种用于优化数据存储尤其是大数据存储上的查询执行的方法。
背景技术
通常,大数据包括保存在大数据存储(称为数据存储)中的大型复杂数据的集合。大型复杂数据以数据块的形式存储,通常会对这些数据块进行索引、分类和压缩。数据存储提供高效的工具用于浏览数据存储中的数据以响应用户指定的一个或多个查询。高效工具的一个示例是联机分析处理(OLAP)工具,其处理用户请求的基于OLAP的查询。该工具有助于访问数据存储中的数据,通常涉及从数据块中读取并解压数据,通常称为在数据存储上进行扫描。通常,在数据存储上进行扫描要求大量的磁盘操作、网络输入/输出(I/O)操作和中央处理器(CPU)操作。此外,数据存储的一个众所周知的问题在于它们往往极其庞大,导致了严重的存储和性能问题。因此,数据存储的可扩展架构在大数据环境中至关重要。因此,以数据存储上最少的扫描操作和最短的交互响应时间处理伴随着处理用户指定的一个或多个查询而产生的大量数据非常困难。
通常,数据存储上的扫描操作以两种不同的方式执行来提供响应于用户执行的一个或多个查询的结果。第一种方式是完全扫描,第二种方式是基于筛选的扫描。图1示出了描述现有技术的执行完全扫描的方法的示例性方框图。该示例性方框图包括搜索引擎,其接收来自用户的一个或多个查询并在数据存储上执行接收到的一个或多个查询。完全扫描包括访问所有数据块(数据块1、数据块2......数据块n)并为一个或多个查询(查询1、查询2......查询n)中的每个查询从数据块中读取记录,这耗费了大量的时间去检索与一个或多个用户的查询有关的准确结果。
图2示出了描述执行基于筛选的扫描的方法的另一示例性方框图。一个或多个查询包括用户指定的一个或多个筛选值或维度或索引值。例如,指定查询1为:
Select{[Student]}ON COLUMNS
where([years].Student in{2003})
查询1的筛选值是“2003”,即查询1请求提取2003年以来的学生记录。类似地,如图2所示,查询2具有筛选值“2003,2006”,即提取从2003年、2004年......到2006年的学生。查询3的筛选值为空值,并且查询n的筛选值为90,即提取分数为90的学生。基于筛选的扫描涉及基于用户在一个或多个查询中指定的一个或多个筛选值或维度或索引值扫描数据存储。也就是说,分别基于筛选值“2003”、“2003,2006”等扫描数据存储以分别处理查询1、查询2等。确切地说,仅基于筛选值扫描数据存储的所需块。因此,满足一个或多个查询的筛选值的记录从数据存储中提取出来。
然而,在上述的现有扫描方法中,扫描操作的两种方式均涉及数据存储上的多次扫描以检索与用户指定的一个或多个查询有关的准确结果,因为该一个或多个查询十分复杂并且性质特殊。即,以一种特殊的方式,一个查询的答复立即设置了对第二查询的需求,而该第二查询的答复提出来另一个查询,等等。因此,高效的查询处理是应对通常涉及的大量数据并确保在数据存储上的扫描次数最少时的交互响应时间的关键需求。并且,在现有方法中,即使一个或多个并发查询要求从数据块中检索同一部分数据,也需要进行多次扫描。例如,如果查询1要求数据块中的2003年以来的学生,查询2也要求2003年以来的学生,那么现有方法涉及数据存储上的多次扫描,即数据存储总共被扫描两次以分别为查询1和查询2检索2003年以来的学生的记录。这意味着,即使并发查询要求来自数据存储的同一部分数据,也执行了多次扫描,这耗时又复杂。又例如,考虑查询1要求2003年的学生,查询2要求2006年的学生。现有方法分别为查询1和查询2执行扫描,尽管查询1(2003)和查询2(2006)的筛选值的类别相同,即都描述了“年”这个类别的筛选值。由于数据存储中资源的约束,因此执行多次扫描增加了查询延迟。
按照惯例,实现了减少多次扫描的方法。具体而言,引入了缓存技术来避免为处理要求同一部分数据的一个或多个查询而多次提取相同的数据块。图3示出了减少数据存储上的多次扫描的缓存技术。较其他数据块具有优先权的数据块被缓存。因此,使用缓存中的数据块处理一个或多个查询以减少整个数据存储上的多次扫描,从而也减少时间。然而,因为并行进入的查询要求涉及多个不同的数据块,所以基于缓存的扫描涉及频繁刷新缓存。这转而需要当前查询等待,直到前一查询释放保存在缓存中的数据块,因为正在扫描过程中的前一查询控制了所有数据块。
因此,有必要减少为处理要求同一部分数据的一个或多个查询和子查询而在数据存储上进行的多次扫描,从而增加或优化数据存储上的查询执行。
发明内容
通过本发明的技术实现了额外的特征和优点。本发明的其他实施例和方面在本文中进行了详细的描述,它们被视为所要求的发明的一部分。
本发明涉及一种优化数据存储上的查询执行的方法。所述方法包括接收模块接收多个查询,所述查询包括来自一个或多个客户机的一个或多个元数据,其中所述接收模块配置在通信式地连接到所述数据存储的服务器中。随后,分组模块基于包含在所述多个查询的每个查询中的所述一个或多个元数据将从所述接收模块接收的所述多个查询的一个或多个查询划分到一个或多个分组列表。接着,执行模块执行所述一个或多个分组列表的每个分组列表以检索响应于划分到所述一个或多个分组列表中的所述多个查询的所述一个或多个查询的结果,所述一个或多个分组列表包括所述数据存储上的所述多个查询的所述一个或多个查询,所述执行所述一个或多个分组列表的每个分组列表包括为划分到所述一个或多个分组列表的每个分组列表中的所述一个或多个查询在所述数据存储上进行一次扫描。
用于优化数据存储上的查询执行的服务器也作为本发明的实施例公开。所述服务器通信式地连接到所述数据存储,并包括接收模块、分组模块和执行模块。所述接收模块接收多个查询,所述查询包括来自一个或多个客户机的一个或多个元数据。所述分组模块基于包含在所述多个查询的每个查询中的所述一个或多个元数据将从所述接收模块接收的所述多个查询的一个或多个查询划分到一个或多个分组列表。所述执行模块执行所述一个或多个分组列表的每个分组列表以检索响应于划分到所述一个或多个分组列表中的所述多个查询的所述一个或多个查询的结果,所述一个或多个分组列表包括所述数据存储上的所述多个查询的所述一个或多个查询,所述执行所述一个或多个分组列表的每个分组列表包括为划分到所述一个或多个分组列表的每个分组列表中的所述一个或多个查询在所述数据存储上进行一次扫描。
本发明涉及一种非瞬时计算机可读介质,其包括存储在其上的操作,当至少一个处理单元处理所述操作时,导致系统通过接收模块执行接收多个查询的动作,所述多个查询包括来自一个或多个客户机的一个或多个元数据,其中所述接收模块配置在通信式地连接到所述数据存储的服务器中。分组模块基于包含在所述多个查询的每个查询中的所述一个或多个元数据将从所述接收模块接收的所述多个查询的一个或多个查询划分到一个或多个分组列表。接着,执行模块执行所述一个或多个分组列表的每个分组列表以检索响应于划分到所述一个或多个分组列表中的所述多个查询的所述一个或多个查询的结果,所述一个或多个分组列表包括所述数据存储上的所述多个查询的所述一个或多个查询,所述执行包括所述多个查询的所述一个或多个查询的所述一个或多个分组列表的每个分组列表包括为划分到所述一个或多个分组列表的每个分组列表中的所述一个或多个查询在所述数据存储上进行一次扫描。
用于优化数据存储上的查询执行的计算机程序也公开为本发明的一项实施例。所述计算机程序包括用于通过接收模块接收多个查询的代码段,所述多个查询包括来自一个或多个客户机的一个或多个元数据;用于通过分组模块将从所述接收模块接收的所述多个查询的一个或多个查询划分到一个或多个分组列表的代码段,所述分组基于包含在所述多个查询的每个查询中的所述一个或多个元数据执行;以及用于通过执行模块执行所述一个或多个分组列表的每个分组列表以检索响应于划分到所述一个或多个分组列表中的所述多个查询的所述一个或多个查询的查询结果的代码段,所述一个或多个分组列表包括所述数据存储上的所述多个查询的所述一个或多个查询,所述执行所述一个或多个分组列表的每个分组列表包括为划分到所述一个或多个分组列表的每个分组列表中的所述一个或多个查询在所述数据存储上进行一次扫描。
上述概要仅为说明性的,并非旨在以任何方式进行限制。除了上述的说明性方面和特征,通过参考附图和以下详细说明可清楚地了解其他方面和特征。
附图说明
所附权利要求书中阐述了本发明的新颖特征和特性。然而,通过参考以下结合附图进行阅读的说明性实施例的详细描述可对本发明本身的实施例以及其首选使用模式、进一步目的和优点进行最好的理解。现参考附图以示例方式描述一个或多个实施例。
图1所示为根据现有技术的实施例的描述执行完全扫描的方法的示例性方框图;
图2所示为根据现有技术的实施例的描述执行基于筛选的扫描的方法的示例性方框图;
图3所示为根据现有技术的实施例的描述减少数据存储上的多次扫描的缓存技术的示例性方框图;
图4示出了根据本发明的实施例的示例性高级服务器的方框图;
图5示出了根据本发明的实施例的用于优化数据存储上的查询执行的示例性高级服务器的方框图;以及
图6示出了根据本发明的实施例的展示通过接收模块对一个或多个查询进行排序的示例性方框图;
图7是根据本发明的实施例的描述通过分组模块对一个或多个查询进行分组的示例图;
图8所示为根据本发明的实施例的描述通过执行模块在数据存储上执行一个或多个查询的示例性方框图;
图9所示为根据本发明的实施例的描述优化数据存储上的查询执行的方法的示例性流程图;
图10所示为根据本发明的实施例的描述通过分组模块为分为一组的一个或多个查询扫描数据存储的示例性流程图;
图11所示为根据本发明的实施例描述对一个或多个查询进行排序和分组的示例图;以及
图12所示为根据本发明的实施例的描述为分为一组的一个或多个查询扫描数据存储的示例图。
描述本发明的实施例的图仅用于说明性目的。所属领域技术人员将很容易从以下描述中认识到,本文描述的结构和方法的替代性实施例可在不背离本文所述的本发明的原理的情况下使用。
具体实施方式
前述内容已广泛地概述了本发明的特征和技术优点,以便更好地理解下文中的本发明的具体实施方式。下文中将描述本发明的附加特征和优点,这些特征和优点构成本发明的权利要求书的主题。所属领域的技术人员应了解,所揭示的概念和具体方面可以容易地用作修改或设计其他结构的基础,以实现与本发明目的相同的目的。所属领域的技术人员还应意识到,此类等效构造不脱离所附权利要求书中所提出的本发明的精神和范围。那些被认为是本发明的特点,无论是关于其组成还是操作方法,与进一步的目的和优势一起,都可以根据以下说明结合附图内容得到更好的理解。然而,应明确了解,提供的每个图仅用于说明性和描述性目的,并非旨在限制本发明。
本发明的实施例涉及大数据存储的智能查询。具体而言,本发明涉及一种优化数据存储上的查询执行的方法和服务器。通过将要求来自数据存储的同一部分数据的一个或多个查询分成一个或多个组优化本发明中的查询执行。此外,将一个或多个查询分成一个或多个组从一个或多个元数据中实现,该一个或多个元数据包含在用户指定的一个或多个查询中,该用户希望基于该一个或多个元数据检索结果。在实施例中,将属于同一模式的一个或多个查询分到一组。执行划分在一个或多个分组下的一个或多个查询仅涉及数据存储的一次扫描。具体而言,仅为每个分组扫描数据存储一次,因为每个分组包含要求相似类别的数据的一个或多个查询,避免了为检索同一部分数据而在数据存储上进行多次扫描。因此,这样减少了为要求同一部分数据的一个或多个查询进行扫描的次数。为每个分组仅进行一次扫描涉及确定扫描范围,该范围是扫描数据存储以检索对应划分到一个特定分组中的一个或多个查询的每个查询的结果的范围。扫描范围基于一个或多个元数据确定,该一个或多个元数据包含在划分到一个特定分组中的一个或多个查询中。随后,检索与划分到正在扫描的特定分组中的一个或多个查询有关的结果。检索的结果按要求隔离并基于包含在一个或多个查询中的一个或多个元数据响应一个或多个查询。通过这种方式,以最小延迟返回每个查询所需的来自数据存储的结果。
此后,本发明的实施例借助于示例图和一个或多个实例进行解释。然而,提供这种示例图和示例是用于说明性目的以更好地理解本发明,而不应被理解为对本发明的范围的限制。
图4示出了根据本发明的实施例的示例性高级服务器的方框图。服务器在数据存储上优化查询执行。服务器404通信式地连接到一个或多个客户机402和数据存储406。一个或多个客户机402与一个或多个用户相关联,该一个或多个用户使用一个或多个客户机402发布查询并从数据存储406中检索结果,这些结果由服务器404进行处理。一个或多个客户机402包括但不限于,移动设备、遥控设备、计算机、个人数字助理(PDA)以及能够接收用户输入并执行数据传输和显示的任意其他通信设备。在实施例中,一个或多个用户使用一个或多个客户机402访问存储了各种大数据信息的数据存储406。
存储在大数据存储中的信息可涉及一个或多个机构,包括但不限于,金融机构、仓库、商业机构、政府机关、数据安全中心、社交网络、教育机构、气象预测中心以及制造业。例如,数据存储406存储关于学生、教师、讲师、科目、分数、学术细节等属于教育机构的信息。在示例性实施例中,一个或多个机构的信息以预定义的格式或结构或扩展(例如但不限于,平面文件、分层联机分析处理数据多维数据集、多维数据集、关系数据存储、联机分析处理(OLAP)数据多维数据集以及Excel文件)存储在数据存储406中。所属领域技术人员应理解,可存在任意数量的存储大数据信息的数据存储。在实施例中,服务器404通过通信网络(图4中未示出)连接到一个或多个客户机402和数据存储406以符合查询处理并优化数据存储406上的查询执行。
通信网络包括但不限于电子商务网络、点到点(P2P)网络、局域网(LAN)、广域网(WAN)以及如因特网和WIFI等任意无线网络。通信网络使得一个或多个用户(使用一个或多个客户机402)通过服务器404与数据存储406进行通信以检索所需信息。例如,一个或多个用户使用一个或多个客户机402生成查询,这些查询被服务器404接收。随后,服务器404与数据存储406进行通信以检索响应于从一个或多个客户机402接收的查询的结果。这些结果由服务器404从数据存储406中检索出并被返回到一个或多个客户机402,从而完成通信网络上的查询执行。
图5示出了根据本发明的实施例的用于优化数据存储406上的查询执行的示例性高级服务器的方框图。服务器404包括处理单元502。配置在服务器404中的处理单元502包括接收模块504、分组模块506、执行模块508和存储单元510。配置在处理单元502中的接收模块504从一个或多个客户机402接收包括一个或多个元数据的多个查询。包括一个或多个元数据的多个查询由一个或多个用户指定。使用查询语言生成多个查询,该查询语言包括但不限于多维表达式(MDX)语言和结构化查询语言(SQL)。包括在多个查询的每个查询中的一个或多个元数据是筛选维度、筛选成员和数据集(例如筛选值或索引值或约束值)以及查询的成员。
从一个或多个客户机402接收多个查询后,分组模块506将多个查询的一个或多个查询划分到一个或多个分组列表。多个查询的一个或多个查询的分组基于包括在多个查询的每个查询中的一个或多个元数据。执行模块508在数据存储406上执行包括多个查询的一个或多个查询的一个或多个分组列表。在实施例中,一个或多个分组列表的每个分组列表的执行包括为划分到一个或多个分组列表的每个分组列表中的一个或多个查询在数据存储406上仅进行一次扫描。具体而言,仅为每个分组列表扫描一次数据存储406。随后,执行模块508检索响应于划分到一个或多个分组列表中的多个查询的一个或多个查询的结果,这些结果转而提供给一个或多个客户机402。
存储单元510用于存储接收模块504接收的多个查询和包括多个查询的一个或多个查询的一个或多个分组列表,该一个或多个分组列表由分组模块506生成。在实施例中,存储单元510存储从数据存储406中导入的大数据信息。在实施例中,接收模块504将多个查询排成一个队列,该队列存储在存储单元510中。存储单元510包括但不限于具有可执行指令的计算机可读媒体。这种计算机可读媒体可以是通用或专用计算机等一个或多个客户机402可访问的任意可用媒体。通过示例而非限制,这种计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、磁盘存储器或其他磁盘存储设备,或网络附加存储器,或可用于存储所需可执行指令并可由通用或专用计算机访问的任意其他介质。上述各项的组合应包含在计算机可读媒体的范围内。可执行指令包括如使通用计算机、专用计算机或专用处理设备执行某个功能或某组功能的指令和数据。
图6示出了根据本发明的实施例的展示通过接收模块504对一个或多个查询进行排序的示例性方框图。接收模块504从一个或多个客户机402接收包括一个或多个元数据的多个查询。例如,图6中示出了接收模块504接收的n个查询(查询1、查询2......查询n)。n个查询中的每个查询都可以或可以不包括一个或多个元数据,例如,查询1指定检索2003年以来的学生的结果。这里,2003年是元数据,其是“where”子句中提及的查询1的筛选维度、筛选成员和数据集,“where”子句限制仅检索2003年以来的学生的结果。类似地,查询2指定检索有Null元数据的学生的结果;因此,由于查询2没有指定约束条件,所以与学生有关的所有结果都被检索出。查询3指定检索“where”子句中提及的2003、2004......2006年的学生的结果。查询4类似于元数据为Null的查询2,其中查询4指定检索所有学生的分数。查询n指定检索学生的理科科目的结果。
接收模块504将多个查询(查询1、查询2......查询n)排列成队列504a。在示出的图6中,多个查询(查询1、查询2......查询n)被排列成队列504a。在实施例中,接收模块504是解析器,或者称为语言解析器,其将多个查询排列成队列504a。排序后,分组模块506将排列在队列504a中的多个查询的一个或多个查询划分到一个或多个分组列表。在实施例中,计时器502a耦合到接收模块504。当接收模块504将接收的一个或多个查询的至少一个查询进行排序时,计时器502a启动。例如,假设查询1排列在队列504a中,查询1排序时计时器启动,并且设置等待时间为30毫秒。随着预定等待时间的流逝,分组模块506开始将多个查询的一个或多个查询划分到一个或多个分组列表。例如,假设在设置的时间30毫秒内有四个查询在队列504a中排序,那么当过了30毫秒,分组模块506开始基于这四个查询的元数据将属于同一模式的这四个查询进行分组。在实施例中,超过在计时器中配置的预定等待时间时对多个查询的一个或多个查询进行分组是可选的。预定等待时间在系统配置时设置并能根据用户需求进行修改。图7是根据本发明的实施例的描述通过分组模块506对一个或多个查询进行分组的示例图.分组模块506基于多个查询的每个查询中包括的一个或多个元数据将排列在队列504a中的一个或多个查询进行分组。在实施例中,将属于同一模式的一个或多个查询分到一组。在实施例中,基于多个查询的每个查询中包括的一个或多个元数据之间的相似性将多个查询的一个或多个查询划分到一个或多个分组列表。例如,在示出的图7中,因为一个或多个元数据相似,即查询1的元数据定义了“2003”年,查询3的元数据定义了“2003,2004,.....,2006”年,所以查询1和查询3被划分到分组列表506a。查询1和查询3被分在一个分组列表中,因为它们定义了相同类别的元数据,尽管查询1与查询3的范围不同。类似地,定义了Null元数据的查询2和定义了Null元数据的查询4被分在单个分组列表506b中,因为它们的元数据类别相似,尽管它们的提取结果的实体互不相同。也就是说,查询2定义实体为“学生”,而查询4定义实体为“分数”,但是,因为查询2和查询4定义了相似类别的元数据,即所示示例中的和/或属于同一模式的“Null”元数据,所以查询2和查询4划分到分组列表506b中。查询n定义了待检索的具有理科科目的学生的结果,并被划分到单独的分组列表506c中,因为查询n的元数据与队列504a中的任何其他查询的元数据都不相似。在实施例中,分组模块将多个查询中的每个查询的一个或多个子查询划分到一个或多个分组列表。在为划分到一个或多个分组列表中的子查询的每个子查询检索结果后,返回主查询的结果。这种处理查询的方式减少了处理包括一个或多个子查询的一个或多个查询的延迟。分组列表(506a、506b和506c)的每个分组列表由各个执行模块508a、508b和508c执行。例如,执行模块508a执行分组列表506a,执行模块508b执行分组列表506b,执行模块508c执行分组列表506c。在实施例中,所有分组列表(506a、506b和506c)分别由执行模块508a、508b和508c并行执行。将一个或多个查询划分到一个或多个分组列表(506a、506b和506c)的目的是减少执行模块508a、508b和508c为要求同一部分数据的一个或多个查询分别进行执行的次数,该同一部分数据从一个或多个查询定义的一个或多个元数据确定。
图8所示为根据本发明的实施例的描述通过执行模块508在数据存储406上执行一个或多个查询的示例性方框图。执行模块508在数据存储406上执行包括多个查询的一个或多个查询的一个或多个分组列表(506a、506b和506c)(参考图7)的每个分组列表,以检索响应于划分到一个或多个分组列表(506a、506b和506c)中的多个查询的一个或多个查询的结果。一个或多个分组列表(506a、506b和506c)的每个分组列表的执行涉及为划分到一个或多个分组列表(506a、506b和506c)的每个分组列表中的一个或多个查询仅扫描数据存储406一次。为一个或多个分组列表(506a、506b和506c)的每个分组列表仅执行一次扫描,因为划分到特定分组列表中的一个或多个查询要求提取同一部分数据。例如,具有查询1和查询3的分组列表506a定义了待从数据存储406中提取的同一部分数据。具体而言,避免分别为查询1和查询3单独扫描数据存储406,因为查询1和查询3都要求同一部分数据。因此,仅为分组列表506a扫描数据存储406一次以检索与查询1和查询3都有关的结果。同样为其他分组列表(506b和506c)执行相同的扫描过程,从而避免数据存储406上的多次扫描,这样减少了为一个或多个查询检索结果的延迟。执行模块508包括扫描范围标识符模块802、扫描模块804、记录发布者806、一个或多个查询计算器808和配置在一个或多个查询计算器808的每个查询计算器中的数据聚合器808a,为划分到一个或多个分组列表(506a、506b和506c)的每个分组列表中的一个或多个查询(查询1、查询2......查询n)在数据存储406上进行的扫描中涉及一个或多个查询计算器808。
扫描范围标识符模块802用于基于划分到一个或多个分组列表(506a、506b和506c)的每个分组列表中的一个或多个查询包括的一个或多个元数据为一个或多个分组列表(506a、506b和506c)的每个分组列表确定扫描范围,包括扫描的开始和结束键。例如,就包含查询1和查询3的分组列表506a而言。确定查询1和查询3之间的扫描范围以在数据存储406上执行扫描。扫描范围通常定义要为查询(例如划分到分组列表506a中的查询1和查询3)扫描的数据存储406(即数据存储406中的数据块)的范围。例如,查询1定义元数据为“2003”年,查询3定义元数据为2003、2004......2006年。因此,这种情况下,分组列表506a的扫描范围是2003、2004......2006年。
扫描模块804用于基于确定的扫描范围读数据存储406以检索记录。也就是说,例如,扫描模块804读包含2003、2004......2006年的学生的记录的数据存储406,从而相应地提取分别与查询1和查询3有关的结果。接着,当检索出的记录在确定的扫描范围内时,扫描模块804将检索出的记录转发给记录发布者806。例如,为划分到分组列表506a中的查询1和查询3确定的扫描范围是2003、2004......2006年。因此,2003、2004......2006年的学生的记录从数据存储406中检索出并转发给记录发布者806。在实施例中,接收到对应于开始键的记录之后,记录发布者806提示扫描模块804发送后续记录,即,直到结束键。例如,开始键是2003年,结束键是2006年,假设提取2003、2004......2006年的记录。当扫描模块检索并转发2003年学生的记录以符合查询1,随后记录发布者806提示扫描模块804转发有关2004年的记录。类似地,当检索出2004年的记录,记录发布者806提示发送2005年的记录,等等,直到2006年。
查询计算器808从记录发布者806接收检索出的记录。在实施例中,查询计算器808的数量对应接收模块504接收的多个查询。例如,当接收模块504接收查询1,为接收的查询1生成查询计算器1。查询计算器808验证检索出的记录是否与接收模块504接收的多个查询的一个或多个查询中的每个查询中包括的一个或多个元数据相匹配。例如,通过查询计算器808,查询1符合包括2003年的学生的记录,查询3符合分别包括2003、2004......2006年的学生的记录。当验证检索出的记录时,查询计算器808的数据聚合器808a聚合查询计算器808接收的检索出的记录。因此,查询计算器808将聚合的记录作为与多个查询的一个或多个查询的每个查询相对应的查询结果发送给一个或多个客户机402。在实施例中,在数据存储406上并行执行包括多个查询的一个或多个查询的一个或多个分组列表(506a、506b和506c)。例如,并行执行分组列表506a、分组列表506b、和分组列表506c以减少执行时间。
图9所示为根据本发明的实施例的描述优化数据存储406上的查询执行的方法的示例性流程图。在步骤902,接收模块504从一个或多个客户机402接收包括一个或多个元数据的多个查询(查询1、查询2......查询n)。在步骤904,分组模块506基于多个查询的每个查询中包括的一个或多个元数据将从接收模块504接收的多个查询的一个或多个查询划分到一个或多个分组列表(506a、506b和506c)。在步骤906,执行模块508执行一个或多个分组列表(506a、506b和506c)的每个分组列表以检索响应于划分到一个或多个分组列表(506a、506b和506c)中的多个查询的一个或多个查询的结果。在实施例中,一个或多个分组列表(506a、506b和506c)的每个分组列表的执行包括为划分到一个或多个分组列表(506a、506b和506c)的每个分组列表中的一个或多个查询仅扫描数据存储406一次。
图10所示为根据本发明的实施例的描述通过分组模块506为分为一组的一个或多个查询扫描数据存储406的示例性流程图。在步骤1002,配置在执行模块508中的扫描范围标识符模块802为一个或多个分组列表(506a、506b和506c)中的每个分组列表确定扫描范围,扫描范围包括扫描的开始和结束键。扫描范围的确定基于划分到一个或多个分组列表(506a、506b和506c)的每个分组列表中的一个或多个查询中包括的一个或多个元数据。在步骤1004,扫描模块804从确定的扫描范围中读数据存储406以检索记录,并且当检索出的记录在确定的扫描范围内时,将检索出的记录转发给记录发布者806。在实施例中,当检索出的记录不在确定的扫描范围内,记录发布者806指示与接收模块504接收的多个查询的一个或多个查询的每个查询相对应的所有查询计算器808,以向一个或多个客户机402提供结果。在实施例中,接收到对应于开始键的记录之后,记录发布者806提示扫描模块804发送后续记录,即,直到结束键。并且,在实施例中,记录发布者806向扫描模块804指示下一个扫描的理想键。更准确地说,记录发布者806基于存在于分组列表506中的一个或多个查询中包括的元数据向扫描模块804提供下一个待读取记录的提示。例如,假设已完成筛选值为2003的查询1的扫描。现在要为筛选值为2003、2004......2006的查询2进行扫描。接着,在完成查询1的记录的发布后,记录发布者806指示扫描模块804待扫描的记录2004。在步骤1006,与接收模块504接收的多个查询的一个或多个查询的每个查询相对应的查询计算器808从记录发布者806接收检索出的记录。在步骤1008,查询计算器808验证检索出的记录是否与接收模块504接收的多个查询的一个或多个查询的每个查询中包括的一个或多个元数据相匹配。如步骤1010所示,当验证检索出的记录时(在步骤1008执行),查询计算器808的数据聚合器808a聚合查询计算器808(在步骤1006)接收的检索出的记录。因此,在步骤1012,查询计算器808将聚合的记录作为与多个查询的一个或多个查询的每个查询相对应的查询结果发送给一个或多个客户机402。
图11所示为根据本发明的实施例描述对一个或多个查询进行排序和分组的示例图。在示例中仅示出了单个客户机402,然而所述领域技术人员应了解,用户可使用任意数量的客户机402。用户发布了四个查询,即查询1、查询2、查询3和查询4。查询1分为两个子查询,即查询1A和查询1B。查询1A是指定从市场(Market)随后从特定地区(Territory)中待提取的记录的查询1的子查询,查询1B是指定地区EMEA的按特定时间(Time)和年份(Year)待提取的记录的查询1的子查询。具体而言,查询1以如下给定的MDX形式指定其要求:
查询1A:
Select NON EMPTY{[Measures].[Quantity]}ON COLUMNS,
[Market].[Territory]ON ROWS
查询1A要求来自特定地区的市场中涉及的记录。这里,筛选维度或筛选值(即元数据)是NULL。
查询1B:
Select NON EMPTY{[Measures].[Quantity]}ON COLUMNS,
[Time].[Year]ON ROWS
Where[Market].[Territory].in{EMEA}
查询1B要求地区EMEA的按特定时间和年份的记录。这里,筛选维度或筛选值(即元数据)是市场(Market)。
类似地,查询2指定其要求为:
查询2:
Select NON EMPTY{[Measures].[Quantity]}ON COLUMNS,
[Time].[All Years].Student,ON ROWS
From[Market]
where[Time].[Years].Student in{2003,2006}
查询2要求在2003、2004......2006年的市场中涉及的学生的记录。这里,筛选值是2003、2004......2006年。
查询3指定其要求为:
查询3:
Select NON EMPTY{[Measures].[Quantity]}ON COLUMNS,
[Time].[All Years].Student,ON ROWS
From[Market]
where[Markets].Student in{EMEA}
查询3要求EMEA的市场中涉及的学生的记录。这里,筛选值是EMEA。以及
查询4指定其要求为:
查询4:
Select NON EMPTY{[Measures].[Quantity]}ON COLUMNS,
[Time].[All Years].Student,ON ROWS
From[Market]
where[Time].[Years].Student in{2003}
查询4要求在2003年的市场中涉及的学生的记录。这里,筛选值是2003年。
接收模块504将上述四个查询排列到队列504a中。假设计时器502a设置为30毫秒,并且接收模块504接收的所有上述四个查询(查询1到查询4)都排列到队列504a中。那么当过了30毫秒,分组模块506处理这四个查询以基于它们的筛选值将它们划分到一个或多个分组列表。查询1A和查询1B被置入同一个分组列表506a,因为它们是查询1的子查询。在实施例中,直到子查询被处理,主查询1的结果才能发布,并且似乎不与队列504a中的任何其他查询类似。在实施例中,查询1A和查询1B的结果一起向实体查询1提供结果。查询2和查询4的筛选值的类别相似。因此,查询2和查询4被一起划分到分组列表506b中。查询3定义的筛选值EMEA与查询1、查询2或查询4的任一查询都不相似。因此,查询3被划分到单独的分组列表506c中。图12详细说明了分组列表的执行。
图12所示为根据本发明的实施例的描述为分为一组的一个或多个查询扫描数据存储406的示例图。具体来说,说明了如图11所示的划分到分组列表506b中的查询2和查询4的执行。划分到分组列表506b中的查询2和查询4的执行涉及在数据存储406上进行的扫描。数据存储406包括N个块,这些块包括与学生有关的信息。查询2和查询4的扫描涉及确定扫描范围。因此,根据查询2和查询4的筛选值,扫描范围标识符模块802确定扫描范围为2003、2004......2006年。现在,扫描模块804通读数据存储406,并为查询2和查询4检索2003、2004......2006年的记录,因为定义的扫描范围是2003、2004......2006年。在将记录转发给记录发布者806之前,扫描模块804检查检索出的记录是否在扫描范围2003、2004......2006年内。检索出的记录被转发给记录发布者806。扫描模块804将2003年的记录转发给记录发布者806,因为读取并检索出的2003年的记录在扫描范围2003、2004......2006年内。当检索出的记录不在确定的扫描范围内,记录发布者806指示与接收模块504接收的多个查询的一个或多个查询的每个查询相对应的所有查询计算器808,以向一个或多个客户机402提供结果。现在,分别对应查询2和查询4的查询计算器808从记录发布者806接收检索出的记录。在实施例中,当接收模块504接收查询1、查询2......查询4时,每个查询都配置了各自的查询计算器。例如,这里,查询2和查询4配置了查询计算器2和查询计算器4。查询计算器808验证检索出的2003年的记录是否分别于查询2和查询4的筛选值相匹配,以符合查询2和查询4的响应。当检索出的记录分别与查询2(具有筛选值2003年)和查询4(具有筛选值2003、2004......2006年)的筛选值“2003”相匹配时,分别对应于查询2和查询4的查询计算器808的数据聚合器808a聚合2003年的查询结果。同样的方式,检索并匹配2004年到2006年的记录,并聚合这些记录以作为按查询2和查询4的筛选值的查询结果。在这种情况下,记录发布者806发布的记录不提取对应于它的一个或多个元数据的记录匹配或提供不在一个或多个元数据中的多个记录,随后查询计算器808从任何一个记录都与其一个或多个元数据相匹配的记录中提供聚合的结果,如记录发布者806所发布的。例如,当处理查询4的扫描时,2006年的记录不在扫描范围2003、2004......2006年内。因此,查询4的查询计算器基于提取的2003年的记录发布结果,如记录发布者806所发布的结果。
通过使用标准编程和/或工程技术来产生软件、固件、硬件或者它们的任何组合,所述操作可以作为方法、装置或制品来实施。所述操作可作为“非瞬时计算机可读介质”中保存的代码来实施,其中处理器可从计算机可读介质中读取和执行代码。处理单元为微处理器和能够处理和执行查询的处理器中的至少一个。非瞬时计算机可读介质可包括诸如磁存储介质(例如,硬盘驱动器、软盘、磁带等)、光存储器(CD-ROM、DVD、光盘等)、易失性和非易失性存储设备(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪存、固件、可编程逻辑等)等的介质。建议在说明书中进一步指明,非瞬时计算机可读介质包括除瞬时传播信号外的所有计算机可读介质。实施所述操作的代码可进一步在硬件逻辑(例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等)中实施。另外,实施所述操作的代码可在“传输信号”中实施,其中传输信号可通过空间或通过例如光纤、铜线等传输介质来传播。编码有代码或逻辑的传输信号还可包括无线信号、卫星传输、无线电波、红外信号、蓝牙等。编码有代码或逻辑的传输信号能够由发射站发送并由接收站接收,其中可在接收站或者接收设备以及发射站或者发射设备处的硬件或非瞬时计算机可读介质中对传输信号中编码的代码或逻辑进行解码和存储。“制品”包括可实施代码的非瞬时计算机可读介质、硬件逻辑和/或传输信号。对实施所述操作的实施例的代码进行编码的设备可包括计算机可读介质或硬件逻辑。当然,本领域技术人员将认识到,在不脱离本发明范围的情况下,可以对这一配置进行多处修改,并且制品可以包括本领域中已知的合适的信息承载介质。
除非另有明确规定,否则术语“一实施例”、“实施例”、“多个实施例”、“该实施例”、“这些实施例”、“一个或多个实施例”、“一些实施例”和“一个实施例”意味着“本发明的一个或多个(但不是全部)实施例”。
除非另有明确规定,否则术语“包含”、“包括”、“具有”及其变形意味着“包括但不限于”。
除非另有明确规定,否则枚举的项目列表并不意味着这些项目中的任何项目或所有项目是互斥的。
除非另有明确规定,否则术语“一”、“一个”和“所述”意味着“一个或多个”。
除非另有明确规定,否则相互通信的设备不必连续地相互通信。另外,相互通信的设备可以直接通信或通过一个或多个中间媒介间接地通信。
具有相互通信的多个部件的实施例的描述并不意味着需要所有这些部件。相反,描述多种可选部件来说明本发明的许多种可能的实施例。
另外,尽管可按顺序来描述过程步骤、方法步骤、算法等,但是可将这些过程、方法和算法配置为按照替代的顺序来工作。换句话说,可能描述的步骤的任何序列或顺序并非必然地表明要求以该顺序来执行这些步骤。可按照任何实际的顺序来执行本文所述的过程步骤。此外,一些步骤可同时执行。
虽然本文描述了单个设备或制品,但显然可以使用不止一个设备/制品(无论它们是否进行协作)来代替单个设备/制品。类似地,本文描述了不止一个设备或制品时(不论它们是否协作),但显然可以使用单个设备/制品来代替不止一个设备或制品,或者可以使用不同数量的设备/制品,而不是所示数量的设备或程序。设备的功能和/或特征可替代性地由没有明确地描述为具有这种功能/特征的一个或多个其他设备来实施。因此,本发明的其它实施例不必包括设备本身。
图9和10所示的操作示出了以某个次序发生的某些事件。在替代性实施例中,某些操作可以用不同的顺序来执行、修改或移除。另外,可以在上述逻辑中添加步骤,而这些步骤仍然遵循所述实施例。此外,本文所述的操作可以依次发生,或者某些操作可并行处理。另外,可由单个处理单元或者由分布式处理单元来执行操作。
本发明的各种实施例的上述描述仅出于说明性和描述性目的。其并非旨在穷尽或将本发明限制为所公开的精确形式。根据上述教导,许多修改和变更是可能的。本文的描述旨在不由具体的描述来限制本发明的范围,而是由所附的权力要求来进行限制。以上说明书、示例和数据提供了对制造和使用本发明的组成部分的完整描述。由于能够在不脱离本发明的精神和范围的情况下实现本发明的很多实施例,所以本发明由所附权力要求限定。
此外,本文示出了本发明的优点。
本发明的实施例减少要为一个或多个查询执行的多次扫描,一个或多个查询要求从数据存储406中待提取的同一部分数据。
本发明的实施例通过将要求同一部分数据的一个或多个查询一起分组来减少在数据存储406上处理和执行一个或多个查询的延迟。
本发明的实施例在数据存储406上并行或并发执行划分到一个或多个分组列表下的一个或多个查询,这样减少了处理时间。具体而言,在数据存储406上并行或同时执行包括一个或多个查询的一个或多个分组列表。
本发明的实施例为每个分组列表在数据存储上执行仅一次扫描。因此,避免了为要求提取同一部分数据的一个或多个查询进行多次扫描。
最后,已经主要出于可读性和指导的目的而选择说明书中使用的语言,并且它可以尚未被选择用来限定或限制本发明的主题。因此本意在于本发明的范围非由这一具体描述限制,而是由在基于本文的应用上授权的任何权利要求限制。因此,公开本发明实施例旨在举例说明,而非限制在所附权利要求中阐述的本发明范围。
关于本文中任何复数和/或单数术语的使用,本领域技术人员可以从复数形式转换为单数形式,和/或从单数形式转换为复数形式,以适合具体环境和/或应用。为清楚起见,在此明确阐述单数/复数形式。
另外,在以马库什(Markush)群组描述本发明的特征或方面的情况下,本领域技术人员将认识到,本发明由此也是以该马库什群组中的任意单独成员或成员子组来描述。
尽管本文公开了多个方面和实施例,但是其他方面和实施例对于本领域技术人员来说应该是显而易见的。本文所公开的方面和实施例是出于说明性目的,而非限制性的,真实范围和精神由所附权利要求表征。
Claims (17)
1.一种用于优化数据存储上的查询执行的方法,其特征在于,所述方法包括:
接收模块接收多个查询,所述多个查询包括来自一个或多个客户机的一个或多个元数据,其中所述接收模块配置在与所述数据存储通信连接的服务器中;
分组模块基于包含在所述多个查询中的所述一个或多个元数据将所述接收模块接收的所述多个查询划分到一个或多个分组列表;以及
执行模块执行所述一个或多个分组列表的每个分组列表以检索响应于划分到所述一个或多个分组列表中的所述多个查询的结果,所述一个或多个分组列表包括所述数据存储上的所述多个查询的所述一个或多个查询,所述执行所述一个或多个分组列表的每个分组列表包括为划分到所述一个或多个分组列表的每个分组列表中的所述一个或多个查询在所述数据存储上进行一次扫描,其中所述为划分到所述一个或多个分组列表的每个分组列表中的所述一个或多个查询在所述数据存储上进行一次扫描包括:
配置在所述执行模块中的扫描范围标识符模块基于每个分组列表中的所述一个或多个查询包括的所述一个或多个元数据为所述每个分组列表确定扫描范围,所述扫描范围包括扫描的开始和结束键;
配置在执行模块中的扫描模块从确定的扫描范围中读数据存储以检索记录,并且当检索出的记录在所述确定的扫描范围内时,将所述检索出的记录转发给记录发布者,其中所述记录发布者配置在所述执行模块中;
查询计算器从所述记录发布者接收所述检索出的记录,所述查询计算器验证所述检索出的记录是否与所述多个查询的一个或多个查询包括的所述一个或多个元数据相匹配,其中当验证所述检索出的记录时,所述查询计算器的数据聚合器聚合所述查询计算器接收的所述检索出的记录;以及
所述查询计算器将所述聚合的记录作为与所述接收模块接收的所述多个查询的所述一个或多个查询相对应的查询结果发送。
2.根据权利要求1所述的方法,其特征在于,所述多个查询的每个查询中包括的所述一个或多个元数据是筛选维度、筛选成员和数据集中的至少一个。
3.根据权利要求1所述的方法,其特征在于,将所述多个查询中属于同一模式的一个或多个查询划分到所述一个或多个分组列表。
4.根据权利要求3所述的方法,其特征在于,基于所述多个查询包括的一个或多个元数据之间的相似性将所述多个查询划分到所述一个或多个分组列表。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述接收模块对所述接收的多个查询进行排序。
6.根据权利要求5所述的方法,其特征在于,所述将所述多个查询划分到所述一个或多个分组列表是在超过计时器中预定的等待时间后执行的,当所述多个查询的至少一个查询被排序后,启动所述计时器。
7.根据权利要求1所述的方法,其特性在于,还包括所述记录发布者向所述扫描模块指示下一理想键,其中所述下一理想键基于划分到所述分组列表中的所述一个或多个查询的所述一个或多个元数据指示下一待读取的记录。
8.根据权利要求1至4或权利要求6至7任一项所述的方法,其特征在于,在所述数据存储上并行执行包括所述多个查询的所述一个或多个查询的所述一个或多个分组列表。
9.根据权利要求1至4或权利要求6至7任一项所述的方法,其特征在于,所述数据存储从平面文件、多维数据集、关系数据存储、联机分析处理数据存储和Excel文件中的至少一个中选择。
10.一种用于优化数据存储上的查询执行的服务器,其特征在于,所述服务器包括:
接收模块,用于接收多个查询,所述查询包括来自一个或多个客户机的一个或多个元数据;
分组模块,用于基于包含在所述多个查询中的所述一个或多个元数据将从所述接收模块接收的所述多个查询划分到一个或多个分组列表;以及
执行模块,用于执行所述一个或多个分组列表的每个分组列表以检索响应于划分到所述一个或多个分组列表中的所述多个查询的结果,所述一个或多个分组列表包括所述数据存储上的所述多个查询的所述一个或多个查询,所述执行所述一个或多个分组列表的每个分组列表包括为划分到所述一个或多个分组列表的每个分组列表中的所述一个或多个查询在所述数据存储上进行一次扫描;
所述执行模块包括:
扫描范围标识符模块,用于基于每个分组列表中的所述一个或多个查询包括的所述一个或多个元数据为所述每个分组列表确定扫描范围,包括扫描的开始和结束键;
扫描模块,用于从确定的扫描范围中读数据存储以检索记录,并且当检索出的记录在所述确定的扫描范围内时,将所述检索出的记录转发给记录发布者,其中所述记录发布者配置在所述执行模块中;以及
查询计算器,用于从所述记录发布者接收所述检索出的记录,所述查询计算器验证所述检索出的记录是否与所述多个查询的所述一个或多个查询包括的所述一个或多个元数据相匹配,其中当验证所述检索出的记录时,所述查询计算器的数据聚合器聚合所述查询计算器接收的所述检索出的记录,并且所述查询计算器将所述聚合的记录作为与所述接收模块接收的所述多个查询的所述一个或多个查询相对应的查询结果发送。
11.根据权利要求10所述的服务器,其特征在于,还包括存储单元,所述存储单元用于存储所述接收模块接收的所述多个查询和所述一个或多个分组列表。
12.根据权利要求10或11所述的服务器,其特征在于,所述接收模块是将所述多个查询排序的解析器。
13.根据权利要求10至11任一项所述的服务器,其特征在于,当超过计时器中预定的等待时间时,所述分组模块将所述多个查询划分到所述一个或多个分组列表,当所述接收模块将所述多个查询的至少一个查询排序后,启动所述计时器。
14.根据权利要求13所述的服务器,其特征在于,所述计时器选择性地配置在系统中。
15.根据权利要求10至11任一项所述的服务器,其特征在于,所述数据存储从平面文件、多维数据集、关系数据存储、联机分析处理数据存储和Excel文件中的至少一个中选择。
16.根据权利要求10至11任一项所述的服务器,其特征在于,所述一个或多个客户机从移动设备、遥控设备、计算机、个人数字助理(PDA)和能够执行数据传输和显示的任意其他通信设备中的至少一个中选择。
17.根据权利要求10至11任一项所述的服务器,其特征在于,所述服务器通信式地连接到所述数据存储。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ININ4496/CHE/2013 | 2013-10-03 | ||
PCT/CN2014/076892 WO2015048925A1 (en) | 2013-10-03 | 2014-05-06 | A method of optimizing queries execution on a data store |
IN4496CH2013 IN2013CH04496A (zh) | 2013-10-03 | 2014-05-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105637506A CN105637506A (zh) | 2016-06-01 |
CN105637506B true CN105637506B (zh) | 2020-04-28 |
Family
ID=52778282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480054764.7A Active CN105637506B (zh) | 2013-10-03 | 2014-05-06 | 用于优化数据存储上的查询执行的方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20160246841A1 (zh) |
EP (1) | EP3044706B1 (zh) |
CN (1) | CN105637506B (zh) |
BR (1) | BR112016007295B1 (zh) |
IN (1) | IN2013CH04496A (zh) |
WO (1) | WO2015048925A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106204374A (zh) * | 2016-07-04 | 2016-12-07 | 黄可欣 | 一种用于教育大数据处理的系统及方法 |
CN108984553B (zh) * | 2017-06-01 | 2022-02-01 | 北京京东尚科信息技术有限公司 | 缓存方法和装置 |
US11100555B1 (en) * | 2018-05-04 | 2021-08-24 | Coupa Software Incorporated | Anticipatory and responsive federated database search |
CN108897767A (zh) * | 2018-05-24 | 2018-11-27 | 努比亚技术有限公司 | 一种数据查询方法及系统 |
US20200125664A1 (en) * | 2018-10-19 | 2020-04-23 | Sap Se | Network virtualization for web application traffic flows |
US11586632B2 (en) * | 2019-07-03 | 2023-02-21 | Netflix, Inc. | Dynamic transaction coalescing |
CN112486980A (zh) * | 2019-09-12 | 2021-03-12 | 阿里巴巴集团控股有限公司 | 数据存储、检索方法和装置、电子设备以及计算机可读存储介质 |
CN110795626A (zh) * | 2019-10-28 | 2020-02-14 | 南京弹跳力信息技术有限公司 | 大数据处理方法及系统 |
US11386119B2 (en) * | 2020-01-31 | 2022-07-12 | EMC IP Holding Company LLC | System and method for data orchestration for non-relational databases and key-value storage in multiple computing environments |
US11416490B2 (en) * | 2020-08-03 | 2022-08-16 | International Business Machines Corporation | Prioritization and optimization of database workloads |
CN112559567A (zh) * | 2020-12-10 | 2021-03-26 | 跬云(上海)信息科技有限公司 | 适用于olap查询引擎的查询方法及装置 |
CN113342856B (zh) * | 2021-06-28 | 2022-10-18 | 浙江中控技术股份有限公司 | 数据查询方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002067146A2 (en) * | 2001-02-22 | 2002-08-29 | Infocyclone Ltd. | Query resolution system |
CN103838817A (zh) * | 2012-11-26 | 2014-06-04 | 埃森哲环球服务有限公司 | 数据一致性管理 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7792856B2 (en) * | 2007-06-29 | 2010-09-07 | International Business Machines Corporation | Entity-based business intelligence |
US7877380B2 (en) * | 2008-02-25 | 2011-01-25 | Yahoo! Inc. | System for query scheduling to maximize work sharing |
US8719249B2 (en) * | 2009-05-12 | 2014-05-06 | Microsoft Corporation | Query classification |
US8336051B2 (en) * | 2010-11-04 | 2012-12-18 | Electron Database Corporation | Systems and methods for grouped request execution |
US8799271B2 (en) * | 2011-01-25 | 2014-08-05 | Hewlett-Packard Development Company, L.P. | Range predicate canonization for translating a query |
CN102663114B (zh) * | 2012-04-17 | 2013-09-11 | 中国人民大学 | 面向并发olap的数据库查询处理方法 |
CN103218404B (zh) * | 2013-03-20 | 2015-11-18 | 华中科技大学 | 一种基于关联特性的多维元数据管理方法和系统 |
-
2014
- 2014-05-06 CN CN201480054764.7A patent/CN105637506B/zh active Active
- 2014-05-06 EP EP14850422.8A patent/EP3044706B1/en active Active
- 2014-05-06 BR BR112016007295-2A patent/BR112016007295B1/pt active IP Right Grant
- 2014-05-06 WO PCT/CN2014/076892 patent/WO2015048925A1/en active Application Filing
- 2014-05-06 IN IN4496CH2013 patent/IN2013CH04496A/en unknown
-
2016
- 2016-03-31 US US15/086,366 patent/US20160246841A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002067146A2 (en) * | 2001-02-22 | 2002-08-29 | Infocyclone Ltd. | Query resolution system |
CN103838817A (zh) * | 2012-11-26 | 2014-06-04 | 埃森哲环球服务有限公司 | 数据一致性管理 |
Also Published As
Publication number | Publication date |
---|---|
BR112016007295B1 (pt) | 2022-11-01 |
EP3044706A4 (en) | 2016-07-20 |
BR112016007295A8 (pt) | 2022-08-23 |
IN2013CH04496A (zh) | 2015-04-10 |
CN105637506A (zh) | 2016-06-01 |
US20160246841A1 (en) | 2016-08-25 |
WO2015048925A1 (en) | 2015-04-09 |
EP3044706B1 (en) | 2022-09-28 |
BR112016007295A2 (pt) | 2017-08-01 |
EP3044706A1 (en) | 2016-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105637506B (zh) | 用于优化数据存储上的查询执行的方法 | |
US9798772B2 (en) | Using persistent data samples and query-time statistics for query optimization | |
US7158996B2 (en) | Method, system, and program for managing database operations with respect to a database table | |
CN111971666A (zh) | 优化sql查询计划的维度上下文传播技术 | |
CN107491487B (zh) | 一种全文数据库架构及位图索引创建、数据查询方法、服务器及介质 | |
US9208180B2 (en) | Determination of database statistics using application logic | |
US11036685B2 (en) | System and method for compressing data in a database | |
US10963440B2 (en) | Fast incremental column store data loading | |
Duda | Business intelligence and NoSQL databases | |
Asudeh et al. | Query reranking as a service | |
US20090083214A1 (en) | Keyword search over heavy-tailed data and multi-keyword queries | |
Kim et al. | Optimally leveraging density and locality for exploratory browsing and sampling | |
US20230350866A1 (en) | Dynamically selecting among learned and non-learned indexes for data access | |
US10019483B2 (en) | Search system and search method | |
US20230153286A1 (en) | Method and system for hybrid query based on cloud analysis scene, and storage medium | |
Bin et al. | Storage and access optimization scheme based on correlation probabilities in the internet of vehicles | |
JP6065001B2 (ja) | データ検索装置、データ検索方法およびデータ検索用プログラム | |
Zhang et al. | PARROT: pattern-based correlation exploitation in big partitioned data series | |
CN117951175A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN115829615A (zh) | 一种基于多数据库的用户分群方法、系统和存储介质 | |
CN117573708A (zh) | 一种火箭实时测试数据的分块缓存、存储与使用方法及其系统 | |
CN115544144A (zh) | 一种标签数据的处理方法及装置 | |
Antwi | A Personalized Smart Cube for Faster and Reliable Access to Data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220222 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters building, Longgang District, Shenzhen City, Guangdong Province, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |