CN114996276A - Olap预计算模型建模方法、数据查询方法、装置及存储介质 - Google Patents
Olap预计算模型建模方法、数据查询方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114996276A CN114996276A CN202210729529.1A CN202210729529A CN114996276A CN 114996276 A CN114996276 A CN 114996276A CN 202210729529 A CN202210729529 A CN 202210729529A CN 114996276 A CN114996276 A CN 114996276A
- Authority
- CN
- China
- Prior art keywords
- data
- query
- information
- historical
- mode
- 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
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/243—Natural language query formulation
-
- 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
- G06F16/2462—Approximate or statistical 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种OLAP预计算模型建模方法、数据查询方法、装置及存储介质,方法包括:通过获取查询节点发送的查询语句;通过查询语句在数据库多个映射关系中查找到对应的目标数据,并将目标数据反馈给查询节点;其中,数据库中存储有多个预备数据和多个历史查询语句的多个映射关系,每个预备数据是从对应数据模型信息中提取到的;数据模型信息是基于对应历史查询语句处理得到的。由于本方案中服务器预先根据历史查询语句处理得到的数据模型信息计算出预备数据,进而建立了多个预备数据的映射关系,当接收到查询语句时,可以根据该映射关系查找到对应的该查询语句的目标数据,节省了计算时间,进而提高了查询数据的效率。
Description
技术领域
本发明实施例涉及计算机及互联网技术领域,尤其涉及一种OLAP预计算模型建模方法、数据查询方法、装置及存储介质。
背景技术
联机分析处理(Online Analytical Processing,OLAP)技术是计算机技术中快速解决多维分析问题的方法。OLAP技术,即预计算。通过预先“计算”用户后续需要的业务信息,将预先计算好的结果存储起来,后续用户需要查询结果时,仅通过索引就可以访问到预先存储的查询结果。
相关技术中,因为预先存储的结果是以一种“数据立方体”的结构存储的,这种结构会随着数据维度的增长而呈现指数级的增大,因此在通过预计算预先存储一些比较复杂的查询计算结果时,会造成较大的存储压力,进而使得查询时效率相应降低。而且利用OLAP方法在数据库中针对百万级别数据进行多个维度的数据查询时,随着数据量的增大,直接在大量数据上进行多维运算需要耗费大量的计算资源,尤其是聚合查询。进而导致查询效率较低。
发明内容
本发明实施例提供的一种OLAP预计算模型建模方法、数据查询方法、装置及存储介质,可以提高数据查询效率。
本发明的技术方案是这样实现的:
本发明实施例提供了一种数据查询方法,包括:
获取查询节点发送的查询语句;
通过所述查询语句在数据库的多个映射关系中查找到对应的目标数据,并将所述目标数据反馈给所述查询节点;其中,
所述数据库中存储有多个预备数据和多个历史查询语句的所述多个映射关系,每个预备数据是从对应数据模型信息中提取到的;所述数据模型信息是基于对应历史查询语句处理得到的,数据模型信息包括:对应历史查询语句表征的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息。
上述方案中,所述通过所述查询语句在数据库的多个映射关系中查找到对应的目标数据,并将所述目标数据反馈给所述查询节点之前,所述方法还包括:
获取所述多个历史查询语句,并对所述多个历史查询语句进行处理,得到多个查询模式组数据;其中,每个查询模式组数据对应至少一个历史查询语句;
利用预设程序处理所述多个查询模式组数据,得到多个数据模型信息,并利用所述多个数据模型信息提取出多个待计算数据;
对所述多个待计算数据进行计算处理,结合所述多个数据模型信息得到所述多个预备数据,建立每个预备数据与对应的所述至少一个历史查询语句的所述映射关系,进而得到所述多个预备数据的多个映射关系,并将所述多个映射关系存储在所述数据库。
上述方案中,所述对所述多个历史查询语句进行处理,得到多个查询模式组数据,包括:
解析所述多个历史查询语句,得到对应每个历史查询语句的至少一个查询模式数据,进而得到多个查询模式数据;每个查询模式数据中包括:对应历史查询语句表征的表连接信息、表统计信息和列统计信息;
利用所述每个查询模式数据中包括的所述表连接信息、所述表统计信息和所述列统计信息对所述多个查询模式数据进行分组合并,得到所述多个查询模式组数据。
上述方案中,所述利用所述每个查询模式数据中包括的所述表连接信息、所述表统计信息和所述列统计信息对所述多个查询模式数据进行分组合并,得到所述多个查询模式组数据,包括:
根据所述多个查询模式数据中包括的所述表连接信息、所述表统计信息和所述列统计信息之间的相似度,及其对应的业务属性,将所述多个查询模式数据分为多个中间查询模式组数据;
根据所述多个中间查询模式组数据中包括的所述表连接信息进行合并,进而得到所述多个查询模式组数据。
上述方案中,所述多个查询模式数据包括:M个查询模式数据;M为大于1的整数;
所述根据所述多个查询模式数据中包括的所述表连接信息、所述表统计信息和所述列统计信息之间的相似度,及其对应的业务属性,将所述多个查询模式数据分为多个中间查询模式组数据,包括:
在所述M个查询模式数据中确定出,N个包含了相同的所述表连接信息,相同的所述表统计信息和相同的所述列统计信息的第一组查询模式数据,并根据所述第一组查询模式数据中包含信息的业务属性将其分为一组;N为大于1小于M的整数;
在M-N个查询模式数据中确定出,K个包含相同的所述表连接信息,部分相同的所述表统计信息和部分相同的所述列统计信息的第二组查询模式数据,并根据所述第二组查询模式数据中包含信息的业务属性将其分为一组;K为大于1小于M的整数;
在M-N-K个查询模式数据中确定出,T个包含部分相同的所述表连接信息,部分相同的所述表统计信息和部分相同的所述列统计信息的第三组查询模式数据,并根据所述第三组查询模式数据中包含信息的业务属性将其分为一组,直至将所述M个查询模式数据分组完成,得到所述多个中间查询模式组数据;T为大于1小于M的整数。
上述方案中,所述根据所述多个查询模式数据中包括的所述表连接信息、所述表统计信息和所述列统计信息之间的相似度,及其对应的业务属性,将所述多个查询模式数据分为多个中间查询模式组数据,包括:
根据所述多个查询模式数据中包括的所述表连接信息、所述表统计信息和所述列统计信息,确定出所述多个查询模式数据的多个向量;
利用预定的聚类算法,将所述多个向量进行分组;
将所述多个查询模式数据,按照对应的所述多个向量的分组方式,结合所述业务属性分为所述多个中间查询模式组数据。
上述方案中,所述根据所述多个中间查询模式组数据中包括的所述表连接信息进行合并,进而得到所述多个查询模式组数据,包括:
将每个中间查询模式组数据,与其他中间查询模式组数据进行比对;
若任意一个中间查询模式组数据包括Z个中间查询模式组数据中的所述表连接信息、所述表统计信息和所述列统计信息,则将所述Z个中间查询模式组数据合并至所述任意一个中间查询模式组数据,直至将所述多个中间查询模式组数据合并完成,进而得到所述多个查询模式组数据;Z为大于等于1的整数。
上述方案中,所述对所述多个待计算数据进行计算处理,结合所述多个数据模型信息得到所述多个预备数据,包括:
对所述多个待计算数据进行计算得到多个中间预备数据;
将每个中间预备数据与对应的数据模型信息中包括的所述选取表的建议类信息和所述选取列的建议类信息进行绑定,进而形成所述多个预备数据。
本发明实施例还提供了一种OLAP预计算模型建模方法,包括:
解析获取的多个历史查询语句,得到多个查询模式数据;
根据所述多个查询模式数据之间的相似度及业务属性,将所述多个查询模式数据分为多个查询模式组数据;
将所述多个查询模式组数据进行转化处理,得到多个数据模型信息;数据模型信息包括:对应历史查询语句表征的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息。
本发明实施例还提供了一种数据查询装置,包括:
数据获取单元,用于获取查询节点发送的查询语句;
查询反馈单元,用于通过所述查询语句在数据库的多个映射关系中查找到对应的目标数据,并将所述目标数据反馈给所述查询节点;其中,
所述数据库中存储有多个预备数据和多个历史查询语句的所述多个映射关系,每个预备数据是从对应数据模型信息中提取到的;所述数据模型信息是基于对应历史查询语句处理得到的,数据模型信息包括:对应历史查询语句表征的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息。
本发明实施例还提供了一种OLAP预计算模型建模装置,包括:
解析单元,用于解析获取的多个历史查询语句,得到多个查询模式数据;每个查询模式数据中包括:对应历史查询语句表征的表连接信息、表统计信息和列统计信息;
分组单元,用于根据所述多个查询模式数据之间的相似度及业务属性,将所述多个查询模式数据分为多个查询模式组数据;
处理单元,用于将所述多个查询模式组数据进行转化处理,得到多个数据模型信息;数据模型信息包括:对应历史查询语句表征的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息。
本发明实施例还提供了一种数据查询装置,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现上述方法中的步骤。
本发明实施例中,通过获取查询节点发送的查询语句;通过查询语句在数据库的多个映射关系中查找到对应的目标数据,并将目标数据反馈给查询节点;数据库中存储有多个预备数据和多个历史查询语句的多个映射关系,每个预备数据是从对应数据模型信息中提取到的;数据模型信息是基于对应历史查询语句处理得到的,数据模型信息包括:对应历史查询语句表征的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息。由于本方案中服务器预先根据历史查询语句处理得到的数据模型信息计算出预备数据,进而建立了多个预备数据的映射关系,当接收到查询语句时,可以根据该映射关系查找到对应的该查询语句的目标数据,节省了计算时间,进而提高了查询数据的效率。
附图说明
图1为本发明实施例提供的数据查询方法的一个可选的流程示意图;
图2为本发明实施例提供的数据查询方法的一个可选的效果示意图;
图3为本发明实施例提供的数据查询方法的一个可选的效果示意图;
图4为本发明实施例提供的数据查询方法的一个可选的流程示意图;
图5为本发明实施例提供的数据查询方法的一个可选的流程示意图;
图6为本发明实施例提供的数据查询方法的一个可选的流程示意图;
图7为本发明实施例提供的数据查询方法的一个可选的流程示意图;
图8为本发明实施例提供的数据查询方法的一个可选的流程示意图;
图9为本发明实施例提供的OLAP预计算模型建模方法的一个可选的流程示意图;
图10为本发明实施例提供的数据查询装置的结构示意图;
图11为本发明实施例提供的数据查询装置的一种硬件实体示意图;
图12为本发明实施例提供的OLAP预计算模型建模装置的结构示意图;
图13为本发明实施例提供的OLAP预计算模型建模装置的一种硬件实体示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明的技术方案进一步详细阐述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
如果发明文件中出现“第一/第二”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
图1为本发明实施例提供的数据查询方法的一个可选的流程示意图,将结合图1示出的步骤进行说明。
S101、获取查询节点发送的查询语句。
本发明实施例中,服务器获取查询节点发送的查询语句。
本发明实施例中,服务器可以获取客户端或者终端发送的结构化查询语句(Structured Query Language,SQL)。
本发明实施例中,服务器的数据库中可以预存多个查询语句对应的预备数据。
本发明实施例中,示例性的,查询语句可以查询一个月以内北京所有区域的销售总额,也可以查询一个月以内全国销售总额表等等。
本发明实施例中,查询语句也可以为其他格式的查询语句,本发明实施例中不做限制。
S102、通过查询语句在数据库的多个映射关系中查找到对应的目标数据,并将目标数据反馈给查询节点;其中,数据库中存储有多个预备数据和多个历史查询语句的多个映射关系,每个预备数据是从对应数据模型信息中提取到的;数据模型信息是基于对应的历史查询语句处理得到的。
本发明实施例中,服务器通过查询语句在数据库的多个映射关系中查找到对应的目标数据,并将目标数据反馈给查询节点。其中,数据库中存储有多个预备数据和多个历史查询语句的多个映射关系,每个预备数据对应数据模型信息中提取到的;数据模型信息是基于对应的历史查询语句处理得到的。
其中,数据模型信息包括:对应历史查询语句表征的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息。
本发明实施例中,服务器可以将查询语句与多个映射关系中的多个历史查询语句进行匹配,确定出与所述查询语句匹配的历史查询语句对应的预备数据为目标数据。本发明实施例中,服务器可以将该目标数据对应的历史查询语句和数据模型信息一并发送给查询节点。
本发明实施例,服务器可以获取多个历史查询语句,对多个历史查询语句进行解析,得到多个查询模式数据。再将多个查询模式组数据按照相似度合并,得到多个查询模式组数据。服务器再处理多个查询模式组数据得到多个数据模型信息。服务器根据每个数据模型信息在架构底层的数据库中提取出对应的待计算数据,进行计算得到每个数据模型信息对应预备数据。服务器再建立每个预备数据与对应的查询模式组数据的至少一个历史查询语句的映射关系,进而得到多个映射关系。服务器将多个映射关系存储在数据库中。本发明实施例中所述数据库能够用于存储数据表结构(包括表的含义、表列名、行名等等)。
其中,查询模式组数据中包括:对应的至少一个历史查询语句表征的表连接信息、表统计信息和列统计信息的集合。每个查询模式组数据对应至少一个历史查询语句。
本发明实施例中,服务器可以对待计算数据进行求和、求平均值和排序的计算操作。
本发明实施例中,通过获取查询节点发送的查询语句;通过所述查询语句在数据库的多个映射关系中查找到对应的目标数据,并将所述目标数据反馈给所述查询节点;其中,所述数据库中存储有多个预备数据和多个历史查询语句的多个映射关系,每个预备数据都是基于对应的历史查询语句处理得到的数据模型信息,进行提取数据计算得到的。由于本方案中服务器预先根据历史查询语句处理得到的数据模型信息计算出预备数据,进而建立了多个预备数据的映射关系,当接收到查询语句时,可以根据该映射关系查找到对应的该查询语句的目标数据,节省了计算时间,进而提高了查询数据的效率。
在一些实施例中,参见图2,图2为本发明实施例提供的数据查询方法的一个可选的流程示意图,图1示出的S102之前还包括:S103至S105实现,将结合各步骤进行说明。
S103、获取多个历史查询语句,并对多个历史查询语句进行处理,得到多个查询模式组数据。
本发明实施例中,服务器获取多个历史查询语句,并对多个历史查询语句进行处理,得到多个查询模式组数据。
本发明实施例中,服务器对多个历史查询语句进行解析,得到多个历史查询语句分别对应的查询模式数据。其中,查询模式数据中包括:对应历史查询语句表征的表连接信息、表统计信息和列统计信息。服务器再按照多个查询模式数据中的表连接信息、表统计信息和列统计信息的相似度,对多个查询模式数据进行分组合并处理,进而得到多个查询模式组数据。
其中,每个查询模式组数据对应至少一个历史查询语句。
本发明实施例中,服务器获取多个历史查询语句,通过SQL解析器对多个历史查询语句进行解析,选择抽取每个历史查询语句表连接信息、表统计信息和列统计信息。服务器选择某种数据结构(可以为json数据结构)存储每条历史查询语句对应的表连接信息、表统计信息和列统计信息,作为查询模式数据。服务器再将多个查询模式数据按照相似度,进行分组合并,进而得到多个查询模式组数据。
本发明实施例中,表连接信息表征对应查询语句中包括的对应连接的至少两个表,表统计信息可以表征某个表出现了多少次,某几个表同时出现了多少次,列统计信息表征某个列出现了多少次,某几个列同时出现了多少次。
S104、利用预设程序处理多个查询模式组数据,得到多个数据模型信息,并利用多个数据模型信息提取出多个待计算数据。
本发明实施例中,服务器利用预设程序处理多个查询模式组数据,得到多个数据模型信息,并利用多个数据模型信息提取出多个待计算数据。
本发明实施例中,服务器利用预设程序对每个查询模式组数据进行计算,得到每个查询模式组数据对应的数据模型信息。其中,数据模型信息包括:对应查询模式组数据的至少一个历史查询语句表征的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息。
示例性的,表的连接建议类信息可以为表table_1和表table_2通过INNER JOIN的方式连接,连接键为table_1.key和table_2.key。选取表的建议类信息可以为表table_1。选取列的建议类信息可以为表table_1中的A列。其中,表table_1可以为事实表,表table_2可以为维度表。
本发明实施例中,服务器可以按照表的连接建议类信息、选取表的建议类信息、选取列的建议类信息在底层数据库中提取出对应的表、列数据,作为待计算数据。
S105、对多个待计算数据进行计算处理,结合多个数据模型信息得到多个预备数据,建立每个预备数据与对应的至少一个历史查询语句的映射关系,进而得到多个预备数据的多个映射关系,并将多个映射关系存储在数据库。
本发明实施例中,服务器对多个待计算数据进行计算处理,结合多个数据模型信息得到多个预备数据,建立每个预备数据与对应的至少一个历史查询语句的映射关系,进而得到多个预备数据的多个映射关系,并将多个映射关系存储在数据库。
本发明实施例中,服务器对每个待计算数据可以分别进行不同的计算,进而得到的对应不同计算的预备数据。服务器可以将该待计算数据对应的数据模型信息添加进对应预备数据。服务器建立预备数据与对应的至少一个历史查询语句的映射关系,进而得到多个映射关系。
本发明实施例中,服务器对多个历史查询语句进行处理,得到包括了多个历史查询语句中查询信息的多个查询模式组数据,并根据查询模式组数据中的查询信息提取出多个待计算数据,进而计算得到预备数据。由于本方案中的查询模式组数据中包含了对应的至少一个历史查询语句中的查询信息,再通过该查询模式组数据,进行处理得到对应的预备数据,所以该预备数据与对应的历史查询语句更加匹配,而且由于预备数据是预先计算存储的,所以更加节省了查询数据的时间,提高了查询效率。
在一些实施例中,参见图3,图3为本发明实施例提供的数据查询方法的一个可选的流程示意图,图2示出的S103可以通过S106至S107实现,将结合各步骤进行说明。
S106、解析多个历史查询语句,得到对应每个历史查询语句的至少一个查询模式数据,进而得到多个查询模式数据。
本发明实施例中,服务器解析多个历史查询语句,得到对应每个历史查询语句的至少一个查询模式数据,进而得到多个查询模式数据。
本发明实施例中,SQL查询语句可以为SELECT***FROM***(WHERE***GROUP BY***。当一条SQL查询中涉及嵌套的多个SELECT***(FROM***语法结构,可以通过解析转化为多个查询模式。
S107、利用每个查询模式数据中包括的表连接信息、表统计信息和列统计信息对多个查询模式数据进行分组合并,得到多个查询模式组数据。
本发明实施例中,服务器利用每个查询模式数据中包括的表连接信息、表统计信息和列统计信息对多个查询模式数据进行分组合并,得到多个查询模式组数据。
本发明实施例中,服务器按照多个查询模式数据中的表连接信息、表统计信息和列统计信息分别对应的相同或者相似性,对多个查询模式数据进行分组合并,得到多个查询模式组数据。
本发明实施例中,服务器可以将具有相同的或者相似的表连接信息的多个查询模式数据分为一组,服务器可以将具有相同的或者相似的表统计信息和列统计信息的查询模式数据分为一组,直至多个查询模数据分组完成,得到多个查询模式组数据。
本发明实施例中,服务器提取多个历史查询语句中的查询信息,进行合并分组处理,得到多个查询模式组数据,进而使得每个查询模式组数据中都包括对应的至少一个历史查询语句对应的查询信息,所以通过该查询模式组数据得到的预备数据与少一个历史查询语句更加匹配,使得查询数据的准确性提高。
在一些实施例中,参见图4,图4为本发明实施例提供的数据查询方法的一个可选的流程示意图,图3示出的S107可以通过S108至S109实现,将结合各步骤进行说明。
S108、根据多个查询模式数据中包括的表连接信息、表统计信息和列统计信息之间相似度,及其对应的业务属性,将多个查询模式数据分为多个中间查询模式组数据。
本发明实施例中,服务器可以根据多个查询模式数据中包括的表连接信息、表统计信息和列统计信息之间的相似度,及其对应的业务属性,将多个查询模式数据分为多个中间查询模式组数据。
本发明实施例中,服务器可以将包括相同的表连接信息的多个查询模式数据分为一组。服务器可以将包括相似的表连接信息,且包括相同的表统计信息和列统计信息的多个查询模式数据分为一组。服务器还可以将包括相似的表连接信息,且包括相似的表统计信息、列统计信息的多个查询模式数据分为一组。在分组的过程中,服务器还需要考虑分为一组的多个查询模式数据中的表连接信息、表统计信息和列统计信息的业务属性是否一致,若一致则进行分组,若不一致,服务器需要剔除不一致的查询模式数据。
其中,相似的表连接信息表征多个查询模式数据中的表连接信息存在至少一个表名称相同的情况。相似的表统计信息和列统计信息表征多个查询模式数据中的表统计信息和列统计信息,存在至少一个表和至少一个列的统计次数相同的情况。
本发明实施例中,服务器多个查询模式数据中包含信息的业务属性将多个查询模式数据分为多个中间查询模式组数据。也就是可以根据每个列统计信息的度量或维度信息在不同查询模式数据中是否冲突来确定是否能够被分为一组。示例性的,一个查询模式数据表征查询一个月以内北京所有区域的销售总额”另一个查询模式数据表征“计算一个月有多少天”,其中“月”这个时间维度列在这两个业务查询中分别为度量性质(即需要通过聚合函数计算得到的值)和维度性质,度量和维度性质冲突,查询的业务信息相差较大,不能被归为同一中间查询模式组数据。
S109、根据多个中间查询模式组数据中包括的表连接信息进行合并,进而得到多个查询模式组数据。
本发明实施例中,服务器根据多个中间查询模式组数据中包括的表连接信息进行合并,进而得到多个查询模式组数据。
本发明实施例中,服务器可以根据多个中间查询模式组数据中包括的表连接信息是否相同,可以将某些中间查询模式组数据合并至一个中间查询模式组数据中,进而得到多个查询模式组数据。其中,服务器在合并得到多个查询模式组数据时可以根据预定业务需求限制进行合并。
本发明实施例中,服务器先将多个查询模式数据分为多个中间查询模式组数据,再根据多个中间查询模式组数据中包括的表连接信息进行合并,进而得到多个查询模式组数据。有效的减少了多余的查询模式组数据,减少了计算量,进而也提高了查询效率。
在一些实施例中,参见图5,图5为本发明实施例提供的数据查询方法的一个可选的流程示意图,图4示出的S108可以通过S110至S112实现,将结合各步骤进行说明。
S110、在M个查询模式数据中确定出,N个包含了相同的表连接信息,相同的表统计信息和相同的列统计信息的第一组查询模式数据,并根据第一组查询模式数据中包含信息的业务属性将其分为一组。
本发明实施例中,多个查询模式数据包括:M个查询模式数据,M为大于1的整数。服务器在M个查询模式数据中确定出,N个包含了相同的表连接信息,相同的表统计信息和相同的列统计信息的第一组查询模式数据,并根据第一组查询模式数据中包含信息的业务属性将其分为一组。N为大于1小于M的整数。
本发明实施例中,查询模式数据1可以包括表table_1和表table_2通过INNERJOIN的方式连接(表连接信息),表table_1出现2次,表table_1中的A列出现1次。查询模式数据2可以包括表table_1和表table_3通过INNER JOIN的方式连接(表连接信息),表table_1出现5次,表table_1中的A列出现1次。查询模式数据3可以包括表table_1和表table_2通过INNER JOIN的方式连接(表连接信息),表table_1出现2次,表table_1中的A列出现1次。由于查询模式数据1和查询模式数据3中的表连接信息,表统计信息、列统计信息完全相同,且服务器检测到查询模式数据1和查询模式数据3中的表连接信息,表统计信息、列统计信息之间的业务属性一致,进而服务器可以将查询模式数据1和查询模式数据3分为一组。
S111、在M-N个查询模式数据中确定出,K个包含相同的表连接信息,部分相同的表统计信息和部分相同的列统计信息的第二组查询模式数据,并根据第二组查询模式数据中包含信息的业务属性将其分为一组。
本发明实施例中,服务器在在M-N个查询模式数据中确定出,K个包含相同的表连接信息,部分相同的表统计信息和部分相同的列统计信息的查询模式数据,并根据第二组查询模式数据中包含信息的业务属性将其分为一组。K为大于1小于M的整数。
本发明实施例中,查询模式数据1可以包括表table_1和表table_2通过INNERJOIN的方式连接(表连接信息),表table_1出现2次,表table_1中的A列出现1次。查询模式数据2可以包括表table_1和表table_2通过INNER JOIN的方式连接(表连接信息),表table_1出现2次,表table_2出现2次,表table_1中的A列出现1次,表table_1中的B列出现1次。由于,查询模式数据1与查询模式数据2中的表连接信息相同,表统计信息部分相同,列统计信息部分相同且服务器检测到查询模式数据1和查询模式数据2中的表连接信息,表统计信息、列统计信息之间的业务属性一致,进而服务器可以将将查询模式数据1和查询模式数据2分为一组。
S112、在M-N-K个查询模式数据中确定出,T个包含部分相同的表连接信息,部分相同的表统计信息和部分相同的列统计信息的第三组查询模式数据,并根据第三组查询模式数据中包含信息的业务属性将其分为一组,直至将M个查询模式数据分组完成,得到多个中间查询模式组数据。
本发明实施例中,服务器在M-N-K个查询模式数据中确定出,T个包含部分相同的表连接信息,部分相同的表统计信息和部分相同的列统计信息的第三组查询模式数据,并根据第三组查询模式数据中包含信息的业务属性将其分为一组,直至将M个查询模式数据分组完成,得到多个中间查询模式组数据。T为大于1小于M的整数。
本发明实施例中,服务器根据多个查询模式数据中的表连接信息,表统计信息和列统计信息的查询模式数据的相同和相似性,将其分为多个中间查询模式组数据,有效的减少了查询信息集合的数量,进而计算数据模型信息的计算量也减少了,提高了查询效率。
在一些实施例中,参见图6,图6为本发明实施例提供的数据查询方法的一个可选的流程示意图,图4示出的S108至S119可以通过S113至S117实现,将结合各步骤进行说明。
S113、根据多个查询模式数据中包括的表连接信息、表统计信息和列统计信息,确定出多个查询模式数据的多个向量。
本发明实施例中,服务器可以根据查询模式数据中包括的表连接信息、表统计信息和列统计信息,确定出多个查询模式数据的多个向量。
本发明实施例中,服务器可以将每个表进行数值化(也就是确定相同的表为同一数值),每个列进行数值化(也就是确定相同的列为同一数值),根据查询模式数据每个表的出现次数,以及每个列的出现次数确定出该查询模式数据的向量。
示例性的,列统计信息可以用字典存储时:{“1”:1,“2”:4}代表这个列在命名为“1”的查询中涉及了1次,在命名为“2”的查询中涉及了4次。进而确定该列的向量:[1,4]。服务器还可以用同样的方式确定出所属查询模式数据中表的向量,进行组合,进而得到该查询模式数据的向量。
本发明实施例中,服务器还可以多个查询模式数据输入向量转化算法中,确定出多个查询模式数据的多个向量。
S114、利用预定的聚类算法,将多个向量进行分组。
本发明实施例中,服务器利用预定的聚类算法,将多个向量进行分组。
其中,预定的聚类算法可以为支持向量机分类算法(Support Vector Machine,SVM)。本发明实施例中,不对预定的聚类算法做具体的限制。
S115、将多个查询模式数据,按照对应的多个向量的分组方式,结合业务属性分为多个中间查询模式组数据。
本发明实施例中,服务器将多个查询模式数据,按照对应的多个向量的分组方式,结合业务属性分为多个中间查询模式组数据。
本发明实施例中,由于多个查询模式数据与多个向量是一一对应的,所以服务器可以按照多个向量的分组方式,将多个查询模式数据进行分组。进而得到多个查询模式组数据。
S116、将每个中间查询模式组数据,与其他中间查询模式组数据进行比对。
本发明实施例中,服务器将每个中间查询模式组数据,与其他中间查询模式组数据进行比对。
S117、若任意一个中间查询模式组数据包括Z个中间查询模式组数据中的表连接信息、表统计信息和列统计信息,则将Z个中间查询模式组数据合并至任意一个中间查询模式组数据,直至将多个中间查询模式组数据合并完成,进而得到多个查询模式组数据。
本发明实施例中,若任意一个中间查询模式组数据包括Z个中间查询模式组数据中的表连接信息、表统计信息和列统计信息,则将Z个中间查询模式组数据合并至任意一个中间查询模式组数据,直至将多个中间查询模式组数据合并完成,进而得到多个查询模式组数据。
示例性的,存在十个中间查询模式组数据。其中,第1个中间查询模式组数据包括第2、5和7个中间查询模式组数据中的表连接信息、表统计信息和列统计信息。则服务器将第2、5和7个中间查询模式组数据合并至第1中间查询模式组数据中,得到一个查询模式组数据。服务器在将第3个中间查询模式组数据与剩余的未合并的中间查询模式组数据进行比对,直至将多个中间查询模式组数据合并完成,进而得到多个查询模式组数据。
本发明实施例中,服务器在进行多个中间查询模式组数据的合并时,也需要遵循各自对应的业务属性是否一致的预定规则。
本发明实施例中,服务器将多个查询模式数据进行向量化,进而得到了多个查询模式组数据,再利用多个查询模式组数据中表连接信息的相似性,适应性的将其合并,一定程度上减少了计算量,节省了时间,进而提高了计算效率。
在一些实施例中,参见图7,图7为本发明实施例提供的数据查询方法的一个可选的流程示意图,图2示出的S105可以通过S118至S119实现,将结合各步骤进行说明。
S118、对多个待计算数据进行计算得到多个中间预备数据。
本发明实施例中,服务器对多个待计算数据进行计算得到多个中间预备数据。
本发明实施例中,服务器对每个待计算数据分别进行不同计算方式的计算,进而可以得到对应该待计算数据不同计算方式的中间预备数据。
S119、将每个中间预备数据与对应的数据模型信息中包括的选取表的建议类信息和选取列的建议类信息进行绑定,进而形成多个预备数据,建立每个预备数据与对应的至少一个历史查询语句的映射关系,进而得到多个预备数据的多个映射关系,并将多个映射关系存储在数据库。
本发明实施例中,服务器每个中间预备数据与对应的数据模型信息中包括的选取表的建议类信息和选取列的建议类信息进行绑定,进而形成多个预备数据,建立每个预备数据与对应的至少一个历史查询语句的映射关系,进而得到多个预备数据的多个映射关系,并将多个映射关系存储在数据库。
其中,对应的数据模型信息是:中间预备数据对应的待计算数据的数据模型信息。由于数据模型信息是由对应的查询模式组数据计算得到的,查询模式组数据又对应至少一个历史查询语句,则服务器可以建立预备数据与对应的至少一个历史查询语句的映射关系。
本发明实施例中,服务器获取到查询语句之后,将该查询语句与每个映射关系中的至少一个历史查询语句进行匹配。也就是,服务器将该查询语句的查询条件与每个映射关系中的至少一个历史查询语句的查询条件进行匹配,若第*个映射关系中存在与查询语句匹配的历史查询语句,则服务器将该第*个映射关系中的预备数据确定为目标数据。
在一些实施例中,参见图8,图8为本发明实施例提供的数据查询方法的一个可选的流程示意图,将结合各步骤进行说明。
S201、历史查询语句解析结果。
本发明实施例中,服务器对获取的历史查询语句进行解析,得到对应的解析结果。
S202、查询模式数据获取合并。
服务器根据构建数据模型需要的信息进行查询模式数据的构建,例如,使用SQL解析器等方式对历史查询的SQL语句进行处理,选择抽取表的连接信息和表、列的统计信息,选择某种数据结构存储每条SQL对应的表和列的信息,作为查询模式。可选地,当一条SQL查询中涉及嵌套的一个或多个SELECT...FROM..语法结构,可以抽取转化为多个查询模式数据。
相同或相似的查询模式数据可以被分到一组,作为一个查询模式组数据。对于每个SQL查询,一般为SELECT...FROM..(WHERE...GROUP BY)...:对于FROM...语法部分,一般地,服务器得到包含了表连接信息的查询模式数据,例如,FROM table_1INNER JOINtable_2ON table_1.key=table_2.key,其中表table_1和表table_2通过INNER JOIN的方式被连接,连接键为table_1.key和table_2.key,转化为的查询模式数据中,包含了连接的表和列的信息、连接的方式,以及table_1作为事实表、table_2作为维度表的性质。对于其他语法部分,一般地,服务器可以得到包含了表、列统计信息的查询模式数据,例如,对于SELECT/FROM/WHERE/GROUP BY...等语法结构后面的列进行次数统计,对于FROM语法结构后面的表进行次数统计,转化为的查询模式数据中,包含了表和列的统计信息。
具有相同或相似表连接方式的查询模式数据可以被分到一组;含有相同或相似统计信息的表或列的查询模式数据可以被分到一组。可选地,根据实际业务需求限制,可以根据每个列的度量或维度信息在不同查询模式数据中是否冲突来添加不能被分为一组查询模式数据的限制。
可选地,将表连接信息、表或列的统计信息进行数值化,与具体的SQL语句对应、进行向量化、作为每条SQL的特征,选取聚类算法对这些特征进行聚类,得到多个查询模式组数据。可选地,在已知业务需求的情况下,规定分类标准,选择某种分类算法对这些特征进行分类,得到多个查询模式组数据。例如,一个业务部门的查询经常涉及“查询一个月以内北京所有区域的销售总额”“查询两个月以内北京所有区域的销售总额”“查询三个月以内北京所有区域的销售总额”,极少情况下会涉及“查询一个月以内北京和天津所有区域的销售总额”,那么可以规定分类标准,不将最后一种查询认为是和前面查询相同查询模式组数据的查询,从而可以进行更好的分类,避免虽然根据某种业务逻辑进行分类,但是因为后续新的业务查询涉及这种业务逻辑较少,因此查询模式组数据没有用的情况。
S203、查询模式组数据合并。
服务器对于一个查询模式组数据,在每次判断是否添加新的查询模式数据时,通过是否拥有相同或相似的表连接方式、是否拥有相同或相似的统计信息、是否拥有冲突信息来判断查询模式数据间是否可以合并。在每次判断结束后,进行查询模式组数据的更新,例如,对表连接方式相同或相似的查询模式数据,将不涉及的表或列的统计信息添加到查询模式组数据。可选地,每次更新对重复的查询模式进行删除。
服务器对于分类后得到的多个查询模式组数据,可选地,当存在希望用尽量少的查询模式组数据覆盖更多的历史查询语句时,可以选择进行查询模式组数据的合并:例如,当一个查询模式组数据的全部表连接信息可以被包含在另一个查询模式组数据内,且表或列的性质信息不存在设定的冲突时,可以将前者合并到后者,取涉及的所有表或列信息的并集,达到更少的查询模式组数据覆盖更多的历史查询的目的。
S204、数据模型转换。
服务器对于得到的查询模式组数据,根据业务需要转化得到数据模型信息。一般地,每个查询模式组数据对应一个数据模型信息。每个数据模型信息。包含了表的连接建议、选取的表的建议、选取的列的建议。
S205、数据模型构建推荐。
在OLAP技术中,多个数据模型信息将给到“数据立方体”的构建阶段,立方体将根据多个数据模型信息,进行后续的构建。
以上,完成了从历史查询语句到构建OLAP预计算模型构建的过程。再结合数据模型信息中包括的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息处理得到预备数据,以得到数据模型的构建推荐。
在一些实施例中,参见图9,图9为本发明实施例提供的OLAP预计算模型建模方法的一个可选的流程示意图,将结合各步骤进行说明。
S301、解析获取的多个历史查询语句,得到多个查询模式数据。
本发明实施例中,服务器对获取的多个历史查询语句进行解析,得到多个历史查询语句分别对应的查询模式数据。其中,查询模式数据中包括:对应历史查询语句表征的表连接信息、表统计信息和列统计信息。
S302、根据多个查询模式数据之间的相似度及业务属性,将多个查询模式数据分为多个查询模式组数据。
本发明实施例中,服务器根据多个查询模式数据之间的相似度及业务属性,将多个查询模式数据分为多个查询模式组数据。
本发明实施例中,服务器可以将包括相同的表连接信息的多个查询模式数据分为一组。服务器可以将包括相似的表连接信息,且包括相同的表统计信息和列统计信息的多个查询模式数据分为一组。服务器还可以将包括相似的表连接信息,且包括相似的表统计信息、列统计信息的多个查询模式数据分为一组。在分组的过程中,服务器还需要考虑分为一组的多个查询模式数据中的表连接信息、表统计信息和列统计信息的业务属性是否一致,若一致则进行分组,若不一致,服务器需要剔除不一致的查询模式数据。
S303、将多个查询模式组数据进行转化处理,得到多个数据模型信息;数据模型信息包括:对应历史查询语句表征的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息。
本发明实施例中,服务器将多个查询模式组数据进行转化处理,得到多个数据模型信息;数据模型信息包括:对应历史查询语句表征的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息。
本发明实施例中,服务器利用预设程序处理多个查询模式组数据,根据业务需要处理得到预定数据格式的多个数据模型信息。
在一些实施例中,参见图10,图10为本发明实施例提供的数据查询装置的结构示意图。
本发明实施例还提供了一种数据查询装置,包括:数据获取单元803和查询反馈单元804。
数据获取单元803,用于获取查询节点发送的查询语句;
查询反馈单元804,用于通过所述查询语句在数据库的多个映射关系中查找到对应的目标数据,并将所述目标数据反馈给所述查询节点;其中,
所述数据库中存储有多个预备数据和多个历史查询语句的所述多个映射关系,每个预备数据是从对应。所述数据模型信息是基于对应历史查询语句处理得到的;数据模型信息包括:对应历史查询语句表征的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息。
本发明实施例中,数据查询装置800中的数据获取单元803用于获取所述多个历史查询语句,并对所述多个历史查询语句进行处理,得到多个查询模式组数据;其中,每个查询模式组数据对应至少一个历史查询语句;数据查询装置800利用预设程序处理所述多个查询模式组数据,得到多个数据模型信息,并利用所述多个数据模型信息提取出多个待计算数据;对所述多个待计算数据进行计算处理,结合所述多个数据模型信息得到所述多个预备数据,建立每个预备数据与对应的所述至少一个历史查询语句的所述映射关系,进而得到所述多个预备数据的多个映射关系,并将所述多个映射关系存储在所述数据库。
本发明实施例中,数据查询装置800解析所述多个历史查询语句,得到对应每个历史查询语句的至少一个查询模式数据,进而得到多个查询模式数据;每个查询模式数据中包括:对应历史查询语句表征的表连接信息、表统计信息和列统计信息;利用所述每个查询模式数据中包括的所述表连接信息、所述表统计信息和所述列统计信息对所述多个查询模式数据进行分组合并,得到所述多个查询模式组数据。
本发明实施例中,数据查询装置800根据所述多个查询模式数据中包括的所述表连接信息、所述表统计信息和所述列统计信息分别之间的相似度,及其对应的业务属性,将所述多个查询模式数据分为多个中间查询模式组数据;根据所述多个中间查询模式组数据中包括的所述表连接信息进行合并,进而得到所述多个查询模式组数据。
本发明实施例中,所述多个查询模式数据包括:M个查询模式数据;M为大于1的整数;数据查询装置800在所述M个查询模式数据中确定出,N个包含了相同的所述表连接信息,相同的所述表统计信息和相同的所述列统计信息的第一组查询模式数据,并根据第一组查询模式数据中包含信息的业务属性将其分为一组;N为大于1小于M的整数;在M-N个查询模式数据中确定出,K个包含相同的所述表连接信息,部分相同的所述表统计信息和部分相同的所述列统计信息的第二组查询模式数据,并根据第二组查询模式数据中包含信息的业务属性将其分为一组;K为大于1小于M的整数;在M-N-K个查询模式数据中确定出,T个包含部分相同的所述表连接信息,部分相同的所述表统计信息和部分相同的所述列统计信息的第三组查询模式数据,并根据第三组查询模式数据中包含信息的业务属性将其分为一组,直至将所述M个查询模式数据分组完成,得到所述多个中间查询模式组数据;T为大于1小于M的整数。
本发明实施例中,数据查询装置800根据所述多个查询模式数据中包括的所述表连接信息、所述表统计信息和所述列统计信息,确定出所述多个查询模式数据的多个向量;利用预定的聚类算法,将所述多个向量进行分组;将所述多个查询模式数据,按照对应的所述多个向量的分组方式,结合所述业务属性分为所述多个中间查询模式组数据。
本发明实施例中,数据查询装置800将每个中间查询模式组数据,与其他中间查询模式组数据进行比对;若任意一个中间查询模式组数据包括Z个中间查询模式组数据中的所述表连接信息、所述表统计信息和所述列统计信息,则将所述Z个中间查询模式组数据合并至所述任意一个中间查询模式组数据,直至将所述多个中间查询模式组数据合并完成,进而得到所述多个查询模式组数据;Z为大于等于1的整数。
本发明实施例中,数据查询装置800对所述多个待计算数据进行计算得到多个中间预备数据;将每个中间预备数据与对应的数据模型信息中包括的所述选取表的建议类信息和所述选取列的建议类信息进行绑定,进而形成所述多个预备数据。
本发明实施例中,数据查询装置800中的数据获取单元803,用于获取查询节点发送的查询语句;查询反馈单元804,用于通过所述查询语句在数据库的多个映射关系中查找到对应的目标数据,并将所述目标数据反馈给所述查询节点;所述数据库中存储有多个预备数据和多个历史查询语句的所述多个映射关系,每个预备数据是从对应数据模型信息中提取到的;其中,所述数据模型信息是基于对应历史查询语句处理得到的,数据模型信息包括:对应历史查询语句表征的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息。
由于本方案中服务器预先根据历史查询语句处理得到的数据模型信息计算出预备数据,进而建立了多个预备数据的映射关系,当接收到查询语句时,可以根据该映射关系查找到对应的该查询语句的目标数据,节省了计算时间,进而提高了查询数据的效率。
需要说明的是,本发明实施例中,如果以软件功能模块的形式实现上述的数据查询方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台数据查询装置(可以是个人计算机等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。
对应地,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的步骤。
对应地,本发明实施例提供一种数据查询装置800,包括第一存储器802和第一处理器801,所述第一存储器802存储有可在第一处理器801上运行的计算机程序,所述第一处理器801执行所述程序时实现上述方法中的步骤。
这里需要指出的是:以上存储介质和装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明存储介质和装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。
需要说明的是,图11为本发明实施例提供的数据查询装置的一种硬件实体示意图,如图11所示,该数据查询装置800的硬件实体包括:第一处理器801和第一存储器802,其中;
第一处理器801通常控制数据查询装置800的总体操作。
第一存储器802配置为存储由第一处理器801可执行的指令和应用,还可以缓存待第一处理器801以及数据查询装置800中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。在一些实施例中,参见图12,图12为本发明实施例提供的一种OLAP预计算模型建模装置的结构示意图。
本发明实施例还提供了一种OLAP预计算模型建模装置900,包括:
解析单元903,用于解析获取的多个历史查询语句,得到多个查询模式数据;每个查询模式数据中包括:对应历史查询语句表征的表连接信息、表统计信息和列统计信息;
分组单元904,用于根据所述多个查询模式数据之间的相似度及业务属性,将所述多个查询模式数据分为多个查询模式组数据;
处理单元905,用于将所述多个查询模式组数据进行转化处理,得到多个数据模型信息;数据模型信息包括:对应历史查询语句表征的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息。
本发明实施例中,通过解析单元903,用于解析获取的多个历史查询语句,得到多个查询模式数据;每个查询模式数据中包括:对应历史查询语句表征的表连接信息、表统计信息和列统计信息;通过分组单元904,用于根据所述多个查询模式数据之间的相似度及业务属性,将所述多个查询模式数据分为多个查询模式组数据;通过处理单元905,用于将所述多个查询模式组数据进行转化处理,得到多个数据模型信息;数据模型信息包括:对应历史查询语句表征的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息。由于本方案中服务器预先根据历史查询语句处理得到的数据模型信息,进而可以通过数据模型信息进而建立多个映射关系,当接收到查询语句时,可以根据该映射关系查找到对应的该查询语句的目标数据,节省了计算时间,进而提高了查询数据的效率。
对应地,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的步骤。
对应地,本发明实施例提供一种OLAP预计算模型建模装置900,包括第二存储器902和第二处理器901,所述第二存储器902存储有可在第二处理器901上运行的计算机程序,所述第二处理器901执行所述程序时实现上述方法中的步骤。
这里需要指出的是:以上存储介质和装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明存储介质和装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。
需要说明的是,图13为本发明实施例提供的数据查询装置的一种硬件实体示意图,如图13所示,该OLAP预计算模型建模装置900的硬件实体包括:第二处理器901和第二存储器902,其中;
第二处理器901通常控制OLAP预计算模型建模装置900的总体操作。
第二存储器902配置为存储由第二处理器901可执行的指令和应用,还可以缓存待第二处理器901以及OLAP预计算模型建模装置900中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储装置、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机、服务器、或者网络装置等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储装置、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (13)
1.一种数据查询方法,其特征在于,包括:
获取查询节点发送的查询语句;
通过所述查询语句在数据库的多个映射关系中查找到对应的目标数据,并将所述目标数据反馈给所述查询节点;其中,
所述数据库中存储有多个预备数据和多个历史查询语句的所述多个映射关系,每个预备数据是从对应数据模型信息中提取到的;所述数据模型信息是基于对应历史查询语句处理得到的,数据模型信息包括:对应历史查询语句表征的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息。
2.根据权利要求1所述的数据查询方法,其特征在于,所述通过所述查询语句在数据库的多个映射关系中查找到对应的目标数据,并将所述目标数据反馈给所述查询节点之前,所述方法还包括:
获取所述多个历史查询语句,并对所述多个历史查询语句进行处理,得到多个查询模式组数据;其中,每个查询模式组数据对应至少一个历史查询语句;
利用预设程序处理所述多个查询模式组数据,得到多个数据模型信息,并利用所述多个数据模型信息提取出多个待计算数据;
对所述多个待计算数据进行计算处理,结合所述多个数据模型信息得到所述多个预备数据,建立每个预备数据与对应的所述至少一个历史查询语句的所述映射关系,进而得到所述多个预备数据的多个映射关系,并将所述多个映射关系存储在所述数据库。
3.根据权利要求2所述的数据查询方法,其特征在于,所述对所述多个历史查询语句进行处理,得到多个查询模式组数据,包括:
解析所述多个历史查询语句,得到对应每个历史查询语句的至少一个查询模式数据,进而得到多个查询模式数据;每个查询模式数据中包括:对应历史查询语句表征的表连接信息、表统计信息和列统计信息;
利用所述每个查询模式数据中包括的所述表连接信息、所述表统计信息和所述列统计信息对所述多个查询模式数据进行分组合并,得到所述多个查询模式组数据。
4.根据权利要求3所述的数据查询方法,其特征在于,所述利用所述每个查询模式数据中包括的所述表连接信息、所述表统计信息和所述列统计信息对所述多个查询模式数据进行分组合并,得到所述多个查询模式组数据,包括:
根据所述多个查询模式数据中包括的所述表连接信息、所述表统计信息和所述列统计信息之间的相似度,及其对应的业务属性,将所述多个查询模式数据分为多个中间查询模式组数据;
根据所述多个中间查询模式组数据中包括的所述表连接信息进行合并,进而得到所述多个查询模式组数据。
5.根据权利要求4所述的数据查询方法,其特征在于,所述多个查询模式数据包括:M个查询模式数据;M为大于1的整数;
所述根据所述多个查询模式数据中包括的所述表连接信息、所述表统计信息和所述列统计信息之间的相似度,及其对应的业务属性,将所述多个查询模式数据分为多个中间查询模式组数据,包括:
在所述M个查询模式数据中确定出,N个包含了相同的所述表连接信息,相同的所述表统计信息和相同的所述列统计信息的第一组查询模式数据,并根据所述第一组查询模式数据中包含信息的业务属性将其分为一组;N为大于1小于M的整数;
在M-N个查询模式数据中确定出,K个包含相同的所述表连接信息,部分相同的所述表统计信息和部分相同的所述列统计信息的第二组查询模式数据,并根据所述第二组查询模式数据中包含信息的业务属性将其分为一组;K为大于1小于M的整数;
在M-N-K个查询模式数据中确定出,T个包含部分相同的所述表连接信息,部分相同的所述表统计信息和部分相同的所述列统计信息的第三组查询模式数据,并根据所述第三组查询模式数据中包含信息的业务属性将其分为一组,直至将所述M个查询模式数据分组完成,得到所述多个中间查询模式组数据;T为大于1小于M的整数。
6.根据权利要求4所述的数据查询方法,其特征在于,所述根据所述多个查询模式数据中包括的所述表连接信息、所述表统计信息和所述列统计信息之间的相似度,及其对应的业务属性,将所述多个查询模式数据分为多个中间查询模式组数据,包括:
根据所述多个查询模式数据中包括的所述表连接信息、所述表统计信息和所述列统计信息,确定出所述多个查询模式数据的多个向量;
利用预定的聚类算法,将所述多个向量进行分组;
将所述多个查询模式数据,按照对应的所述多个向量的分组方式,结合所述业务属性分为所述多个中间查询模式组数据。
7.根据权利要求4所述的数据查询方法,其特征在于,所述根据所述多个中间查询模式组数据中包括的所述表连接信息进行合并,进而得到所述多个查询模式组数据,包括:
将每个中间查询模式组数据,与其他中间查询模式组数据进行比对;
若任意一个中间查询模式组数据包括Z个中间查询模式组数据中的所述表连接信息、所述表统计信息和所述列统计信息,则将所述Z个中间查询模式组数据合并至所述任意一个中间查询模式组数据,直至将所述多个中间查询模式组数据合并完成,进而得到所述多个查询模式组数据;Z为大于等于1的整数。
8.根据权利要求2所述的数据查询方法,其特征在于,所述对所述多个待计算数据进行计算处理,结合所述多个数据模型信息得到所述多个预备数据,包括:
对所述多个待计算数据进行计算得到多个中间预备数据;
将每个中间预备数据与对应的数据模型信息中包括的所述选取表的建议类信息和所述选取列的建议类信息进行绑定,进而形成所述多个预备数据。
9.一种OLAP预计算模型建模方法,其特征在于,包括:
解析获取的多个历史查询语句,得到多个查询模式数据;
根据所述多个查询模式数据之间的相似度及业务属性,将所述多个查询模式数据分为多个查询模式组数据;
将所述多个查询模式组数据进行转化处理,得到多个数据模型信息;数据模型信息包括:对应历史查询语句表征的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息。
10.一种数据查询装置,其特征在于,包括:
数据获取单元,用于获取查询节点发送的查询语句;
查询反馈单元,用于通过所述查询语句在数据库的多个映射关系中查找到对应的目标数据,并将所述目标数据反馈给所述查询节点;其中,
所述数据库中存储有多个预备数据和多个历史查询语句的所述多个映射关系,每个预备数据是从对应数据模型信息中提取到的;所述数据模型信息是基于对应历史查询语句处理得到的,数据模型信息包括:对应历史查询语句表征的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息。
11.一种OLAP预计算模型建模装置,其特征在于,包括:
解析单元,用于解析获取的多个历史查询语句,得到多个查询模式数据;每个查询模式数据中包括:对应历史查询语句表征的表连接信息、表统计信息和列统计信息;
分组单元,用于根据所述多个查询模式数据之间的相似度及业务属性,将所述多个查询模式数据分为多个查询模式组数据;
处理单元,用于将所述多个查询模式组数据进行转化处理,得到多个数据模型信息;数据模型信息包括:对应历史查询语句表征的表的连接建议类信息、选取表的建议类信息、选取列的建议类信息。
12.一种数据查询装置,其特征在于,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至8任一项、9所述方法中的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8任一项、9所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210729529.1A CN114996276A (zh) | 2022-06-24 | 2022-06-24 | Olap预计算模型建模方法、数据查询方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210729529.1A CN114996276A (zh) | 2022-06-24 | 2022-06-24 | Olap预计算模型建模方法、数据查询方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114996276A true CN114996276A (zh) | 2022-09-02 |
Family
ID=83037747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210729529.1A Pending CN114996276A (zh) | 2022-06-24 | 2022-06-24 | Olap预计算模型建模方法、数据查询方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114996276A (zh) |
-
2022
- 2022-06-24 CN CN202210729529.1A patent/CN114996276A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11372851B2 (en) | Systems and methods for rapid data analysis | |
CN110543517B (zh) | 一种基于Elasticsearch实现海量数据复杂查询方法、装置及介质 | |
CN110633292B (zh) | 一种异构数据库的查询方法、装置、介质、设备及系统 | |
CN108292315B (zh) | 储存和检索数据立方体中的数据 | |
US20170193045A1 (en) | Automated creation of join graphs for unrelated data sets among relational databases | |
JP2020500371A (ja) | 意味的検索のための装置および方法 | |
CN112035599B (zh) | 基于垂直搜索的查询方法、装置、计算机设备及存储介质 | |
CN112559554A (zh) | 一种查询语句优化方法及装置 | |
TWI686707B (zh) | 資料庫存取方法及裝置 | |
CN112765282B (zh) | 一种数据联机分析处理方法、装置、设备及存储介质 | |
CN108664509B (zh) | 一种即席查询的方法、装置及服务器 | |
CN109791543B (zh) | 执行多表连接操作的控制方法及对应装置 | |
CN110362593B (zh) | 一种数据查询方法、装置、设备及存储介质 | |
CN111198898B (zh) | 大数据查询方法及大数据查询装置 | |
CN109086376B (zh) | 基于sparql查询语言的多查询方法和装置 | |
CN110909126A (zh) | 一种信息查询方法及装置 | |
CN113641813A (zh) | 基于知识图谱的问答系统、方法、电子设备及存储介质 | |
CN113672653A (zh) | 识别数据库中的隐私数据的方法和装置 | |
CN110874366A (zh) | 数据处理、查询方法和装置 | |
CN110990423B (zh) | Sql语句的执行方法、装置、设备和存储介质 | |
CN111831684B (zh) | 数据的查询方法、装置和计算机可读存储介质 | |
CN114996276A (zh) | Olap预计算模型建模方法、数据查询方法、装置及存储介质 | |
CN110147396B (zh) | 一种映射关系生成方法及装置 | |
CN115510289A (zh) | 一种数据立方体配置方法、装置、电子设备及存储介质 | |
CN114138821A (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 |