CN111221852A - 基于大数据的混合查询处理方法及装置 - Google Patents

基于大数据的混合查询处理方法及装置 Download PDF

Info

Publication number
CN111221852A
CN111221852A CN201811429313.3A CN201811429313A CN111221852A CN 111221852 A CN111221852 A CN 111221852A CN 201811429313 A CN201811429313 A CN 201811429313A CN 111221852 A CN111221852 A CN 111221852A
Authority
CN
China
Prior art keywords
query
mixed
engine
statement
query statement
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
Application number
CN201811429313.3A
Other languages
English (en)
Inventor
刘思源
朱海龙
李铭
徐胜国
徐皓
李铮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201811429313.3A priority Critical patent/CN111221852A/zh
Publication of CN111221852A publication Critical patent/CN111221852A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明公开了一种基于大数据的混合查询处理方法及装置。其中,方法包括:接收输入的特定语言格式的混合查询语句;对混合查询语句进行语法解析,生成混合查询计划,并依据混合查询计划,确定与混合查询计划相对应的至少一个存储引擎和至少一个计算引擎;将查询语句路由至至少一个存储引擎和至少一个计算引擎,以供至少一个存储引擎依据查询语句进行查询处理得到中间查询结果,至少一个计算引擎依据中间查询结果进行计算处理得到最终的查询结果。采用本方案,可实现对跨存储引擎数据的快速处理,操作简单易行,易于大规模应用与实施;并且可将查询语句与存储引擎或计算引擎解耦,降低用户的学习成本,便于查询效率的进一步提升。

Description

基于大数据的混合查询处理方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及一种基于大数据的混合查询处理方法及装置。
背景技术
随着科技及社会的不断发展,各类数据呈井喷式地增长,从而为人们的各类需求提供数据基础。
由于业务需求的多样性,在实际的业务处理过程中,通常需对不同存储引擎中的数据进行联合处理。目前在对不同存储引擎中的数据进行联合处理时,通常需将所需的数据从各个存储引擎中导出至Excel中,并在Excel中对各个存储引擎的输出数据进行处理。然而,该方法操作繁琐,效率低下,尤其不适于海量数据的处理;并且,用户在进行联合处理时,通常需用户根据各个存储引擎的特点编译相应的查询代码,从而加大用户的学习成本,并进一步降低处理效率。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于大数据的混合查询处理方法及装置。
根据本发明的一个方面,提供了一种基于大数据的混合查询处理方法,包括:
接收利用任一种对外调用方式输入的特定语言格式的混合查询语句;
对所述混合查询语句进行语法解析,生成混合查询计划,并依据所述混合查询计划,确定与所述混合查询计划相对应的至少一个存储引擎和至少一个计算引擎;
将所述查询语句路由至所述至少一个存储引擎和至少一个计算引擎,以供所述至少一个存储引擎依据所述查询语句进行查询处理得到中间查询结果,所述至少一个计算引擎依据所述中间查询结果进行计算处理得到最终的查询结果。
根据本发明的另一方面,提供了一种基于大数据的混合查询处理装置,包括:
接收模块,适于接收利用任一种对外调用方式输入的特定语言格式的混合查询语句;
确定模块,适于对所述混合查询语句进行语法解析,生成混合查询计划,并依据所述混合查询计划,确定与所述混合查询计划相对应的至少一个存储引擎和至少一个计算引擎;
处理模块,适于将所述查询语句路由至所述至少一个存储引擎和至少一个计算引擎,以供所述至少一个存储引擎依据所述查询语句进行查询处理得到中间查询结果,所述至少一个计算引擎依据所述中间查询结果进行计算处理得到最终的查询结果。
根据本发明的又一方面,提供了一种计算设备/,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述基于大数据的混合查询处理方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述基于大数据的混合查询处理方法对应的操作。
根据本发明提供的基于大数据的混合查询处理方法及装置,首先接收输入的特定语言格式的混合查询语句;并对混合查询语句进行语法解析,生成混合查询计划,并依据混合查询计划,确定与混合查询计划相对应的至少一个存储引擎和至少一个计算引擎;最终将查询语句路由至至少一个存储引擎和至少一个计算引擎,以供至少一个存储引擎依据查询语句进行查询处理得到中间查询结果,至少一个计算引擎依据中间查询结果进行计算处理得到最终的查询结果。采用本方案,可实现对跨存储引擎数据的快速处理,操作简单易行,易于大规模应用与实施;并且可将查询语句与存储引擎或计算引擎解耦,降低用户的学习成本,便于查询效率的进一步提升。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明提供的一种预设的大数据处理系统的功能结构示意图;
图2示出了根据本发明一个实施例提供的一种基于大数据的混合查询处理方法的流程示意图;
图3示出了根据本发明另一个实施例提供的一种基于大数据的混合查询处理方法的流程示意图;
图4a示出了根据本发明另一个实施例提供的一种逻辑树示意图;
图4b示出了根据本发明另一个实施例提供的一种逻辑子树示意图;
图4c示出了根据本发明另一个实施例提供的另一种逻辑子树示意图;
图4d示出了根据本发明另一个实施例提供的又一种逻辑子树示意图;
图5示出了根据本发明一个实施例提供的一种基于大数据的混合查询处理装置的功能结构示意图;
图6示出了根据本发明一个实施例提供的一种计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明所提供的基于大数据的混合查询处理方法及装置可应用于预设的大数据处理系统中。如图1所示,该预设的大数据处理系统包括:服务接口11、解析模块12、路由模块13、多个计算引擎14以及多个存储引擎15。
其中,服务接口11,提供至少一种对外调用方式,适于接收利用任一种对外调用方式输入的特定语言格式的查询语句。该大数据处理系统中的特定语言格式的查询语句可以为与计算引擎或存储引擎耦合度较低的逻辑查询语句,即用户无需根据查询所需的计算引擎及存储引擎的特点及语法结构等专门编译相应的语句。
解析模块12,适于对查询语句进行语法解析及校验,生成逻辑查询计划。具体地,为保障数据查询效率以及避免系统资源浪费,解析模块12首先对服务接口11接收到的查询语句进行语法校验。可选的,若查询语句的语法校验不合格,可为用户反馈相应的提示信息,以供用户根据提示信息进行查询语句的及时修正。待语法校验成功后,进一步对查询语句进行解析,以生成相应的逻辑查询计划。从而供路由模块13、多个计算引擎14和/或多个存储引擎15基于逻辑查询计划获得最终的查询结果。
路由模块13,适于根据逻辑查询计划,确定与逻辑查询计划相对应的至少一个计算引擎和/或至少一个存储引擎,并将查询语句路由至该至少一个计算引擎和/或至少一个存储引擎。具体地,在解析模块12生成与查询语句相对应的逻辑查询计划之后,进一步由路由模块13根据逻辑查询计划生成相应的物理执行计划,即确定出与逻辑查询计划相对应的至少一个计算引擎和/或至少一个存储引擎,并将查询语句路由至该至少一个计算引擎和/或至少一个存储引擎。
多个计算引擎14以及多个存储引擎15,适于根据路由模块路由的查询语句,执行对应的查询处理,获得并输出查询结果。
图2示出了根据本发明一个实施例提供的一种基于大数据的混合查询处理方法的流程示意图。如图2所示,该方法包括:
步骤S210,接收利用任一种对外调用方式输入的特定语言格式的混合查询语句。
其中,该至少一种对外调用方式包含:命令行调用方式、JDBC调用方式和/或专用API调用方式。可选的,为进一步提升用户体验,本实施例可针对于不同的用户群体提供相应的对外调用方式。例如,针对于终端用户群体,可为其提供命令行调用方式;而针对于开发者用户群体,则可为其提供JDBC(Java DataBase Connectivity,java数据库连接)调用方式和/或专用API调用方式。可选的,利用任一种对外调用方式输入的特定语言格式的混合查询语句具体为特定语言格式的SQL语句。
进一步,本发明所述的混合查询语句具体是指混合查询语句所对应的数据源信息中至少两个数据源对应于不同类别的存储引擎;和/或,混合查询语句所对应的数据源信息中至少两个数据源对应于不同的集群;混合查询语句所对应的数据源信息中至少两个数据源对应于不同的业务连接。
此外,用户仅通过输入特定语言格式的混合查询语句便可获得相应的查询结果,该混合查询语句与计算引擎或存储引擎耦合度较低,从而降低用户的学习成本,提升用户体验。
步骤S220,对混合查询语句进行语法解析,生成混合查询计划,并依据混合查询计划,确定与混合查询计划相对应的至少一个存储引擎和至少一个计算引擎。
具体地,对接收到的混合查询语句进行语法解析,以获得与该混合查询语句相匹配的混合查询计划,从而便于后续步骤中基于该混合查询计划对该混合查询语句进行自动化处理。
在实际的实施过程中,在生成与接收到的混合查询语句相对应的混合查询计划之后,依据该混合查询计划确定出进行混合查询语句所需的存储引擎及计算引擎,即确定与混合查询计划相对应的至少一个存储引擎和至少一个计算引擎。
步骤S230,将查询语句路由至该至少一个存储引擎和至少一个计算引擎,以供至少一个存储引擎依据查询语句进行查询处理得到中间查询结果,至少一个计算引擎依据中间查询结果进行计算处理得到最终的查询结果。
本实施例中由存储引擎对查询语句进行初步处理,获得相应的中间查询结果;最终由计算引擎根据存储引擎反馈的中间查询结果进行计算处理,从而获得最终的查询结果。其中,本实施例对查询语句的具体路由方式不做限定,本领域技术人员可根据实际需求自行选择相应的路由方式。例如,可以由至少一个计算引擎统一接收查询语句,并进一步由计算引擎将查询语句分发至相对应的至少一个存储引擎中。
由此可见,本实施例接收利用任一种对外调用方式输入的特定语言格式的混合查询语句,从而使得用户无需根据混合查询所需的存储引擎或计算引擎的特定及语法结构编译相应的查询语句,可将查询语句与存储引擎或计算引擎解耦,降低用户的学习成本;并且,本实施例进一步对混合查询语句进行语法解析,生成混合查询计划,依据混合查询计划,确定与混合查询计划相对应的至少一个存储引擎和至少一个计算引擎;最终将查询语句路由至至少一个存储引擎和至少一个计算引擎,以供至少一个存储引擎依据查询语句进行查询处理得到中间查询结果,至少一个计算引擎依据中间查询结果进行计算处理得到最终的查询结果,从而实现对跨存储引擎数据的快速处理,操作简单易行,易于大规模应用与实施。
图3示出了根据本发明另一个实施例提供的一种基于大数据的混合查询处理方法的流程示意图。如图3所示,该方法包括:
步骤S310,接收利用任一种对外调用方式输入的特定语言格式的混合查询语句。
步骤S320,将混合查询语句拆分为多个查询分句,并确定多个查询分句中的第一查询分句以及第二查询分句,基于拆分结果生成混合查询计划。
为提高查询效率,降低系统开销以及节省系统计算资源,本实施例将混合查询语句进行拆分,将接收到的混合查询语句拆分为多个语义完整的查询分句,该多个查询分句可由至少一个存储引擎和/或至少一个计算引擎分别执行。
在将混合查询语句拆分为多个查询分句过程中,可首先将混合查询语句转换为相对应的逻辑树,其中,逻辑树中的节点可以对应于混合查询语句中的至少一个子语句。例如,针对于于一SQL语句:SELECT id FROM db.table WHERE id<100,其可转换为Project节点-Filter节点-TableScan节点的逻辑树结构,其中,Project节点对应于该SQL语句中的SELECT语句,Filter节点对应于该SQL语句中的WHERE子语句,TableScan节点对应于该SQL语句中的数据源。为提高混合查询语句的拆分精度,在将混合查询语句转换为相对应的逻辑树时,可先将混合查询语句转换为对应的抽象语法树,并根据转换的抽象语法树生成与混合查询语句相对应的逻辑树;进一步地,在将混合查询语句转换为对应的逻辑树后,对逻辑树进行逻辑树拆分,得到与逻辑树相对应的多个逻辑子树,根据与逻辑树相对应的多个逻辑子树,生成多个查询分句。其中,本实施例对逻辑树的具体拆分方法不做限定,例如,可查找逻辑树中的候选多数据源连接节点(如join操作对应的节点、union操作对应的节点等等);针对于查找到的候选多数据源连接节点,确定该候选多数据源连接节点所对应的各个分支的数据源是否满足混合处理规则;若是,则进行拆分处理。该混合处理规则为判断各个分支的数据源是否对应于不同类别的存储引擎,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则;和/或,判断各个分支的数据源是否对应于不同的集群,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则;和/或,判断所述各个分支的数据源是否对应于不同的业务连接,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则。拆分后的各个逻辑子树保持语义完整性,并可逆向转换为对应的查询分句;最后,根据与逻辑树相对应的多个逻辑子树,生成多个查询分句。如图4a所示的逻辑树,通过对该逻辑树的拆分,可拆分为如图4b、图4c及图4d共三个逻辑子树。
在将混合查询语句拆分之后,确定多个查询分句中的第一查询分句以及第二查询分句。其中,第一查询分句由相对应的存储引擎执行,第二查询分句由相对应的计算引擎执行。
进一步基于拆分结果生成混合查询计划。其中,混合查询计划中可记录有各个查询分句的执行顺序,和/或,记录各个查询分句的分句类别,即记录各个查询分句为第一查询分句或第二查询分句。
在一种可选的实施方式中,为进一步提高查询效率,降低存储引擎与计算引擎之间的交互开销,本实施例可进一步依据优化规则对生成的混合查询计划进行优化。从而可根据优化后的混合查询计划,确定与混合查询计划相对应的至少一个存储引擎和至少一个计算引擎,进而实现对混合查询语句的处理。在具体的优化过程中,可将能够由存储引擎执行的查询分句交由存储引擎执行,从而充分利用存储引擎的计算资源,并减少存储引擎与计算引擎的交互频次,降低系统开销。
具体地,在优化过程中,不仅仅将混合查询语句中的数据获取部分的子语句确定为由存储引擎执行的第一查询分句,而是将混合查询语句中数据获取部分的子语句,以及存储引擎支持的其他计算(如过滤、选择等)子语句合并为由存储引擎执行的第一查询分句,从而可充分利用存储引擎的计算能力,降低存储引擎与计算引擎之间的交互频率,并可避免在优化前计算引擎需将存储引擎未经处理的大量源数据读入再处理而引起的存储开销增加的弊端。其中,具体的优化方式,本领域技术人员可自行设置,本发明对此不做限定。
步骤S330,将第一查询分句路由至相对应的存储引擎,以供存储引擎执行相对应的第一查询分句,从而获得与第一查询分句相对应的中间查询结果。
若第一查询分句为多个,则分别将每个第一查询分句路由至相对应的存储引擎中。各个存储引擎根据接收到的第一查询分句,调用存储于自身的数据信息进行第一查询分句处理,从而获得与各个第一查询分句相对应的中间查询结果。
步骤S340,将第二查询分句路由至相对应的计算引擎,以供计算引擎根据与第一查询分句相对应的中间查询结果,以及第二查询分句进行计算处理得到最终的查询结果。
计算引擎根据至少一个存储引擎反馈的中间查询结果,以及路由至该计算引擎的第二查询分句进行计算处理,从而获得最终的查询结果。
由此可见,本实施例接收利用任一种对外调用方式输入的特定语言格式的混合查询语句,从而使得用户无需根据混合查询所需的存储引擎或计算引擎的特定及语法结构编译相应的查询语句,从而可将查询语句与存储引擎或计算引擎解耦,降低用户的学习成本;并且,将混合查询语句拆分为多个查询分句,并确定多个查询分句中的第一查询分句以及第二查询分句,基于拆分结果生成混合查询计划,将第一查询分句路由至相对应的存储引擎,以供存储引擎执行相对应的第一查询分句,从而获得与第一查询分句相对应的中间查询结果,从而可提高查询效率,降低系统开销以及节省系统计算资源;另外,本实施例还可对生成的混合查询计划进行优化,从而进一步提高查询效率,降低存储引擎与计算引擎之间的交互开销。并且,本实施例操作简单易行,易于大规模应用与实施。
图5示出了根据本发明一个实施例提供的一种基于大数据的混合查询处理装置的功能结构示意图。如图5所示,该装置包括:接收模块51、确定模块52、及处理模块53。
接收模块51,适于接收利用任一种对外调用方式输入的特定语言格式的混合查询语句;
确定模块52,适于对所述混合查询语句进行语法解析,生成混合查询计划,并依据所述混合查询计划,确定与所述混合查询计划相对应的至少一个存储引擎和至少一个计算引擎;
处理模块53,适于将所述查询语句路由至所述至少一个存储引擎和至少一个计算引擎,以供所述至少一个存储引擎依据所述查询语句进行查询处理得到中间查询结果,所述至少一个计算引擎依据所述中间查询结果进行计算处理得到最终的查询结果。
可选的,确定模块52进一步适于:将所述混合查询语句拆分为多个查询分句;确定所述多个查询分句中的第一查询分句以及第二查询分句;其中,第一查询分句由相对应的存储引擎执行,第二查询分句由相对应的计算引擎执行;基于拆分结果生成混合查询计划。
可选的,处理模块53进一步适于:
将第一查询分句路由至相对应的存储引擎,以供存储引擎执行相对应的第一查询分句,以获得与第一查询分句相对应的中间查询结果;
将第二查询分句路由至相对应的计算引擎,以供计算引擎根据与第一查询分句相对应的中间查询结果,以及所述第二查询分句进行计算处理得到最终的查询结果。
可选的,确定模块52进一步适于:
将所述混合查询语句转换为与所述混合查询语句相对应的逻辑树;
对所述逻辑树进行逻辑树拆分,得到与所述逻辑树相对应的多个逻辑子树;
根据与所述逻辑树相对应的多个逻辑子树,生成多个查询分句。
可选的,确定模块52进一步适于:
将所述混合查询语句转换为对应的抽象语法树,并进一步根据转换的抽象语法树生成与所述混合查询语句相对应的逻辑树。
可选的,确定模块52进一步适于:
查找所述逻辑树中的候选多数据源连接节点;
针对于查找到的候选多数据源连接节点,确定该候选多数据源连接节点所对应的各个分支的数据源是否满足混合处理规则;
若是,则进行拆分处理。
可选的,确定模块52进一步适于:
判断所述各个分支的数据源是否对应于不同类别的存储引擎,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则;
和/或,判断所述各个分支的数据源是否对应于不同的集群,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则;
和/或,判断所述各个分支的数据源是否对应于不同的业务连接,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则。
可选的,该装置还包括:优化模块(图中未示出),适于依据优化规则对生成的混合查询计划进行优化;
确定模块52进一步适于:根据优化后的混合查询计划,确定与所述混合查询计划相对应的至少一个存储引擎和至少一个计算引擎。
可选的,混合查询语句具体为:混合查询语句所对应的数据源信息中至少两个数据源对应于不同类别的存储引擎;和/或,混合查询语句所对应的数据源信息中至少两个数据源对应于不同的集群;混合查询语句所对应的数据源信息中至少两个数据源对应于不同的业务连接。
其中,本实施例中大数据处理装置的各个模块的具体实施方式可参照图2和/或图3所示方法实施例中相应步骤的描述,本实施例对此不做赘述。
由此可见,本实施例接收利用任一种对外调用方式输入的特定语言格式的混合查询语句,从而使得用户无需根据混合查询所需的存储引擎或计算引擎的特定及语法结构编译相应的查询语句,可将查询语句与存储引擎或计算引擎解耦,降低用户的学习成本;并且,本实施例进一步对混合查询语句进行语法解析,生成混合查询计划,依据混合查询计划,确定与混合查询计划相对应的至少一个存储引擎和至少一个计算引擎;最终将查询语句路由至至少一个存储引擎和至少一个计算引擎,以供至少一个存储引擎依据查询语句进行查询处理得到中间查询结果,至少一个计算引擎依据中间查询结果进行计算处理得到最终的查询结果,从而实现对跨存储引擎数据的快速处理,操作简单易行,易于大规模应用与实施。
根据本发明一个实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于大数据的混合查询处理方法。
图6示出了根据本发明一个实施例提供的一种计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
如图6所示,该计算设备可以包括:处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。
其中:
处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。
通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器602,用于执行程序610,具体可以执行上述基于大数据的混合查询处理方法实施例中的相关步骤。
具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
处理器602可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器606,用于存放程序610。存储器606可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序610具体可以用于使得处理器602执行以下操作:
接收利用任一种对外调用方式输入的特定语言格式的混合查询语句;
对所述混合查询语句进行语法解析,生成混合查询计划,并依据所述混合查询计划,确定与所述混合查询计划相对应的至少一个存储引擎和至少一个计算引擎;
将所述查询语句路由至所述至少一个存储引擎和至少一个计算引擎,以供所述至少一个存储引擎依据所述查询语句进行查询处理得到中间查询结果,所述至少一个计算引擎依据所述中间查询结果进行计算处理得到最终的查询结果。
在一种可选的实施方式中,程序610具体可以用于使得处理器602执行以下操作:
将所述混合查询语句拆分为多个查询分句;
确定所述多个查询分句中的第一查询分句以及第二查询分句;其中,第一查询分句由相对应的存储引擎执行,第二查询分句由相对应的计算引擎执行;
基于拆分结果生成混合查询计划。
在一种可选的实施方式中,程序610具体可以用于使得处理器602执行以下操作:
将第一查询分句路由至相对应的存储引擎,以供存储引擎执行相对应的第一查询分句,以获得与第一查询分句相对应的中间查询结果;
将第二查询分句路由至相对应的计算引擎,以供计算引擎根据与第一查询分句相对应的中间查询结果,以及所述第二查询分句进行计算处理得到最终的查询结果。
在一种可选的实施方式中,程序610具体可以用于使得处理器602执行以下操作:
将所述混合查询语句转换为与所述混合查询语句相对应的逻辑树;
对所述逻辑树进行逻辑树拆分,得到与所述逻辑树相对应的多个逻辑子树;
根据与所述逻辑树相对应的多个逻辑子树,生成多个查询分句。
在一种可选的实施方式中,程序610具体可以用于使得处理器602执行以下操作:
将所述混合查询语句转换为对应的抽象语法树,并进一步根据转换的抽象语法树生成与所述混合查询语句相对应的逻辑树。
在一种可选的实施方式中,程序610具体可以用于使得处理器602执行以下操作:
查找所述逻辑树中的候选多数据源连接节点;
针对于查找到的候选多数据源连接节点,确定该候选多数据源连接节点所对应的各个分支的数据源是否满足混合处理规则;
若是,则进行拆分处理。
在一种可选的实施方式中,程序610具体可以用于使得处理器602执行以下操作:
判断所述各个分支的数据源是否对应于不同类别的存储引擎,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则;
和/或,判断所述各个分支的数据源是否对应于不同的集群,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则;
和/或,判断所述各个分支的数据源是否对应于不同的业务连接,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则。
在一种可选的实施方式中,程序610具体可以用于使得处理器602执行以下操作:
依据优化规则对生成的混合查询计划进行优化;
所述依据所述混合查询计划,确定与所述混合查询计划相对应的至少一个存储引擎和至少一个计算引擎进一步包括:
根据优化后的混合查询计划,确定与所述混合查询计划相对应的至少一个存储引擎和至少一个计算引擎。
在一种可选的实施方式中,程序610具体可以用于使得处理器602执行以下操作:
混合查询语句所对应的数据源信息中至少两个数据源对应于不同类别的存储引擎;
和/或,混合查询语句所对应的数据源信息中至少两个数据源对应于不同的集群;
混合查询语句所对应的数据源信息中至少两个数据源对应于不同的业务连接。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例中的基于大数据的混合查询处理装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:A1.一种基于大数据的混合查询处理方法,包括:
接收利用任一种对外调用方式输入的特定语言格式的混合查询语句;
对所述混合查询语句进行语法解析,生成混合查询计划,并依据所述混合查询计划,确定与所述混合查询计划相对应的至少一个存储引擎和至少一个计算引擎;
将所述查询语句路由至所述至少一个存储引擎和至少一个计算引擎,以供所述至少一个存储引擎依据所述查询语句进行查询处理得到中间查询结果,所述至少一个计算引擎依据所述中间查询结果进行计算处理得到最终的查询结果。
A2.根据A1所述的方法,其中,所述对所述混合查询语句进行语法解析,生成混合查询计划,并依据所述混合查询计划,确定与所述混合查询计划相对应的至少一个存储引擎和至少一个计算引擎进一步包括:
将所述混合查询语句拆分为多个查询分句;
确定所述多个查询分句中的第一查询分句以及第二查询分句;其中,第一查询分句由相对应的存储引擎执行,第二查询分句由相对应的计算引擎执行;
基于拆分结果生成混合查询计划。
A3.根据A2所述的方法,其中,所述将所述查询语句路由至所述至少一个存储引擎和至少一个计算引擎,以供所述至少一个存储引擎依据所述查询语句进行查询处理得到中间查询结果,所述至少一个计算引擎依据所述中间查询结果进行计算处理得到最终的查询结果进一步包括:
将第一查询分句路由至相对应的存储引擎,以供存储引擎执行相对应的第一查询分句,以获得与第一查询分句相对应的中间查询结果;
将第二查询分句路由至相对应的计算引擎,以供计算引擎根据与第一查询分句相对应的中间查询结果,以及所述第二查询分句进行计算处理得到最终的查询结果。
A4.根据A2或A3所述的方法,其中,所述将所述混合查询语句拆分为多个查询分句进一步包括:
将所述混合查询语句转换为与所述混合查询语句相对应的逻辑树;
对所述逻辑树进行逻辑树拆分,得到与所述逻辑树相对应的多个逻辑子树;
根据与所述逻辑树相对应的多个逻辑子树,生成多个查询分句。
A5.根据A4所述的方法,其中,所述将所述混合查询语句转换为与所述混合查询语句相对应的逻辑树进一步包括:
将所述混合查询语句转换为对应的抽象语法树,并进一步根据转换的抽象语法树生成与所述混合查询语句相对应的逻辑树。
A6.根据A4或A5所述的方法,其中,所述对所述逻辑树进行逻辑树拆分,得到与所述逻辑树相对应的多个逻辑子树进一步包括:
查找所述逻辑树中的候选多数据源连接节点;
针对于查找到的候选多数据源连接节点,确定该候选多数据源连接节点所对应的各个分支的数据源是否满足混合处理规则;
若是,则进行拆分处理。
A7.根据A6所述的方法,其中,所述确定该候选多数据源连接节点所对应的各个分支的数据源是否满足混合处理规则进一步包括:
判断所述各个分支的数据源是否对应于不同类别的存储引擎,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则;
和/或,判断所述各个分支的数据源是否对应于不同的集群,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则;
和/或,判断所述各个分支的数据源是否对应于不同的业务连接,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则。
A8.根据A1-A7中任一项所述的方法,其中,在所述生成混合查询计划之后,所述方法还包括:
依据优化规则对生成的混合查询计划进行优化;
所述依据所述混合查询计划,确定与所述混合查询计划相对应的至少一个存储引擎和至少一个计算引擎进一步包括:
根据优化后的混合查询计划,确定与所述混合查询计划相对应的至少一个存储引擎和至少一个计算引擎。
A9.根据A1-A8中任一项所述的方法,其中,所述混合查询语句具体为:
混合查询语句所对应的数据源信息中至少两个数据源对应于不同类别的存储引擎;
和/或,混合查询语句所对应的数据源信息中至少两个数据源对应于不同的集群;
混合查询语句所对应的数据源信息中至少两个数据源对应于不同的业务连接。
本发明还公开了:B10.一种基于大数据的混合查询处理装置,包括:
接收模块,适于接收利用任一种对外调用方式输入的特定语言格式的混合查询语句;
确定模块,适于对所述混合查询语句进行语法解析,生成混合查询计划,并依据所述混合查询计划,确定与所述混合查询计划相对应的至少一个存储引擎和至少一个计算引擎;
处理模块,适于将所述查询语句路由至所述至少一个存储引擎和至少一个计算引擎,以供所述至少一个存储引擎依据所述查询语句进行查询处理得到中间查询结果,所述至少一个计算引擎依据所述中间查询结果进行计算处理得到最终的查询结果。
B11.根据B10所述的装置,其中,所述确定模块进一步适于:
将所述混合查询语句拆分为多个查询分句;
确定所述多个查询分句中的第一查询分句以及第二查询分句;其中,第一查询分句由相对应的存储引擎执行,第二查询分句由相对应的计算引擎执行;
基于拆分结果生成混合查询计划。
B12.根据B11所述的装置,其中,所述处理模块进一步适于:
将第一查询分句路由至相对应的存储引擎,以供存储引擎执行相对应的第一查询分句,以获得与第一查询分句相对应的中间查询结果;
将第二查询分句路由至相对应的计算引擎,以供计算引擎根据与第一查询分句相对应的中间查询结果,以及所述第二查询分句进行计算处理得到最终的查询结果。
B13.根据B11或B12所述的装置,其中,所述确定模块进一步适于:
将所述混合查询语句转换为与所述混合查询语句相对应的逻辑树;
对所述逻辑树进行逻辑树拆分,得到与所述逻辑树相对应的多个逻辑子树;
根据与所述逻辑树相对应的多个逻辑子树,生成多个查询分句。
B14.根据B13所述的装置,其中,所述确定模块进一步适于:
将所述混合查询语句转换为对应的抽象语法树,并进一步根据转换的抽象语法树生成与所述混合查询语句相对应的逻辑树。
B15.根据B13或B14所述的装置,其中,所述确定模块进一步适于:
查找所述逻辑树中的候选多数据源连接节点;
针对于查找到的候选多数据源连接节点,确定该候选多数据源连接节点所对应的各个分支的数据源是否满足混合处理规则;
若是,则进行拆分处理。
B16.根据B15所述的装置,其中,所述确定模块进一步适于:
判断所述各个分支的数据源是否对应于不同类别的存储引擎,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则;
和/或,判断所述各个分支的数据源是否对应于不同的集群,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则;
和/或,判断所述各个分支的数据源是否对应于不同的业务连接,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则。
B17.根据B10-B16中任一项所述的装置,其中,所述装置还包括:
优化模块,适于依据优化规则对生成的混合查询计划进行优化;
所述确定模块进一步适于:根据优化后的混合查询计划,确定与所述混合查询计划相对应的至少一个存储引擎和至少一个计算引擎。
B18.根据B10-B17中任一项所述的装置,其中,所述混合查询语句具体为:
混合查询语句所对应的数据源信息中至少两个数据源对应于不同类别的存储引擎;
和/或,混合查询语句所对应的数据源信息中至少两个数据源对应于不同的集群;
混合查询语句所对应的数据源信息中至少两个数据源对应于不同的业务连接。
本发明还公开了:C19.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如A1-A9中任一项所述的基于大数据的混合查询处理方法对应的操作。
本发明还公开了:D20.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如A1-A9中任一项所述的基于大数据的混合查询处理方法对应的操作。

Claims (10)

1.一种基于大数据的混合查询处理方法,包括:
接收利用任一种对外调用方式输入的特定语言格式的混合查询语句;
对所述混合查询语句进行语法解析,生成混合查询计划,并依据所述混合查询计划,确定与所述混合查询计划相对应的至少一个存储引擎和至少一个计算引擎;
将所述查询语句路由至所述至少一个存储引擎和至少一个计算引擎,以供所述至少一个存储引擎依据所述查询语句进行查询处理得到中间查询结果,所述至少一个计算引擎依据所述中间查询结果进行计算处理得到最终的查询结果。
2.根据权利要求1所述的方法,其中,所述对所述混合查询语句进行语法解析,生成混合查询计划,并依据所述混合查询计划,确定与所述混合查询计划相对应的至少一个存储引擎和至少一个计算引擎进一步包括:
将所述混合查询语句拆分为多个查询分句;
确定所述多个查询分句中的第一查询分句以及第二查询分句;其中,第一查询分句由相对应的存储引擎执行,第二查询分句由相对应的计算引擎执行;
基于拆分结果生成混合查询计划。
3.根据权利要求2所述的方法,其中,所述将所述查询语句路由至所述至少一个存储引擎和至少一个计算引擎,以供所述至少一个存储引擎依据所述查询语句进行查询处理得到中间查询结果,所述至少一个计算引擎依据所述中间查询结果进行计算处理得到最终的查询结果进一步包括:
将第一查询分句路由至相对应的存储引擎,以供存储引擎执行相对应的第一查询分句,以获得与第一查询分句相对应的中间查询结果;
将第二查询分句路由至相对应的计算引擎,以供计算引擎根据与第一查询分句相对应的中间查询结果,以及所述第二查询分句进行计算处理得到最终的查询结果。
4.根据权利要求2或3所述的方法,其中,所述将所述混合查询语句拆分为多个查询分句进一步包括:
将所述混合查询语句转换为与所述混合查询语句相对应的逻辑树;
对所述逻辑树进行逻辑树拆分,得到与所述逻辑树相对应的多个逻辑子树;
根据与所述逻辑树相对应的多个逻辑子树,生成多个查询分句。
5.根据权利要求4所述的方法,其中,所述将所述混合查询语句转换为与所述混合查询语句相对应的逻辑树进一步包括:
将所述混合查询语句转换为对应的抽象语法树,并进一步根据转换的抽象语法树生成与所述混合查询语句相对应的逻辑树。
6.根据权利要求4或5所述的方法,其中,所述对所述逻辑树进行逻辑树拆分,得到与所述逻辑树相对应的多个逻辑子树进一步包括:
查找所述逻辑树中的候选多数据源连接节点;
针对于查找到的候选多数据源连接节点,确定该候选多数据源连接节点所对应的各个分支的数据源是否满足混合处理规则;
若是,则进行拆分处理。
7.根据权利要求6所述的方法,其中,所述确定该候选多数据源连接节点所对应的各个分支的数据源是否满足混合处理规则进一步包括:
判断所述各个分支的数据源是否对应于不同类别的存储引擎,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则;
和/或,判断所述各个分支的数据源是否对应于不同的集群,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则;
和/或,判断所述各个分支的数据源是否对应于不同的业务连接,若是,则该候选多数据源连接节点所对应的各个分支的数据源满足混合处理规则。
8.一种基于大数据的混合查询处理装置,包括:
接收模块,适于接收利用任一种对外调用方式输入的特定语言格式的混合查询语句;
确定模块,适于对所述混合查询语句进行语法解析,生成混合查询计划,并依据所述混合查询计划,确定与所述混合查询计划相对应的至少一个存储引擎和至少一个计算引擎;
处理模块,适于将所述查询语句路由至所述至少一个存储引擎和至少一个计算引擎,以供所述至少一个存储引擎依据所述查询语句进行查询处理得到中间查询结果,所述至少一个计算引擎依据所述中间查询结果进行计算处理得到最终的查询结果。
9.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的基于大数据的混合查询处理方法对应的操作。
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-7中任一项所述的基于大数据的混合查询处理方法对应的操作。
CN201811429313.3A 2018-11-27 2018-11-27 基于大数据的混合查询处理方法及装置 Pending CN111221852A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811429313.3A CN111221852A (zh) 2018-11-27 2018-11-27 基于大数据的混合查询处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811429313.3A CN111221852A (zh) 2018-11-27 2018-11-27 基于大数据的混合查询处理方法及装置

Publications (1)

Publication Number Publication Date
CN111221852A true CN111221852A (zh) 2020-06-02

Family

ID=70827469

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811429313.3A Pending CN111221852A (zh) 2018-11-27 2018-11-27 基于大数据的混合查询处理方法及装置

Country Status (1)

Country Link
CN (1) CN111221852A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905598A (zh) * 2021-03-15 2021-06-04 上海交通大学 基于接口实现分离的图任务中间结果存储方法及系统
CN113064914A (zh) * 2021-04-22 2021-07-02 中国工商银行股份有限公司 数据提取方法及装置
CN113703739A (zh) * 2021-09-03 2021-11-26 上海森亿医疗科技有限公司 基于omiga引擎的跨语言融合计算方法、系统及终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090019000A1 (en) * 2007-07-12 2009-01-15 Mitchell Jon Arends Query based rule sets
CN102982075A (zh) * 2012-10-30 2013-03-20 北京京东世纪贸易有限公司 支持访问异构数据源的系统和方法
CN106777108A (zh) * 2016-12-15 2017-05-31 贵州电网有限责任公司电力科学研究院 一种基于混合存储架构的数据查询方法和装置
CN108733727A (zh) * 2017-04-25 2018-11-02 华为技术有限公司 一种查询处理方法、数据源注册方法及查询引擎

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090019000A1 (en) * 2007-07-12 2009-01-15 Mitchell Jon Arends Query based rule sets
CN102982075A (zh) * 2012-10-30 2013-03-20 北京京东世纪贸易有限公司 支持访问异构数据源的系统和方法
CN106777108A (zh) * 2016-12-15 2017-05-31 贵州电网有限责任公司电力科学研究院 一种基于混合存储架构的数据查询方法和装置
CN108733727A (zh) * 2017-04-25 2018-11-02 华为技术有限公司 一种查询处理方法、数据源注册方法及查询引擎

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
向红: "基于本体的异构数据集成系统的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905598A (zh) * 2021-03-15 2021-06-04 上海交通大学 基于接口实现分离的图任务中间结果存储方法及系统
CN112905598B (zh) * 2021-03-15 2022-06-28 上海交通大学 基于接口实现分离的图任务中间结果存储方法及系统
CN113064914A (zh) * 2021-04-22 2021-07-02 中国工商银行股份有限公司 数据提取方法及装置
CN113703739A (zh) * 2021-09-03 2021-11-26 上海森亿医疗科技有限公司 基于omiga引擎的跨语言融合计算方法、系统及终端

Similar Documents

Publication Publication Date Title
US8661023B1 (en) Optimizing search query logic to speed retrieval
CN111221842A (zh) 大数据处理系统及方法
CN111309751A (zh) 大数据处理方法及装置
CN110019314B (zh) 基于数据项分析的动态数据封装方法、客户端和服务端
CN113283613B (zh) 深度学习模型的生成方法、优化方法、装置、设备及介质
CN111221852A (zh) 基于大数据的混合查询处理方法及装置
US8768913B2 (en) Multi-source searching in a data driven application
CN110866029B (zh) sql语句构建方法、装置、服务器及可读存储介质
CN112860730A (zh) Sql语句的处理方法、装置、电子设备及可读存储介质
CN115809063B (zh) 一种存储过程编译方法、系统、电子设备和存储介质
CN113177062A (zh) 一种数据查询方法及装置
CN113568605B (zh) 约定式路由配置方法、装置、和系统
CN110888876A (zh) 生成数据库脚本的方法、装置、存储介质及计算机设备
CN112988163B (zh) 编程语言智能适配方法、装置、电子设备和介质
CN111221860A (zh) 基于大数据的混合查询优化方法及装置
CN111221841A (zh) 基于大数据的实时处理方法及装置
CN111221888A (zh) 大数据分析系统及方法
CN111580821B (zh) 脚本绑定方法、装置、电子设备及计算机可读存储介质
CN111125216A (zh) 数据导入Phoenix的方法及装置
CN113495723B (zh) 一种调用功能组件的方法、装置及存储介质
CN116204550A (zh) 数据库查询语句的优化方法、存储介质与设备
CN116049232A (zh) 一种子查询抽取方法、装置、电子设备和存储介质
CN114064601B (zh) 存储过程转换方法、装置、设备和存储介质
CN114003583A (zh) 一种目标格式数据请求体的构建方法、装置、介质及设备
CN106682221B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200602