CN104737157B - 联合数据库系统 - Google Patents
联合数据库系统 Download PDFInfo
- Publication number
- CN104737157B CN104737157B CN201280076494.0A CN201280076494A CN104737157B CN 104737157 B CN104737157 B CN 104737157B CN 201280076494 A CN201280076494 A CN 201280076494A CN 104737157 B CN104737157 B CN 104737157B
- Authority
- CN
- China
- Prior art keywords
- inquiry
- query
- priority
- application
- cluster
- 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
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/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
-
- 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/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- 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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种联合数据库系统中的查询处理设备(20),以及一种用于在联合数据库系统中处理查询的方法、计算机程序和计算机程序产品。查询处理设备(20)从若干个应用(A1、A2、A3、A4)接收针对一组数据库(22、24、26、28)的数据库查询(Q1、Q2、Q3、04),并基于如通用查询语法的通用查询规则来过滤查询;调查已经通过过滤的查询(Q1、Q2、Q3、Q4),其中所述调查包括根据查询优先级排序方案在至少一些查询之间进行优先级排序;以及将所调查的查询发送到数据库,其中,根据所述优先级排序方案来发送已优先级排序的查询。
Description
技术领域
本发明涉及联合数据库系统。更具体的,本发明涉及联合数据库系统中的查询处理设备,以及用于在联合数据库系统中处理查询的方法、计算机程序和计算机程序产品。
背景技术
如移动电话系统的系统可能包括各种不同类型的数据库,所述数据库可能会被不同的应用查询,例如核心网络中的核心应用或者第三方应用。因此,这种类型的环境也属于联合环境。
近期,关于等待时间/延迟,软件应用和用户更关心数据库的效率。这些软件应用的用户不总是喜欢探索数据库系统的数据模型以编写优化的查询。然而,为了编写优化的查询,用户必须理解应用使用的数据库系统的底层数据存储的能力和难度。
每个这样的数据库在其数据层中具有如MySQL、Oracle等的数据存储。根据其在其数据层中使用了什么数据存储,对所应用的查询施加限制,因为每个数据存储具有其自己的限制和特征。例如,考虑使用MySQL作为其数据存储的数据库。它会施加如“用户不能修改表并且在子查询中从同一个表中选择”的查询限制。类似的,使用Hbase作为数据存储的系统对查询的加入进行限制。施加这样的查询限制以确保资源的有效使用。
除了构建查询中的限制以外,也施加了关于数据访问的其他限制。例如,有些系统限制来自一个用户(如用户A)的对另一个用户(用户B)创建的表中的数据进行读取/更新的查询。在查询中的这样的限制保护了数据的隐私和完整性。
在联合数据库环境中,多个应用查询多个数据存储。在这样的环境中,很难在查询上施加通用限制的完备集,以使所有的数据存储的性能优化。
此外,在联合数据库环境中,可能会存在应用没有关于其正在查询哪个数据存储的信息的情况。在这样的情况下,施加查询限制的问题会变得更加复杂。更经常的,中间件处理从应用到底层的数据存储/从底层的数据存储到应用的数据传送。中间件仍不需要具有应用使用的数据库的数据存储的知识。在不知道使用哪个数据存储的情况下,很难施加查询限制。
另外,在这样的联合系统中存在瓶颈的风险。查询可能会以不能接受的长时间等待其响应。
另外,目前没有办法在存在查询的突然突发时处理联合系统中的查询。
因此,需要针对上述问题中的一些或全部的改进。
发明内容
因此,本发明的一个目的是,提供联合数据库系统中查询处理的改进。
根据本发明的第一方面,所述目的是通过联合数据库系统中的查询处理设备来实现的。所述查询处理设备被配置为从若干个应用接收针对一组数据库的数据库查询。它还包括:
查询调度模块,被配置为调查所述查询,其中所述调查包括根据查询优先级排序方案在至少一些查询之间进行优先级排序,并且将所调查的查询发送到所述数据库。已优先级排序的查询根据查询优先级排序方案来发送。
根据本发明的第二方面,所述目的还是通过联合数据库系统中处理查询的方法来实现的。所述方法在所述系统的查询处理设备中执行并包括如下步骤:
从若干个应用接收针对一组数据库的数据库查询,
调查所述查询,其中所述调查包括根据查询优先级排序方案在至少一些查询之间进行优先级排序,并且
将所调查的查询发送到所述数据库。已优先级排序的查询根据查询优先级排序方案来发送。
根据本发明的第三方面,所述目的还是通过在联合数据库系统中处理查询的计算机程序来实现的。所述计算机程序包括计算机程序代码,当在查询处理设备中运行时,所述计算机程序代码使得所述查询处理设备:
从若干个应用接收针对一组数据库的数据库查询,
调查所述查询,其中所述调查包括根据查询优先级排序方案在至少一些查询之间进行优先级排序,并且
将所调查的查询发送到所述数据库。已优先级排序的查询根据查询优先级排序方案来发送。
根据本发明的第四方面,所述目的还是通过在联合数据库系统中处理查询的计算机程序产品来实现的。其中,所述计算机程序产品在数据载体上提供,所述计算机程序产品包括根据第三方面中的计算机程序。
根据以上方面的本发明具有许多有益效果。优先级排序可以去除瓶颈。优先级排序的使用可以去除终端用户可能为查询的结果等待很长时间的饥饿状况。
在第一方面的有利变化中,所述查询调度模块包括聚类单元,所述聚类单元基于查询执行时间对查询进行聚类,基于聚类中的查询的执行时间将聚类优先级分配给聚类,将查询和聚类相匹配,以及基于对应聚类的聚类优先级将查询优先级分配给查询;排序单元,所述排序单元对应用进行排序;以及选择单元,所述选择单元基于查询优先级以及应用排序来选择查询以执行。
在所述第二方面的对应的变化中,所述方法还包括:基于查询执行时间对查询进行聚类,基于聚类中的查询的执行时间将聚类优先级分配给聚类,以及对应用进行排序。在这个变化中,所述优先级排序还包括:将查询和聚类相匹配,基于对应聚类的聚类优先级将查询优先级分配给查询,以及基于查询优先级以及应用排序来选择查询以执行。
这些变化提供了更多的有益效果:提供了在时间和空间上位置与功能的灵活关联,这进一步增强了选择和使用位置的灵活性。
根据所述第一方面的进一步变化,所述聚类单元确定接收的查询与聚类的相似度,并且将查询与具有相似查询的聚类相匹配。
根据所述第二方面的对应的变化,所述优先级排序还包括:确定接收的查询与聚类的相似度,并且将接收的查询与具有相似查询的聚类相匹配。
根据所述第一方面的另一个变化,所述排序单元基于应用的性质、基于应用的数据库访问频率以及基于用户优先级来对应用进行排序。
根据所述第二方面的对应的变化,基于应用的性质、基于应用的数据库访问频率以及基于用户优先级来实现对应用的排序。
根据所述第一方面的进一步变化,所述选择单元根据查询优先级对查询进行优先级排序,并且如果两个或更多查询的查询优先级相同,则使用应用排序。
根据所述第二方面的对应的变化,根据查询优先级来实现查询的优先级排序。如果两个或更多查询的查询优先级相同,则使用应用排序。
根据所述第一方面的另一个变化,所述查询处理设备还包括:查询过滤模块,所述查询过滤模块基于通用查询规则来过滤接收的查询,其中所述通用查询规则可以包括通用查询语法。
根据所述第二方面的对应的变化,所述方法还包括:基于通用查询规则来过滤接收的查询,其中所述通用查询规则可以包括通用查询语法。
根据所述第一方面的进一步变化,所述查询处理设备还包括:查询处理评估模块,所述查询处理评估模块调查处理应用的查询的系统单元的处理能力,将所述处理能力与能力准则相比较,并且将结果告知所述查询调度模块。如果满足所述能力准则,则所述查询调度模块继而允许立即执行查询,否则根据查询优先级排序方案来应用优先级排序。
根据所述第二方面的对应的变化,所述调查包括:调查处理应用的查询的系统单元的处理能力,将所述处理能力与能力准则相比较。如果满足所述能力准则,则立即执行所述查询,否则将根据查询优先级排序方案来执行优先级排序。
根据所述第一方面的另一个变化,所述查询处理设备包括:报告模块,所述报告模块向应用报告查询的进展。
应当强调的是,术语“包括”当在本说明书中使用时用来指所述特征、要件、步骤、组成部分的存在,但不排除一个或多个其它特征、要件、步骤、组成部分或它们的组合的存在或增加。
附图说明
这里将对本发明关于附图的更多细节进行介绍,其中:
图1示意性示出了多个应用与多个数据库通过查询处理设备通信;
图2示出了查询处理设备的框图;
图3示出了查询处理设备的查询调度模块的框图;
图4示出了在联合数据库系统中处理查询的方法的第一实施例的流程图;
图5示出了在联合数据库系统中处理查询的方法的第二实施例的流程图;以及
图6示意性的示出了包含具有用于实现在联合数据库系统中处理查询的方法的计算机程序代码的数据载体的计算机程序产品。
具体实施方式
以下描述包括多种特定细节,如特殊的结构、接口、技术等,来提供对本发明的全面的理解。但是本领域技术人员可以理解,本发明可以在其它脱离这些特定细节的实施例中实施。此外,省略对这些公知设备、电路和方法的描述,以使得本发明的描述不会因为具有不必要的细节而难以理解。
本发明主要针对若干个应用向若干个数据库发送查询的联合数据库系统。在这样的系统中,当提供查询时,应用不必知道某一数据库的特性。对于所有的数据库,即便存在不同的类型,系统因此能够以相同的方式运行。此外,为避免瓶颈,应当以有效率的方式来处理查询。
图1中示出了联合数据库系统10,包括多个查询设备。在这里存在第一查询设备12,第二查询设备14,第三查询设备16以及第四查询设备18。在查询设备12、14、16、18的每一个查询设备中,还运行向不同数据库发送查询的应用。在这里存在第一查询设备12中的第一应用A1,第二查询设备14中的第二应用A2,第三查询设备16中的第三应用A3,以及第四查询设备18中的第四应用A4。第一应用A1发送第一查询Q1,第二应用A2发送第二查询Q2,第三应用A3发送第三查询Q3,以及第四应用A4发送第四查询Q4。联合数据库系统10还可以是更大的系统的一部分,例如移动通信系统,如长期演进(LTE)或宽带码分多址(WCDMA)。移动通信系统还可以包括无线接入网络和核心网络,其中核心网络可以提供如跟踪移动终端及其位置的核心网功能。这种类型的功能可以基于可能需要使用联合数据库系统10的数据库的一个或多个归属位置寄存器(HLR)。不同类型的第三方应用与这样的移动通信系统相连接也是已知的。这些服务器也可能需要使用联合数据库系统10。
查询处理设备20接收上文中提到的查询,继而将查询分配至不同的数据库。因此,查询处理设备20与第一数据库22、与第二数据库24、与第三数据库26以及与第四数据库28通信。
图2示出了查询处理设备20的框图。它包括应用接口30,所述应用接口30与查询过滤模块32以及与报告模块38连接。查询过滤模块32与查询处理评估模块34连接、查询处理评估模块34继而与查询调度模块36连接。报告模块38也与查询调度模块36连接。查询调度模块46以及所述报告模块38进一步与数据库接口40连接。最后,存在启动模块31。
在这里可能会提到,可以在应用层中提供应用A1、A2、A3和A4,同时可以在联合数据层中提供查询处理设备20和数据库22、24、26和28。
图3示出了查询调度模块36的框图。它包括:聚类单元42,与查询处理评估模块34以及排序单元44连接。这两个单元还与选择单元46相连,选择单元46要与数据库接口以及报告单元相连。
这里将参考前面提到的附图以及图4来描述第一实施例,图4示出了在联合数据库系统中处理查询的方法的第一实施例的多个方法步骤。
步骤48:查询处理设备20在应用接口30处接收数据库查询Q1、Q2、Q3、Q4,来自查询设备12、14、16、18中的不同应用A1、A2、A3、A4的查询Q1、Q2、Q3、Q4针对所述一组数据库22、24、26、28。应当处理这些查询来避免瓶颈。
为实现这一点,步骤50:向查询调度模块36提供查询,查询调度模块36对查询Q1、Q2、Q3、Q4进行调查。所述调查可以包括:根据查询优先级排序方案在至少一些查询之间进行优先级排序。所述优先级排序方案可以使用多种不同的原则中的任一种。例如可以基于查询的执行时间,其中短的执行时间可以比长的执行时间获得更高的优先级。此外,可以预测查询的执行时间,并且这个预测可以基于对类似查询的已知执行时间的知识。所述优先级排序也可以是动态的,即所述优先级排序仅在查询处理设备中存在查询队列时使用。
在优先级排序之后,步骤52:查询调度模块36通过数据库接口40将所调查的查询发送到对应的数据库22、24、26、28,其中因此根据查询优先级排序方案来发送已优先级排序的查询。
可以看出,在第一实施例中,没有使用报告模块38、查询过滤模块32以及查询处理评估模块34,因此这些模块可以从查询处理设备中省去。
此外,可以实施优先级排序以避免执行时间较短(高优先级)的查询等待执行时间较长(低优先级)的查询结束。如果不存在这种类型的优先级排序,由于当正在完成复杂查询时查询被排队,对简单的查询作出响应的时间会更长。这会导致饥饿状态,其中终端用户可能会等待很长时间。因此在第一实施例中避免了这样的情况。
这里将参考图1-3与图5来描述第二实施例,图5示出了根据第二实施例用于在联合数据库系统中处理查询的方法的多个方法步骤。
数据库22、24、26和28都包括如中央处理器(CPU)的处理器以及存储器形式的数据存储。
假设联合系统,其中应用不知道其查询哪一个数据存储。在这种情况下,查询处理设备20处理通过专用连接从应用到最合适的数据存储/从最合适的数据存储到应用的数据传送。
为实现这一点,步骤54:启动模块31在应用部署处将应用分配给数据库的数据存储。启动模块31在这里可以为应用选择最优的数据存储。应用的最优数据存储可以在分析应用的数据和查询之后选择。例如,启动模块31可以为具有大量数据并且要求低响应时间的实体间的关系较少的应用选择HBase。然后,启动模块31在所述应用和所选择的数据存储之间建立专用连接。然后,查询过滤模块32以及查询调度模块36启用所述连接。这里需要提到的是,所分配的应用不知道数据库或数据存储的类型。查询处理设备处理应用与数据存储之间的所有数据传输。
步骤56:查询调度模块36的排序单元44进一步对应用进行排序。所述排序也通常在应用的部署处执行。
可以基于系统管理员提供的标签(如排序(应用1)>排序(应用2))和从应用的行为模式产生的标签的初始集合来对应用排序。
因为应用的重要性根据其复杂性和使用而不同,可以对应用排序。例如,对于联合数据库架构的电信终端用户来说,来自核心网络应用的查询可能比来自第三方应用的查询更重要。
当部署应用时,查询处理设备20捕捉关于应用的基本信息。基本信息可以包括:应用的性质(核心应用/第三方应用),应用的数据库访问频率,例如读/写频率。查询处理设备可以因此预定义基本排序规则。例如,具有高读/写频率的应用可以获得比具有低读/写频率的应用更高的排序。也可以考虑用户的优先级来对应用排序。例如,具有数量更多的应用的用户会获得比具有数量较少的应用的用户更高的优先级。
此后,初始化查询调度模块36的聚类单元42。步骤58:这是通过查询处理设备20首先记录来自不同应用的查询来完成的。
查询被记录由查询处理设备20定义的时间段t。也记录查询的执行时间。
步骤60:然后,聚类单元42对查询进行聚类。所述聚类可以基于执行时间,即具有相似的执行时间的查询可以组合在一起。
所述聚类可以基于查询的所述执行时间,并且使用如k-means聚类的现有技术来执行。根据这些原则,每个查询使用1-d执行时间来表示,并且使用K-Means来聚类执行时间。这种类型的聚类记载在例如R Journal,2011,“Ckmeans.1d.dp:Optimal k-meansClustering in One Dimension by Dynamic Programming”,Haizhou Wang and MingzhouSong,其通过引用并入此处。
步骤62:然后,聚类单元42基于执行时间将聚类优先级分配给所得到的聚类。每个聚类因此获得了对应的聚类优先级。所述聚类优先级还可以基于针对聚类确定的平均执行时间分配给所得到的聚类。具有执行时间最短的查询的聚类然后可以得到最高的聚类优先级,并且具有执行时间最长的查询的聚类可以得到最低的聚类优先级。然后存储已计算的聚类用于未来的对查询进行优先级排序。
执行这些措施之后,查询处理设备20可以开始以高效的方式接收并处理查询。
第一实施例中的方法因此然后继续进行,步骤64:查询处理设备20从应用A1、A2、A3以及A4接收查询Q1、Q2、Q3以及Q4。在本实施例中,这些查询也在查询接口30中接收。根据一般结构来提供这些查询,使得可以针对不同数据库类型来处理查询。作为示例,查询应该可以与MySQL、Oracle或HBase数据库一起使用。
步骤66:然后将查询Q1、Q2、Q3以及Q4转发到查询过滤模块32,查询过滤模块32基于通用查询规则来过滤查询。
过滤可以是将静态限制施加于查询的过滤。查询过滤模块32例如可以施加如“键中不允许正则表达式”的限制。例如,假定查询“Select name,age from my-databasewhere depart*name=′Research′”。该查询会被查询过滤模块32滤除,因为其在键‘department name’中具有正则表达式(depart*name)。查询过滤模块32将已被滤除的查询发送到报告模块38,报告模块38可以告知发送该查询的应用该查询已被拒绝。
下文中给出了一些可能的限制:
1.不允许单一查询中对表的多次更新。
2.应当遵循通用查询语法,因为系统可能根据应用的特性与任何数据存储通信。如果遵循专用查询语法,则在底层数据存储与不同的语法兼容时,可能会导致错误。例如,假设应用生成查询“Select employeename from mydatabase where department=′Research′”。这是有效的SQL查询。然而,如果底层数据存储是Hbase,其会以错误来结束,因为Hbase遵循不同的查询语法。通用查询语法可以如下。
选择查询:Select tablename,
column1,column2...columnn
插入查询:Insert tablename,
column1=value1,column2=value2
删除查询:Delete tablename
3.键中不允许正则表达式。例如,查询“Select employeename from my-databasewhere depa*=′Research′”是不允许的,因为其在行键department中具有正则表达式(depa*)。
4.不允许在单一查询中读取多个表,因为在如Hbase的某些数据存储中不允许这样做。
5.不允许试图查看数据存储中的所有实体的无类查询,因为由其它应用以及系统(查询处理设备)创建的数据对于应用来说不应该是可见的。
6.不允许对多于一个属性的过滤,因为例如Hbase的某些数据存储不捕捉属性间的关系。
接受并转发遵循这些限制的查询至查询处理评估单元34。
步骤68:然后,查询处理评估单元42调查处理应用的查询的系统单元的处理能力。
所分配的数据存储具有例如处理器(如CPU)以及存储器的系统单元来处理查询。查询处理评估单元42调查这些系统单元的处理能力。查询处理评估单元42通过监测这些系统单元的各种CPU和存储器参数来实现这一点。如果查询所寻址至的数据存储是空闲的,则将立即调度查询以执行。然而,如果系统是繁忙的,则查询调度模块36对查询进行优先级排序。
对处理能力的调查可以包括:调查所述数据存储的各种中央处理器(CPU)和存储器参数。监测的CPU参数可以是CPU平均负载、可用空闲RAM空间以及缓存大小。监测的存储器参数可以是磁盘上的可用空间。例如,如果第一应用A1被分配给第一数据库22,则调查该数据库的数据存储的处理器以及存储器参数。
步骤70:然后,将查询的处理能力与处理能力准则相比较;步骤72:如果满足所述准则;步骤80:查询不经过查询调度模块36处理,立即被发送到所分配的数据库。如果包含应用的数据存储的系统是空闲的,即如果CPU平均负载低于第一阈值T1且可用的空闲存储器空间大于第二阈值T2(其中阈值T1和T2是由查询处理设备20基于数据存储使用的处理器类型来设定的),则认为满足了所述准则。
步骤72:如果没有满足所述准则,即认为系统是繁忙的,则然后告知查询调度模块36并且将查询转发到该模块。
步骤62:在查询调度模块36中,如果满足对应的准则,则查询立即被转发到数据库接口40。然而,步骤62:如果不满足所述准则,则查询调度模块36的聚类单元42处理查询。
步骤74:聚类单元42首先将查询和聚类相匹配,这可以通过确定查询与不同聚类的相似度来完成。
可以通过计算查询和接近聚类的质心的其他所有查询之间的相似度来预测所述查询的执行时间。
相似度计算可以使用现有技术如余弦相似度,例如在Journal of MachineLearning Research 10(2009)747-776,“Similarity-based Classification:Conceptsand Algorithms”,Yihua Chen,Eric K.Garcia,Maya R.Gupta,Ali Rahimi and LucaCazzanti中记载的,其通过引用并入此处。
可以考虑如所查询的域以及查询的类型之类的属性来计算相似度。
步骤75:在确定了相似度之后,查询可以因此与最相似的聚类相匹配。步骤76:然后,可以将基于对应的聚类的聚类优先级(即基于在匹配中确定的与所调查的查询最相似的聚类的聚类优先级)的查询优先级分配给查询。这可以通过将查询分配给聚类来完成。因此,给予查询的查询优先级可以与相关联聚类的聚类优先级相同,其中所述相关联聚类可以是具有与所述查询相似的查询的聚类。
查询因此会分配给具有与其相似的查询的聚类。假设(x1,x2,..xn)是查询(q1,q2,...qn)的执行时间集合。K-means聚类算法将执行时间的n个观察划分为k个聚类。给定k个质心的集合m1 (1),...,mk (1)以及查询xp,算法执行以下计算:
其中,每个xp仅被分配给一个聚类si(t)。一旦查询分配给聚类,其执行时间使用以下公式来预测:
需要注意的是,这是已经预先计算的对应聚类的质心值。
其中:
E(Qt)=查询Qt的执行时间
N=聚类中查询的数量
查询的优先级将与聚类的优先级相同。
通过这种方法,能够看出,聚类单元42可以将与具有相似查询的聚类的聚类优先级相同的查询优先级分配给查询。
步骤78:在对查询优先级排序之后,选择单元46根据查询的查询优先级,同时考虑对应应用的排序来选择查询以执行。这意味着,为了获得在选择查询时使用的应用的排序,选择单元46与排序单元44相连接。
通过这种方式,基于查询所来自的应用的排序以及查询的查询优先级来调度查询。
因此,基于查询优先级来调度查询以执行。当具有高查询优先级的查询在队列中等待具有较低查询优先级的查询完成执行时,如果底层数据存储支持抢占,则具有较低查询优先级的查询会被抢占。可以由考虑生成查询的应用的排序来解决查询的优先级的冲突。例如,假设查询Q1与查询Q2具有排序1。Q1由应用A1生成且询Q2由应用A2生成。并且假设R(A1)大于R(A2),其中R是应用的排序。在这种情况下,因为生成查询的应用A1具有较高的排序,所以先执行查询Q1。因此,选择单元根据查询优先级对查询进行优先级排序,并且如果两个或更多查询的查询优先级相同,则使用应用排序。在存在查询优先级和应用排序的公共冲突的情况下,随机选择查询并调度来执行。假设在上文的示例中R(A1)=R(A2)。在这种情况下,查询Q2可能会被随机选择来执行。
步骤80:在以这种方式选择查询之后,所述查询随后被发送到相关联数据库,并且结果将在与应用相关联的数据存储中出现。
另外,在执行插入查询时,可以考虑与查询相关联的磁盘的可用空间。如果包含应用的数据存储的系统没有足够的空间来存储要插入的记录,则查询会被缓冲,直到磁盘空间增大为止。
贯穿查询处理设备20运行期间,报告模块38监测并向应用A1、A2、A3以及A4报告查询的状态。例如,报告模块报告被拒绝的查询以及被接受的查询的大致执行时间。
报告模块38因此将查询的状态告知应用。报告模块使用的信息可以如下:
1.查询被执行。
2.由于违反限制,查询被拒绝。
3.查询被调度即将被执行。
基于查询的状态,显示上述消息之一,以将查询的状态告知应用。
可以看出,查询处理设备通过施加静态和动态的查询限制来提高联合数据库系统的性能。
本发明也具有很多其他的有益效果。通过对查询使用静态限制,查询处理设备可以确保应用生成的查询不会因为语法问题而导致错误。通过对查询使用动态限制,避免了提供数据存储的系统的部分中的性能瓶颈。因为完全避免了超负荷导致的系统故障,查询级的调度确保了较高的性能和稳定性。通过静态和动态限制的结合,解决了联合数据库架构中的语法冲突和性能问题。应用排序的使用确保了关键应用在数据更新/检索方面总是稳定的。具有支持抢占的查询优先级排序的使用避免了具有较短执行时间(高优先级)的查询等待具有较长执行时间(低优先级)的查询完成。如果不存在查询优先级排序,就会出现由于复杂查询的完成的等待时间造成的简单查询的响应时间过长的情形。这可能会导致终端用户可能长时间等待的饥饿状况。该方法可以避免这种情形。另外,在查询突然爆发的情况下,可以保证应用和系统的稳定性。例如,归属位置寄存器(HLR)可以在夜间执行大量的批量插入。
查询处理设备可以以具有相关联程序存储器的处理器的形式来提供,所述程序存储器包括用于执行查询处理设备的功能的计算机程序代码。
计算机程序也可以是计算机程序产品,例如以计算机可读存储介质或数据载体,如CD ROM盘或记忆棒,其携带这样的具有计算机程序代码的计算机程序,可以实施上述的查询处理设备的功能。图6中示意性的示出了具有计算机程序代码84的这样的数据载体82。
尽管参考目前被认为是最实用以及优选的实施例描述了本发明,需要理解的是,本发明并不限于公开的实施例,相反,应当覆盖各种变化和等同配置。因此本发明仅受权利要求的限定。
Claims (13)
1.一种联合数据库系统(10)中的查询处理设备(20),所述查询处理设备被配置为从若干个应用(A1、A2、A3、A4)接收针对一组数据库(22、24、26、28)的数据库查询(Q1、Q2、Q3、Q4),并且包括:
启动模块(31),在应用部署处将应用分配给所述数据库的数据存储;
查询调度模块(36),被配置为调查所述查询(Q1、Q2、Q3、Q4),其中所述调查包括根据查询优先级排序方案在至少一些查询之间进行优先级排序,并且将所调查的查询发送到所述数据库,其中,已优先级排序的查询根据查询优先级排序方案来发送;以及
查询处理评估模块(34),被配置为调查处理应用的查询的系统单元的处理能力,将所述处理能力与能力准则相比较,并且将结果告知所述查询调度模块(36),
其中,所述查询调度模块(36)还被配置为:如果满足所述能力准则,则允许立即将查询发送到所分配的数据库并且立即执行查询,否则根据查询优先级排序方案来应用优先级排序,
其中,所述查询调度模块(36)包括:聚类单元(42),被配置为基于查询执行时间对查询进行聚类,基于聚类中的查询的执行时间将优先级分配给聚类;排序单元(44),被配置为对应用进行排序;以及选择单元(46),被配置为基于聚类优先级和应用排序来选择查询以执行。
2.根据权利要求1所述的查询处理设备,其中,所述聚类单元(42)被配置为确定接收的查询与聚类的相似度,并将查询分配给具有相似查询的聚类。
3.根据权利要求1或2所述的查询处理设备,其中,所述排序单元(44)被配置为:基于应用的性质、基于应用的数据库访问频率以及基于用户优先级来对应用进行排序。
4.根据权利要求1或2所述的查询处理设备,其中,所述选择单元(46)被配置为:根据聚类优先级对查询进行优先级排序,并且如果两个或更多查询的聚类优先级相同,则使用应用排序。
5.根据权利要求1或2所述的查询处理设备,还包括:查询过滤模块(32),被配置为基于通用查询规则来过滤接收的查询。
6.根据权利要求5所述的查询处理设备,其中,所述通用查询规则包括通用查询语法。
7.根据权利要求1或2所述的查询处理设备,还包括:报告模块(38),被配置为向应用报告查询的进展。
8.一种用于在联合数据库系统(10)中处理查询的方法,所述方法在所述系统的查询处理设备(20)中执行,并且包括步骤:
在应用部署处将应用分配(52)给所述数据库的数据存储;
基于查询执行时间对查询进行聚类(60);
基于聚类中的查询的执行时间,将优先级分配(62)给聚类;
对应用进行排序(56);
从若干个应用(A1、A2、A3、A4)接收(48、64)针对一组数据库(22、24、26、28)的数据库查询(Q1、Q2、Q3、Q4);
调查(50、66、68、70、72、74、75、76)所述查询(Q1、Q2、Q3、Q4),其中所述调查包括根据查询优先级排序方案在至少一些查询之间进行优先级排序,所述优先级排序包括基于聚类优先级和应用排序来选择(78)查询以执行;以及
将所调查的查询发送(52、80)到所述数据库,其中已优先级排序的查询根据查询优先级排序方案来发送,
其中,所述调查包括:调查(68)处理应用的查询的系统单元的处理能力,将所述处理能力与能力准则相比较(70),其中,如果满足所述能力准则(72),则立即将查询发送到所分配的数据库并且立即执行查询,否则(72)根据查询优先级排序方案来执行优先级排序。
9.根据权利要求8所述的方法,其中,所述优先级排序还包括:确定(74)接收的查询与聚类的相似度,以及将查询分配(76)给具有相似查询的聚类。
10.根据权利要求8或9所述的方法,其中,基于应用的性质、基于应用的数据库访问频率以及基于用户优先级来对应用进行排序。
11.根据权利要求8或9所述的方法,其中,根据聚类优先级对查询进行优先级排序,并且如果两个或更多查询的聚类优先级相同,则使用应用排序。
12.根据权利要求8或9所述的方法,还包括:基于通用查询规则来过滤(56)接收的查询。
13.一种计算机可读存储介质,存储用于在联合数据库系统(10)中处理查询的计算机程序,所述计算机程序包括计算机程序代码(84),当在查询处理设备(20)中运行时,所述计算机程序代码使得所述查询处理设备执行根据权利要求8-12中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2012/070819 WO2014060050A1 (en) | 2012-10-19 | 2012-10-19 | A federated database system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104737157A CN104737157A (zh) | 2015-06-24 |
CN104737157B true CN104737157B (zh) | 2019-02-05 |
Family
ID=47172595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280076494.0A Active CN104737157B (zh) | 2012-10-19 | 2012-10-19 | 联合数据库系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10216799B2 (zh) |
EP (1) | EP2909743B1 (zh) |
CN (1) | CN104737157B (zh) |
IN (1) | IN2015DN02750A (zh) |
WO (1) | WO2014060050A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015005833A1 (en) * | 2013-07-08 | 2015-01-15 | Telefonaktiebolaget L M Ericsson (Publ) | Control of a distributed data grid layer in a federated database system |
US9940342B2 (en) | 2014-09-25 | 2018-04-10 | Red Hat, Inc. | Stability measurement for federation engine |
US9767168B2 (en) | 2014-11-21 | 2017-09-19 | Red Hat, Inc. | Federation optimization using ordered queues |
EP3038018A1 (en) * | 2014-12-27 | 2016-06-29 | Dassault Systèmes | Clustering database queries for runtime prediction |
EP3038019A1 (en) | 2014-12-27 | 2016-06-29 | Dassault Systèmes | Designing a choropleth map |
US11755658B2 (en) * | 2018-06-12 | 2023-09-12 | Nuvolo Technologies Corporation | Intelligent buffering of queries from a mobile application |
US11050793B2 (en) | 2018-12-19 | 2021-06-29 | Abnormal Security Corporation | Retrospective learning of communication patterns by machine learning models for discovering abnormal behavior |
US11824870B2 (en) | 2018-12-19 | 2023-11-21 | Abnormal Security Corporation | Threat detection platforms for detecting, characterizing, and remediating email-based threats in real time |
US11431738B2 (en) | 2018-12-19 | 2022-08-30 | Abnormal Security Corporation | Multistage analysis of emails to identify security threats |
US11188791B2 (en) | 2019-11-18 | 2021-11-30 | International Business Machines Corporation | Anonymizing data for preserving privacy during use for federated machine learning |
US11470042B2 (en) | 2020-02-21 | 2022-10-11 | Abnormal Security Corporation | Discovering email account compromise through assessments of digital activities |
US11477234B2 (en) * | 2020-02-28 | 2022-10-18 | Abnormal Security Corporation | Federated database for establishing and tracking risk of interactions with third parties |
US11790060B2 (en) | 2020-03-02 | 2023-10-17 | Abnormal Security Corporation | Multichannel threat detection for protecting against account compromise |
US11252189B2 (en) | 2020-03-02 | 2022-02-15 | Abnormal Security Corporation | Abuse mailbox for facilitating discovery, investigation, and analysis of email-based threats |
US11451576B2 (en) | 2020-03-12 | 2022-09-20 | Abnormal Security Corporation | Investigation of threats using queryable records of behavior |
EP4139801A4 (en) | 2020-04-23 | 2024-08-14 | Abnormal Security Corp | DETECTING AND PREVENTING EXTERNAL FRAUD |
US11528242B2 (en) | 2020-10-23 | 2022-12-13 | Abnormal Security Corporation | Discovering graymail through real-time analysis of incoming email |
US11687648B2 (en) | 2020-12-10 | 2023-06-27 | Abnormal Security Corporation | Deriving and surfacing insights regarding security threats |
CN113111083B (zh) * | 2021-03-31 | 2024-07-16 | 北京沃东天骏信息技术有限公司 | 数据查询的方法、装置、设备、存储介质和程序产品 |
US11831661B2 (en) | 2021-06-03 | 2023-11-28 | Abnormal Security Corporation | Multi-tiered approach to payload detection for incoming communications |
US11836141B2 (en) * | 2021-10-04 | 2023-12-05 | Red Hat, Inc. | Ranking database queries |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040186829A1 (en) * | 2003-03-17 | 2004-09-23 | Hitachi, Ltd. | Database system, server, query posing method, and data updating method |
CN101067823A (zh) * | 2006-05-02 | 2007-11-07 | 国际商业机器公司 | 优化联合数据库管理系统的方法和系统 |
CN101206671A (zh) * | 2006-12-20 | 2008-06-25 | 国际商业机器公司 | 使用策略框架管理数据库系统的方法和系统 |
US20090132611A1 (en) * | 2007-11-19 | 2009-05-21 | Douglas Brown | Closed-loop system management method and process capable of managing workloads in a multi-system database environment |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7243093B2 (en) * | 2002-11-27 | 2007-07-10 | International Business Machines Corporation | Federated query management |
US8107960B2 (en) * | 2007-01-23 | 2012-01-31 | Toshiba America Research, Inc. | Prioritized query |
US8326826B1 (en) * | 2009-01-12 | 2012-12-04 | Google Inc. | Navigational resources for queries |
US8375047B2 (en) | 2010-03-31 | 2013-02-12 | Emc Corporation | Apparatus and method for query prioritization in a shared nothing distributed database |
US8799248B2 (en) * | 2011-04-26 | 2014-08-05 | Brian J. Bulkowski | Real-time transaction scheduling in a distributed database |
-
2012
- 2012-10-19 CN CN201280076494.0A patent/CN104737157B/zh active Active
- 2012-10-19 WO PCT/EP2012/070819 patent/WO2014060050A1/en active Application Filing
- 2012-10-19 US US14/434,372 patent/US10216799B2/en active Active
- 2012-10-19 EP EP12784221.9A patent/EP2909743B1/en active Active
- 2012-10-19 IN IN2750DEN2015 patent/IN2015DN02750A/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040186829A1 (en) * | 2003-03-17 | 2004-09-23 | Hitachi, Ltd. | Database system, server, query posing method, and data updating method |
CN101067823A (zh) * | 2006-05-02 | 2007-11-07 | 国际商业机器公司 | 优化联合数据库管理系统的方法和系统 |
CN101206671A (zh) * | 2006-12-20 | 2008-06-25 | 国际商业机器公司 | 使用策略框架管理数据库系统的方法和系统 |
US20090132611A1 (en) * | 2007-11-19 | 2009-05-21 | Douglas Brown | Closed-loop system management method and process capable of managing workloads in a multi-system database environment |
Also Published As
Publication number | Publication date |
---|---|
IN2015DN02750A (zh) | 2015-08-28 |
US10216799B2 (en) | 2019-02-26 |
EP2909743B1 (en) | 2018-06-27 |
WO2014060050A1 (en) | 2014-04-24 |
EP2909743A1 (en) | 2015-08-26 |
CN104737157A (zh) | 2015-06-24 |
US20150234831A1 (en) | 2015-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104737157B (zh) | 联合数据库系统 | |
CN102906751B (zh) | 一种数据存储、数据查询的方法及装置 | |
CN103106249B (zh) | 一种基于Cassandra的数据并行处理系统 | |
CN102375837B (zh) | 数据采集系统和方法 | |
US8176037B2 (en) | System and method for SQL query load balancing | |
CN105005611B (zh) | 一种文件管理系统及文件管理方法 | |
US20190384845A1 (en) | Using computing resources to perform database queries according to a dynamically determined query size | |
CN106407303A (zh) | 数据存储、查询方法及装置 | |
US20160314173A1 (en) | Low-latency query processor | |
CN101937474A (zh) | 海量数据查询方法及设备 | |
CN106407244A (zh) | 基于多数据库的数据查询方法、系统和装置 | |
CN112947860B (zh) | 一种分布式数据副本的分级存储与调度方法 | |
CN105683941A (zh) | 调节企业数据仓库资源使用 | |
CN109033462A (zh) | 在大数据存储的存储设备中确定低频数据项的方法及系统 | |
CN105550180B (zh) | 数据处理的方法、装置及系统 | |
CN108259605B (zh) | 一种基于多数据中心的数据调用系统及方法 | |
CN106506647A (zh) | 一种客户端具有数据备份装置的智慧社区云存储系统 | |
CN101452486A (zh) | 一种甲骨文系统数据管理方法及其装置 | |
CN104050284B (zh) | 一种基于单进程的数据异步查询方法及系统 | |
CN103902614A (zh) | 一种数据处理方法、设备和系统 | |
CN113111083B (zh) | 数据查询的方法、装置、设备、存储介质和程序产品 | |
CN114201488A (zh) | 一种支持结构化数据和非结构数据混合查询系统及方法 | |
CN104092735A (zh) | 一种基于二叉树的云计算数据访问方法及系统 | |
CN103748578A (zh) | 数据分布的方法、装置及系统 | |
CN112416576A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |