CN108549683A - 数据查询方法以及系统 - Google Patents
数据查询方法以及系统 Download PDFInfo
- Publication number
- CN108549683A CN108549683A CN201810295606.0A CN201810295606A CN108549683A CN 108549683 A CN108549683 A CN 108549683A CN 201810295606 A CN201810295606 A CN 201810295606A CN 108549683 A CN108549683 A CN 108549683A
- Authority
- CN
- China
- Prior art keywords
- query
- engine
- task
- operation information
- query engine
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种用于电子设备的数据查询方法,所述方法包括:获取指示查询任务的查询语句;基于所述查询语句确定执行所述查询任务所需的运行信息;以及从多个查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务。本公开还提供了一种用于电子设备的数据查询系统。
Description
技术领域
本公开涉及一种数据查询方法以及数据查询系统。
背景技术
随着电子技术的快速发展,数据库应用于诸多场景,越来越多种类的查询引擎应用于数据查询中。不同的查询引擎在不同的使用场景中有不同的优势,在使用查询引擎查询数据时,现有技术不能自动根据使用场景选择合适的查询引擎,例如不能根据查询语句的内容本身选择合适的查询引擎,使得查询效率低。因此,如何根据使用场景自动选择合适的查询引擎,提高查询效率成为亟需解决的问题。
发明内容
本公开的一个方面提供了一种用于电子设备的数据查询方法,所述方法包括:获取指示查询任务的查询语句,基于所述查询语句确定执行所述查询任务所需的运行信息,以及从多个查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务。
可选地,上述运行信息包括以下任意一项或多项:所述查询任务所针对的目标表的占用内存量,或所述查询任务的计算量,或所述查询任务中是否包含预设处理模式。
可选地,上述从所述多个查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务,包括:在所述多个查询引擎中当前存在处于空闲状态的查询引擎的情况下,从所述处于空闲状态的查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务。
可选地,上述从所述多个查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务,包括:确定所述多个查询引擎中每个查询引擎当前拥有的资源,其中,所述资源包括所述电子设备为所述多个查询引擎中的每个查询引擎配置的资源,以及调度当前拥有的资源最多的查询引擎执行所述查询任务。
可选地,上述方法还包括以下任意一项或多项:在所述占用内存量的第一判断结果满足第一预设条件的情况下,进行所述计算量的判断,以从多个查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务,或在所述占用内存量的第一判断结果满足第一预设条件的情况下,进行所述预设处理模式的判断,以从多个查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务,或在所述计算量的第二判断结果满足第二预设条件的情况下,进行所述预设处理模式的判断,以从多个查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务。
本公开的另一个方面提供了一种用于电子设备的数据查询系统,所述系统包括:获取模块、确定模块、以及调度模块。其中,获取模块获取指示查询任务的查询语句,确定模块基于所述查询语句确定执行所述查询任务所需的运行信息,调度模块从多个查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务。
可选地,上述运行信息包括以下任意一项或多项:所述查询任务所针对的目标表的占用内存量,或所述查询任务的计算量,或所述查询任务中是否包含预设处理模式。
可选地,上述调度模块包括:第一调度子模块,在所述多个查询引擎中当前存在处于空闲状态的查询引擎的情况下,从所述处于空闲状态的查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务。
可选地,上述调度模块包括:确定子模块以及第二调度子模块。确定子模块确定所述多个查询引擎中每个查询引擎当前拥有的资源,其中,所述资源包括所述电子设备为所述多个查询引擎中的每个查询引擎配置的资源,第二调度子模块调度当前拥有的资源最多的查询引擎执行所述查询任务。
本公开的另一方面提供了一种服务器组,包括:一个或多个处理器,存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。
本公开的另一方面提供了一种非易失性存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的用于电子设备的数据查询方法和查询系统的应用场景;
图2A~2B示意性示出了根据本公开实施例的用于电子设备的数据查询方法的流程图;
图3示意性示出了根据本公开另一实施例的用于电子设备的数据查询方法的流程图;
图4示意性示出了根据本公开再一实施例的用于电子设备的数据查询方法的流程图;
图5A~5B示意性示出了根据本公开实施例的用于电子设备的数据查询系统的框图;以及
图6示意性示出了根据本公开实施例的用于电子设备的数据查询的计算机系统的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
本公开的实施例提供了一种用于电子设备的数据查询方法,该方法包括:获取指示查询任务的查询语句,基于查询语句确定执行查询任务所需的运行信息,以及从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务。
可见,在本公开实施例的技术方案中,通过获取指示查询任务的查询语句,并基于查询语句确定执行查询任务所需的运行信息,从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务,实现根据查询语句自动选择合适的查询引擎,提高查询效率。
图1示意性示出了根据本公开实施例的用于电子设备的数据查询方法和查询系统的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该应用场景100例如可以包括查询语句110以及多个查询引擎。
通常地,从数据库中查询相应的数据,需要查询引擎根据查询语句110从数据库中查询,从而得到相应的数据。而查询引擎的种类多种多样,针对不同的查询引擎具有与之相应的查询语句110,即查询语句110具体的类型可以依据查询引擎的不同而不同。
例如,当查询引擎包括结构化查询语言(Structured Query Language,SQL)的情况下,具体地,查询引擎可以包括hive、spark、impala、presto等等多种查询引擎。查询语句110例如可以是相应的SQL查询语句,例如,查询语句110可以是“SELECT A FROM B(表示从表B中获取数据A)”。
可以理解,本公开实施例对查询引擎的具体类型不作限制,可以是SQL查询引擎,还可以是其他类型的查询引擎。
根据本公开实施例,多个查询引擎例如包括查询引擎121、查询引擎122、查询引擎123、……。该多个查询引擎中不同的查询引擎在不同的条件下具有不同的优势,因此,本公开实施例目的在于在不同的条件下从多个查询引擎中自动选择合适的查询引擎,例如基于查询语句110的内容,从多个查询引擎中选择与查询语句110相匹配的查询引擎,例如多个查询引擎中与查询语句110相匹配的查询引擎为查询引擎122,则选择查询引擎122作为执行查询语句110的查询引擎,以此提高查询效率。
图2A~2B示意性示出了根据本公开实施例的用于电子设备的数据查询方法的流程图。
如图2A所示,该方法包括操作S210~S230。
在操作S210,获取指示查询任务的查询语句。
在本公开实施例中,查询任务可以是表征需要从数据库中查询相关数据的任务。查询语句例如可以是用于指示查询任务的语句,通过查询语句可以查询到相关的数据,完成查询任务。
在操作S220,基于查询语句确定执行查询任务所需的运行信息。
根据本公开实施例,在执行查询任务时,运行信息可以是所要获取的数据所在的数据库中的内存大小、获取数据的方式等等,该运行信息可以表征执行查询任务的难易程度,运行信息例如包括多种类别,更具体地,不同类别的运行信息如下。
例如,运行信息包括查询任务所针对的目标表的占用内存量,或查询任务的计算量,或查询任务中是否包含预设处理模式。
其中,查询任务所针对的目标表可以是所需要获取的数据所在数据库的表格。例如,当数据库中包含表A和表B时,表A包含员工年龄信息,表B包含员工工资信息,当查询任务是获取员工的工资信息时,与该查询任务相关的目标表例如为表B。
在本公开实施例中,运行信息包括查询任务所针对的目标表的占用内存量,例如当目标表为表B时,运行信息包括表B占用的内存量。
根据本公开实施例,运行信息还包括查询任务的计算量。查询任务的计算量例如包括,当查询任务的相关数据需要通过计算数据库中不同表格中的数据得到时,该查询任务的计算量即为不同表格中的数据计算。例如,当表格C为商品一年中每个月份的单价(即,每个月份的单价可以不同),表格D为商品每个月的销量,当查询任务为商品每个月份的销售收入时,该查询任务的计算量为,将表格C中商品每个月的单价分别乘以表格D中商品每个月的销量,即,该查询任务的计算量例如表征表格C和表格D之间数据计算过程所占用的内存资源或CPU资源占用率等等。
在本公开实施例中,预设处理模式例如可以是,当查询任务的相关数据需要从数据库中的不同表格得到,此时,该预设处理模式例如为从不同表格中获取所需数据的方式。更具体地,预设处理模式例如可以是查询语句中包含的特定关键词,例如当查询引擎为SQL引擎时,查询语句为SQL查询语句,此时,特定关键词可以是“join”。
例如,当表E包括员工的姓名以及每个员工对应的序号,表F包括员工的序号以及每个序号对应的工资,当查询任务为员工的工资时,此时查询语句例如包括“join”关键词,表征该查询任务需要联合表E和表F,即通过姓名在表E中查询到与姓名对应的序号,再通过序号从表F中查询与序号相对应的工资,从而得到员工的工资(即姓名对应工资)。
可以理解,上述的举例是为了便于理解运行信息而做出的举例,上述表A~表F不作为本公开实施例的具体限制。
在操作S230,从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务。
根据本公开实施例,面对不同的运行信息,不同的查询引擎运行能力不同。
具体地,查询引擎例如包括不同的SQL查询引擎,例如包括hive、spark、impala、presto等,每种查询引擎在面对不同的运行信息时运行能力不同。例如,当运行信息为查询任务所针对的目标表的占用内存量,当占用内存量较小时,例如spark和impala运行能力较强。当运行信息包括查询任务的计算量时,当计算量大时,例如hive的运行能力较强。当运行信息包括查询任务的是否包含预设处理模式时,例如当预设处理模式为在查询语句中包括“join”关键词时,impala的运行能力较强,或者,当预设处理模式为聚合函数(例如为计算最大值、最小值、平均值等等)时,presto的运行能力较强。
根据本公开实施例,从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎,例如当运行信息为目标表的占用内存量较小时,调度spark或impala执行查询任务。当运行信息为查询任务的计算量较大时,调度hive执行查询任务。当运行信息包括查询任务包含预设处理模式时,例如当查询语句包括“join”关键词时,则调度impala执行查询任务。
可以理解,上述所举例的查询引擎的类型以及该些查询引擎针对不同运行信息所具有的运行能力是为了便于理解本公开而做出的举例,本公开实施例不限制具体的查询引擎以及查询引擎针对不同运行信息所具有的运行能力。
如图2B所示,操作S230可以包括操作S231~S233。
在一实施例中,操作S230可以包括S231。其中,在操作S231,在多个查询引擎中当前存在处于空闲状态的查询引擎的情况下,从处于空闲状态的查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务。
在本公开实施例中,查询引擎处于空闲状态包括该查询引擎当前处于未执行查询任务的状态。在多个查询引擎中存在处于空闲状态的查询引擎的情况下,从处于空闲状态的查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务。其调度过程如操作S230所述,在此不再赘述。
在另一实施例中,操作S230可以包括S232~S233。其中:
在操作S232,确定多个查询引擎中每个查询引擎当前拥有的资源,其中,资源包括电子设备为多个查询引擎中的每个查询引擎配置的资源。
在本公开实施例中,查询引擎所拥有的资源包括在执行查询任务时所能运用的资源,该资源例如包括内存资源、CPU等硬件资源,该资源为电子设备为每个查询引擎配置的资源。
根据本公开实施例,查询引擎当前拥有的资源越多,可以表征该查询引擎的运行能力较强,通过确定每个查询引擎当前拥有的资源,从而依据每个查询引擎拥有的资源调度合适的查询引擎执行查询任务。
在操作S233,调度当前拥有的资源最多的查询引擎执行查询任务。
在本公开实施例中,确定每个查询引擎当前拥有的资源后,从多个查询引擎中调度拥有资源最多的查询引擎执行查询任务,即,拥有资源最多的查询引擎执行查询任务时运行能力较强,调度该运行能力强的查询引擎执行查询任务,提高查询效率。
根据本公开实施例,通过获取指示查询任务的查询语句,并基于查询语句确定执行查询任务所需的运行信息,从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务,实现根据查询语句自动选择合适的查询引擎,提高查询效率。
图3示意性示出了根据本公开另一实施例的用于电子设备的数据查询方法的流程图。
如图3所示,该方法包括操作S210~S230以及S310~S330。其中,操作S210~S230与图2A描述的方法相同或类似,在此不再赘述。
在操作S310,在占用内存量的第一判断结果满足第一预设条件的情况下,进行计算量的判断,以从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务。
根据本公开实施例,第一预设条件例如包括占用内存量大于具体的数值(例如500G等),内存量的第一判断结果为满足第一预设条件或者不满足第一预设条件,即,满足第一预设条件包括内存量大于该具体的数值,不满足第一预设条件包括内存量小于等于该具体的数值。
在第一判断结果满足第一预设条件(例如内存量大于该具体的数值)的情况下,继续进行查询任务的计算量的判断,得到的判断结果能够作为从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务的依据。
在操作S320,在占用内存量的第一判断结果满足第一预设条件的情况下,进行预设处理模式的判断,以从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务。
在第一判断结果满足第一预设条件(例如内存量大于具体的数值)的情况下,还可以是,继续进行查询任务中是否包含预设处理模式的判断,例如判断查询语句中是否包含“join”关键词等,得到的判断结果能够作为从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务的依据。
在操作S330,在计算量的第二判断结果满足第二预设条件的情况下,进行预设处理模式的判断,以从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务。
根据本公开实施例,第二预设条件例如包括计算量的大小,计算量的第一判断结果为满足第二预设条件或者不满足第二预设条件,即,满足第二预设条件包括计算量较小的情况,不满足第二预设条件包括计算量较大的情况。
例如,在操作S310中进行查询任务的计算量的判断时,在第二判断结果满足第二预设条件(例如计算量较小)的情况下,继续进行查询任务中是否包含预设处理模式的判断,例如判断查询语句中是否包含“join”关键词等,得到的判断结果能够作为从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务的依据。
图4示意性示出了根据本公开再一实施例的用于电子设备的数据查询方法的流程图。
如图4所示,该方法包括操作S401~S417。
在操作S401,获取指示查询任务的查询语句。其具体过程与图2A描述操作S210相同或类似,在此不再赘述。
在操作S402,判断是否有多个处于空闲状态的查询引擎。当判断结果为有一个处于空闲状态的查询引擎时,执行操作S403,即,调度该处于空闲状态的查询引擎执行查询任务。当判断结果为有多个处于空闲状态的查询引擎时,可以执行操作S404。
在操作S403,由处于空闲状态的一个查询引擎执行查询任务。
在操作S404,判断每个查询引擎(例如还可以是判断处于空闲状态的多个查询引擎)拥有的资源是否均等或大小不超过第一预设值。
根据本公开实施例,查询引擎所拥有的资源包括在执行查询任务时所能运用的资源,该资源例如包括内存资源、CPU等硬件资源,该资源为电子设备为每个查询引擎配置的资源。
根据本公开实施例,第一预设值可以是具体的数据,例如可以为10%等,该第一预设值可根据时间应用情况具体设定。
在每个查询引擎拥有的资源不均等或者资源大小超过第一预设值时,可以执行操作S405。在每个查询引擎拥有的资源均等或者资源大小不超过第一预设值时,可以执行操作S407。
在操作S405,在每个查询引擎拥有的资源不均等或者大小超过第一预设值时,可以调度合适的查询引擎,例如调度拥有资源最多的查询引擎或者资源大小超过第一预设值的查询引擎。
在操作S406,由操作S405调度的查询引擎执行查询任务。
在操作S407,判断目标表的内存量是否大于第二预设值。第二预设值可以是具体的数据,例如可以为500G等,该第二预设值可根据时间应用情况具体设定。
在目标表的内存量较小时,例如小于等于第二预设值时,执行操作S408。
在操作S408,在目标表的内存量较小时,例如小于等于第二预设值时,调度合适的查询引擎,例如可以调度spark或impala。
在操作S409,由操作S408调度的查询引擎执行查询任务,例如由spark或impala执行查询任务。
在操作S410,判断计算量是否较大,当计算量较大时,执行操作S411,当计算量较小时,执行操作S413。
在操作S411,当计算量较大时,调度合适的查询引擎,例如可以调度hive。
在操作S412,由操作S411调度的查询引擎执行查询任务,例如由hive执行查询任务。
在操作S413,判断是否包含预设处理模式,例如判断查询语句中是否包含特定关键词,例如“join”关键词。
在操作S414,在查询语句中包含特定关键词,例如“join”关键词时,调度合适的查询引擎,例如调度impala。
在操作S415,由操作S414调度的查询引擎执行查询任务,例如由impala执行查询任务。
在操作S416,在不包含预设处理模式时,调度合适的查询引擎,例如调度presto。
在操作S417,由操作S416调度的查询引擎执行查询任务,例如由presto执行查询任务。
可以理解,本公开实施例的所做出的举例是为了便于理解本公开的内容,具体在何种情况下调度何种查询引擎,本公开实施例不作限制,本领域技术人员可根据实际的应用情况具体设定。
图5A~5B示意性示出了根据本公开实施例的用于电子设备的数据查询系统的框图。
如图5A所示,数据查询系统500包括获取模块510、确定模块520、以及调度模块530。数据查询系统500可以执行上面参考图2A描述的方法。
具体地,获取模块510可以获取指示查询任务的查询语句。根据本公开实施例,获取模块510例如可以执行上文参考图2A描述的操作S210,在此不再赘述。
确定模块520可以基于查询语句确定执行查询任务所需的运行信息。
在本公开实施例中,运行信息包括以下任意一项或多项:查询任务所针对的目标表的占用内存量,或查询任务的计算量,或查询任务中是否包含预设处理模式。
根据本公开实施例,确定模块520例如可以执行上文参考图2A描述的操作S220,在此不再赘述。
调度模块530可以从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务。根据本公开实施例,调度模块530例如可以执行上文参考图2A描述的操作S230,在此不再赘述。
如图5B所示,调度模块530还包括第一调度子模块531、确定子模块532、以及第二调度子模块533。
具体地,第一调度子模块531可以在多个查询引擎中当前存在处于空闲状态的查询引擎的情况下,从处于空闲状态的查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务。根据本公开实施例,第一调度子模块531例如可以执行上文参考图2B描述的操作S231,在此不再赘述。
确定子模块532可以确定多个查询引擎中每个查询引擎当前拥有的资源,其中,资源包括电子设备为多个查询引擎中的每个查询引擎配置的资源。根据本公开实施例,确定子模块532例如可以执行上文参考图2B描述的操作S232,在此不再赘述。
第二调度子模块533可以调度当前拥有的资源最多的查询引擎执行查询任务。根据本公开实施例,第二调度子模块533例如可以执行上文参考图2B描述的操作S233,在此不再赘述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块510、确定模块520、调度模块530、第一调度子模块531、确定子模块532、以及第二调度子模块533中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块510、确定模块520、调度模块530、第一调度子模块531、确定子模块532、以及第二调度子模块533中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块510、确定模块520、调度模块530、第一调度子模块531、确定子模块532、以及第二调度子模块533中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的用于电子设备的数据查询的计算机系统的方框图。图6示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,用于电子设备的数据查询的计算机系统600包括处理器601、计算机可读存储介质602。该系统600可以执行根据本公开实施例的方法。
具体地,处理器601例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质602,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
计算机可读存储介质602可以包括计算机程序603,该计算机程序603可以包括代码/计算机可执行指令,其在由处理器601执行时使得处理器601执行根据本公开实施例的方法或其任何变形。
计算机程序603可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序603中的代码可以包括一个或多个程序模块,例如包括603A、模块603B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器601执行时,使得处理器601可以执行根据本公开实施例的方法或其任何变形。
根据本发明的实施例,获取模块510、确定模块520、调度模块530、第一调度子模块531、确定子模块532、以及第二调度子模块533中的至少一个可以实现为参考图6描述的计算机程序模块,其在被处理器601执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现:
一种用于电子设备的数据查询方法,该方法包括:获取指示查询任务的查询语句,基于查询语句确定执行查询任务所需的运行信息,以及从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务。
可选地,上述运行信息包括以下任意一项或多项:查询任务所针对的目标表的占用内存量,或查询任务的计算量,或查询任务中是否包含预设处理模式。
可选地,上述从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务,包括:在多个查询引擎中当前存在处于空闲状态的查询引擎的情况下,从处于空闲状态的查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务。
可选地,上述从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务,包括:确定多个查询引擎中每个查询引擎当前拥有的资源,其中,资源包括电子设备为多个查询引擎中的每个查询引擎配置的资源,以及调度当前拥有的资源最多的查询引擎执行查询任务。
可选地,上述方法还包括以下任意一项或多项:在占用内存量的第一判断结果满足第一预设条件的情况下,进行计算量的判断,以从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务,或在占用内存量的第一判断结果满足第一预设条件的情况下,进行预设处理模式的判断,以从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务,或在计算量的第二判断结果满足第二预设条件的情况下,进行预设处理模式的判断,以从多个查询引擎中调度运行能力与运行信息相匹配的查询引擎执行查询任务。
根据本公开的实施例,计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (10)
1.一种用于电子设备的数据查询方法,所述方法包括:
获取指示查询任务的查询语句;
基于所述查询语句确定执行所述查询任务所需的运行信息;以及
从多个查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务。
2.根据权利要求1所述的方法,其中,所述运行信息包括以下任意一项或多项:
所述查询任务所针对的目标表的占用内存量;或
所述查询任务的计算量;或
所述查询任务中是否包含预设处理模式。
3.根据权利要求1所述的方法,其中,所述从所述多个查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务,包括:
在所述多个查询引擎中当前存在处于空闲状态的查询引擎的情况下,从所述处于空闲状态的查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务。
4.根据权利要求1所述的方法,其中,所述从所述多个查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务,包括:
确定所述多个查询引擎中每个查询引擎当前拥有的资源,其中,所述资源包括所述电子设备为所述多个查询引擎中的每个查询引擎配置的资源;以及
调度当前拥有的资源最多的查询引擎执行所述查询任务。
5.根据权利要求2所述的方法,还包括以下任意一项或多项:
在所述占用内存量的第一判断结果满足第一预设条件的情况下,进行所述计算量的判断,以从多个查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务;或
在所述占用内存量的第一判断结果满足第一预设条件的情况下,进行所述预设处理模式的判断,以从多个查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务;或
在所述计算量的第二判断结果满足第二预设条件的情况下,进行所述预设处理模式的判断,以从多个查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务。
6.一种用于电子设备的数据查询系统,所述系统包括:
获取模块,获取指示查询任务的查询语句;
确定模块,基于所述查询语句确定执行所述查询任务所需的运行信息;以及
调度模块,从多个查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务。
7.根据权利要求6所述的系统,其中,所述运行信息包括以下任意一项或多项:
所述查询任务所针对的目标表的占用内存量;或
所述查询任务的计算量;或
所述查询任务中是否包含预设处理模式。
8.根据权利要求6所述的系统,其中,所述调度模块包括:
第一调度子模块,在所述多个查询引擎中当前存在处于空闲状态的查询引擎的情况下,从所述处于空闲状态的查询引擎中调度运行能力与所述运行信息相匹配的查询引擎执行所述查询任务。
9.根据权利要求6所述的系统,其中,所述调度模块包括:
确定子模块,确定所述多个查询引擎中每个查询引擎当前拥有的资源,其中,所述资源包括所述电子设备为所述多个查询引擎中的每个查询引擎配置的资源;以及
第二调度子模块,调度当前拥有的资源最多的查询引擎执行所述查询任务。
10.一种服务器组,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现根据权利要求1~5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810295606.0A CN108549683B (zh) | 2018-04-03 | 2018-04-03 | 数据查询方法以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810295606.0A CN108549683B (zh) | 2018-04-03 | 2018-04-03 | 数据查询方法以及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108549683A true CN108549683A (zh) | 2018-09-18 |
CN108549683B CN108549683B (zh) | 2022-04-22 |
Family
ID=63514205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810295606.0A Active CN108549683B (zh) | 2018-04-03 | 2018-04-03 | 数据查询方法以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108549683B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582693A (zh) * | 2018-11-26 | 2019-04-05 | 成都四方伟业软件股份有限公司 | 基于web的数据逻辑表达式处理方法及装置 |
CN110825767A (zh) * | 2019-11-15 | 2020-02-21 | 江苏满运软件科技有限公司 | 数据查询方法、平台、设备及存储介质 |
CN111104419A (zh) * | 2019-12-24 | 2020-05-05 | 上海众源网络有限公司 | 一种数据查询方法及装置 |
CN111143399A (zh) * | 2019-12-19 | 2020-05-12 | 微民保险代理有限公司 | 数据处理方法、装置、存储介质和计算机设备 |
CN111159226A (zh) * | 2019-12-02 | 2020-05-15 | 平安资产管理有限责任公司 | 指标查询方法及系统 |
CN111159229A (zh) * | 2019-12-31 | 2020-05-15 | 北京奇艺世纪科技有限公司 | 一种数据查询方法及装置 |
CN111401560A (zh) * | 2020-03-24 | 2020-07-10 | 北京觉非科技有限公司 | 推理任务的处理方法、设备和存储介质 |
CN111723112A (zh) * | 2020-06-11 | 2020-09-29 | 咪咕文化科技有限公司 | 数据任务执行方法、装置、电子设备及存储介质 |
CN111756752A (zh) * | 2020-06-24 | 2020-10-09 | 北京金山云网络技术有限公司 | 对数据库的访问权限的控制方法、装置及电子设备 |
CN112860736A (zh) * | 2021-03-09 | 2021-05-28 | 深圳前海微众银行股份有限公司 | 大数据查询优化方法、设备及可读存储介质 |
CN113051064A (zh) * | 2019-12-26 | 2021-06-29 | 中移(上海)信息通信科技有限公司 | 任务调度方法、装置、设备及存储介质 |
CN113127509A (zh) * | 2019-12-31 | 2021-07-16 | 中国移动通信集团重庆有限公司 | PaaS平台中SQL执行引擎的适配方法及装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100161313A1 (en) * | 2008-12-18 | 2010-06-24 | Palo Alto Research Center Incorporated | Region-Matching Transducers for Natural Language Processing |
US20110137724A1 (en) * | 2009-12-09 | 2011-06-09 | Icelero Llc | Method, system and apparatus for advertisement delivery from electronic data storage devices |
CN102687144A (zh) * | 2009-12-23 | 2012-09-19 | 起元技术有限责任公司 | 管理查询 |
CN104133858A (zh) * | 2014-07-15 | 2014-11-05 | 武汉邮电科学研究院 | 基于列存储的智能双引擎分析系统及方法 |
CN104216992A (zh) * | 2014-09-09 | 2014-12-17 | 百度在线网络技术(北京)有限公司 | 一种信息处理方法及装置 |
CN104750690A (zh) * | 2013-12-25 | 2015-07-01 | 中国移动通信集团公司 | 一种查询处理方法、装置及系统 |
CN106649503A (zh) * | 2016-10-11 | 2017-05-10 | 北京集奥聚合科技有限公司 | 一种基于sql的查询方法及系统 |
CN107133342A (zh) * | 2017-05-16 | 2017-09-05 | 广州舜飞信息科技有限公司 | 一种IndexR实时数据分析库 |
CN107291770A (zh) * | 2016-04-11 | 2017-10-24 | 中国移动通信集团山西有限公司 | 一种分布式系统中海量数据的查询方法及装置 |
CN107329814A (zh) * | 2017-06-16 | 2017-11-07 | 电子科技大学 | 一种基于rdma的分布式内存数据库查询引擎系统 |
CN107609130A (zh) * | 2017-09-18 | 2018-01-19 | 链家网(北京)科技有限公司 | 一种选择数据查询引擎的方法及服务器 |
US20180075402A1 (en) * | 2014-06-03 | 2018-03-15 | Ocado Innovation Limited | Methods, systems and apparatus for controlling movement of transporting devices |
-
2018
- 2018-04-03 CN CN201810295606.0A patent/CN108549683B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100161313A1 (en) * | 2008-12-18 | 2010-06-24 | Palo Alto Research Center Incorporated | Region-Matching Transducers for Natural Language Processing |
US20110137724A1 (en) * | 2009-12-09 | 2011-06-09 | Icelero Llc | Method, system and apparatus for advertisement delivery from electronic data storage devices |
CN102687144A (zh) * | 2009-12-23 | 2012-09-19 | 起元技术有限责任公司 | 管理查询 |
CN104750690A (zh) * | 2013-12-25 | 2015-07-01 | 中国移动通信集团公司 | 一种查询处理方法、装置及系统 |
US20180075402A1 (en) * | 2014-06-03 | 2018-03-15 | Ocado Innovation Limited | Methods, systems and apparatus for controlling movement of transporting devices |
CN104133858A (zh) * | 2014-07-15 | 2014-11-05 | 武汉邮电科学研究院 | 基于列存储的智能双引擎分析系统及方法 |
CN104216992A (zh) * | 2014-09-09 | 2014-12-17 | 百度在线网络技术(北京)有限公司 | 一种信息处理方法及装置 |
CN107291770A (zh) * | 2016-04-11 | 2017-10-24 | 中国移动通信集团山西有限公司 | 一种分布式系统中海量数据的查询方法及装置 |
CN106649503A (zh) * | 2016-10-11 | 2017-05-10 | 北京集奥聚合科技有限公司 | 一种基于sql的查询方法及系统 |
CN107133342A (zh) * | 2017-05-16 | 2017-09-05 | 广州舜飞信息科技有限公司 | 一种IndexR实时数据分析库 |
CN107329814A (zh) * | 2017-06-16 | 2017-11-07 | 电子科技大学 | 一种基于rdma的分布式内存数据库查询引擎系统 |
CN107609130A (zh) * | 2017-09-18 | 2018-01-19 | 链家网(北京)科技有限公司 | 一种选择数据查询引擎的方法及服务器 |
Non-Patent Citations (2)
Title |
---|
ANITA BRIGIT MATHEW 等: "Efficient information retrieval using Lucene, LIndex and HIndex in Hadoop", 《2014 IEEE/ACS 11TH INTERNATIONAL CONFERENCE ON COMPUTER SYSTEMS AND APPLICATIONS (AICCSA)》 * |
刘咏: "网络安全性能测试平台之端口扫描研究及实现", 《中国优秀博硕士学位论文全文数据库 (硕士) 信息科技辑》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582693A (zh) * | 2018-11-26 | 2019-04-05 | 成都四方伟业软件股份有限公司 | 基于web的数据逻辑表达式处理方法及装置 |
CN110825767A (zh) * | 2019-11-15 | 2020-02-21 | 江苏满运软件科技有限公司 | 数据查询方法、平台、设备及存储介质 |
CN111159226A (zh) * | 2019-12-02 | 2020-05-15 | 平安资产管理有限责任公司 | 指标查询方法及系统 |
CN111143399A (zh) * | 2019-12-19 | 2020-05-12 | 微民保险代理有限公司 | 数据处理方法、装置、存储介质和计算机设备 |
CN111143399B (zh) * | 2019-12-19 | 2024-04-02 | 微民保险代理有限公司 | 数据处理方法、装置、存储介质和计算机设备 |
CN111104419A (zh) * | 2019-12-24 | 2020-05-05 | 上海众源网络有限公司 | 一种数据查询方法及装置 |
CN113051064A (zh) * | 2019-12-26 | 2021-06-29 | 中移(上海)信息通信科技有限公司 | 任务调度方法、装置、设备及存储介质 |
CN113051064B (zh) * | 2019-12-26 | 2024-05-24 | 中移(上海)信息通信科技有限公司 | 任务调度方法、装置、设备及存储介质 |
CN113127509B (zh) * | 2019-12-31 | 2023-08-15 | 中国移动通信集团重庆有限公司 | PaaS平台中SQL执行引擎的适配方法及装置 |
CN113127509A (zh) * | 2019-12-31 | 2021-07-16 | 中国移动通信集团重庆有限公司 | PaaS平台中SQL执行引擎的适配方法及装置 |
CN111159229B (zh) * | 2019-12-31 | 2024-04-26 | 北京奇艺世纪科技有限公司 | 一种数据查询方法及装置 |
CN111159229A (zh) * | 2019-12-31 | 2020-05-15 | 北京奇艺世纪科技有限公司 | 一种数据查询方法及装置 |
CN111401560A (zh) * | 2020-03-24 | 2020-07-10 | 北京觉非科技有限公司 | 推理任务的处理方法、设备和存储介质 |
CN111723112A (zh) * | 2020-06-11 | 2020-09-29 | 咪咕文化科技有限公司 | 数据任务执行方法、装置、电子设备及存储介质 |
CN111756752A (zh) * | 2020-06-24 | 2020-10-09 | 北京金山云网络技术有限公司 | 对数据库的访问权限的控制方法、装置及电子设备 |
CN112860736A (zh) * | 2021-03-09 | 2021-05-28 | 深圳前海微众银行股份有限公司 | 大数据查询优化方法、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108549683B (zh) | 2022-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108549683A (zh) | 数据查询方法以及系统 | |
Yang et al. | Toward personalized, context-aware routing | |
US20190005430A1 (en) | Cross-domain multi-attribute hashed and weighted dynamic process prioritization | |
CN109934619A (zh) | 用户画像标签建模方法、装置、电子设备及可读存储介质 | |
US10740682B2 (en) | Sensor based truth maintenance | |
CN109472523A (zh) | 用于分拣货物的方法和装置 | |
CN107924406A (zh) | 选择用于对实时数据流执行的查询 | |
US20180260314A1 (en) | Smart advisory for distributed and composite testing teams based on production data and analytics | |
CN110070244A (zh) | 供应商评价方法、系统、电子设备和计算机可读介质 | |
CN109446253B (zh) | 数据查询控制方法、装置、计算机设备及存储介质 | |
CN105765573A (zh) | 网站通信量优化方面的改进 | |
CN109214674B (zh) | 客服系统管理方法、客服系统及电子设备 | |
CN108683692A (zh) | 一种业务请求处理方法及装置 | |
CN108762907A (zh) | 基于多个客户端的任务处理方法及系统 | |
US20170046803A1 (en) | Automatic space exchange opportunity response systems and methods | |
CN110377829A (zh) | 应用于电子设备的功能推荐方法和装置 | |
CN111488913A (zh) | 基于多分析任务的数据分析方法及电子设备 | |
CN103842997A (zh) | 搜索和创建自适应内容 | |
CN112129303A (zh) | 观影日程安排方法、安排系统、存储介质、及电子设备 | |
CN110287356A (zh) | 一种用于人脸识别算法引擎的评测、调用方法和系统 | |
CN110363544A (zh) | 事件处理方法、装置、电子设备及存储介质 | |
Lubis et al. | Disruptive innovation service oriented framework: a case study of transportation in Indonesia | |
CN110019813A (zh) | 寿险案例检索方法、检索装置、服务器及可读存储介质 | |
KR102647808B1 (ko) | 예비 부품들의 번들들의 지능적 예측 | |
CN110033292A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |