CN113742359A - 一种即席查询方法、装置、电子设备及存储介质 - Google Patents

一种即席查询方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113742359A
CN113742359A CN202110069711.4A CN202110069711A CN113742359A CN 113742359 A CN113742359 A CN 113742359A CN 202110069711 A CN202110069711 A CN 202110069711A CN 113742359 A CN113742359 A CN 113742359A
Authority
CN
China
Prior art keywords
query
sql statement
sql
hoc
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
CN202110069711.4A
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 Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information 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 Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202110069711.4A priority Critical patent/CN113742359A/zh
Publication of CN113742359A publication Critical patent/CN113742359A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种即席查询方法、装置、电子设备及存储介质。其中,即席查询方法包括:基于第一结构化查询语言SQL语句确定查询引擎;对所述第一SQL语句进行SQL改写,得到第二SQL语句;所述第二SQL语句表征所述查询引擎可识别的SQL语句;基于所述第二SQL语句在所述查询引擎中进行数据查询,返回查询结果。

Description

一种即席查询方法、装置、电子设备及存储介质
技术领域
本申请涉及大数据技术领域,尤其涉及一种即席查询方法、装置、电子设备及存储介质。
背景技术
即席查询(Ad Hoc)是一种用户根据自己的需求,灵活地选择查询条件,***根据用户的选择生成相应的统计报表的数据查询方式。通常情况下,即席查询的查询流程为:将数据仓库中的维度表和事实表映射到语义层,用户通过语义层选择表,建立维度表与事实表之间的关联,最终生成查询语句,通过查询语句进行查询。即席查询一般对查询时间有要求,对应的查询引擎大多基于内存查询。相关技术中,即席查询的查询效率低下。
发明内容
有鉴于此,本申请实施例提供一种即席查询方法、装置、电子设备及存储介质,以解决相关技术中即席查询效率低下的问题。
为达到上述目的,本申请实施例的技术方案是这样实现的:
本申请实施例提供了一种即席查询方法,所述方法包括:
基于第一结构化查询语言(SQL,Structured Query Language)语句确定查询引擎;
对所述第一SQL语句进行SQL改写,得到第二SQL语句;所述第二SQL语句表征所述查询引擎可识别的SQL语句;
基于所述第二SQL语句在所述查询引擎中进行数据查询,返回查询结果。
上述方案中,所述查询引擎为Presto查询引擎或Clickhouse查询引擎。
上述方案中,所述第一SQL语句满足第一设定条件;所述第一设定条件表征所述第一SQL语句由路由层发出。
上述方案中,所述基于第一SQL语句确定查询引擎,所述方法包括:
将所述第一SQL语句路由至聚合层进行查询;
在所述第一SQL语句在所述聚合层没有匹配到对应的查询结果的情况下,基于所述第一SQL语句确定对应的查询引擎。
上述方案中,所述基于第一SQL语句确定查询引擎,所述方法包括:
基于所述第一SQL语句中携带的第一信息,确定所述第一SQL语句对应的查询引擎;其中,
所述第一信息表征所述第一SQL语句对应的时效要求。
上述方案中,所述将所述第一SQL语句路由至聚合层进行查询,包括:
在所述第一SQL语句不满足第二设定条件的情况下,将所述第一SQL语句路由至所述聚合层,在所述聚合层进行数据查询;其中,
所述第二设定条件表征所述第一SQL语句在缓存区域匹配到对应的查询结果。
上述方案中,所述方法还包括:
在所述第一SQL语句满足所述第二设定条件的情况下,返回查询结果。
上述方案中,根据权利要求6或7所述的即席查询方法,其特征在于,所述方法还包括:
在所述第一SQL语句的语法符合设定语法的情况下,在所述缓存区域进行数据查询。
上述方案中,所述方法还包括:
所述第一SQL语句的长度大于设定阈值的情况下,将所述第一SQL语句拆分为至少一个子SQL语句;
基于所述子SQL语句的查询结果确定所述第一SQL语句的查询结果;
其中,所述至少一个子SQL语句中的每一个子SQL语句的长度不大于所述设定阈值。
本申请实施例还提供了一种即席查询装置,所述装置包括:
确定单元,用于基于第一SQL语句确定查询引擎;
改写单元,用于对所述第一SQL语句进行SQL改写,得到第二SQL语句;所述第二SQL语句表征所述查询引擎可识别的SQL语句;
查询单元,用于基于所述第二SQL语句在所述查询引擎中进行数据查询,返回查询结果。
本申请实施例还提供了一种电子设备,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,
所述处理器用于运行所述计算机程序时,执行上述任一方法的步骤。
本申请实施例还提供了一种存储介质,其上存有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一方法的步骤。
在本申请实施例中,通过基于第一结构化查询语言SQL语句确定查询引擎;对所述第一SQL语句进行SQL改写,得到第二SQL语句;所述第二SQL语句表征所述查询引擎可识别的SQL语句;基于所述第二SQL语句在所述查询引擎中进行数据查询,返回查询结果,这样,即便业务方输入的是与查询引擎不适配的查询语句,查询***也能根据查询引擎对查询语句进行对应的改写,以便能够在查询引擎中完成数据查询,从而提高了即席查询的效率。
附图说明
图1为本申请实施例提供的即席查询方法的实现流程示意图;
图2为本申请应用实施例提供的即席查询方法的实现流程示意图;
图3为本申请实施例提供的即席查询装置的示意图;
图4为本申请实施例提供的电子设备的硬件组成结构示意图。
具体实施方式
即席查询的查询指令是用户在使用时临时生产的,是一种松散类型的命令/查询。即席查询获得的查询结果取决于某个变量,在每次执行查询命令时,根据变量取值的不同,查询结果也会不同。
即席查询通常根据动态编程的SQL语句进行查询,也就是说,SQL查询语句是短期的,并且是在运行查询***时创建的,查询***无法预先优化这些SQL查询语句,因此即席查询是评估数据仓库运行性能的一个重要指标。
即席查询一般对查询时间有要求,对应的查询引擎多基于内存查询。相关技术中,即席查询存在多种查询引擎,然而不同的查询引擎都具有自身的特性,以及自身独有的SQL语法,因此在使用这些查询引擎时,业务方需要对每种查询引擎的SQL语法进行了解和学习,输入与查询引擎适配的SQL语句后才能完成数据查询,这给业务方带来了极大的不便,也使得即席查询的效率低下。
基于此,本申请实施例提供了一种即席查询方法、装置、电子设备及存储介质,通过基于第一结构化查询语言SQL语句确定查询引擎;对所述第一SQL语句进行SQL改写,得到第二SQL语句;所述第二SQL语句表征所述查询引擎可识别的SQL语句;基于所述第二SQL语句在所述查询引擎中进行数据查询,返回查询结果,这样,即便业务方输入的是与查询引擎不适配的查询语句,查询***也能根据查询引擎对查询语句进行对应的改写,以便能够在查询引擎中完成数据查询,从而提高了即席查询的效率。
下面结合附图及实施例对本申请再作进一步详细的描述。
图1为本申请实施例提供的即席查询方法的实现流程示意图。如图1所示,所述方法包括:
步骤101:基于第一结构化查询语言SQL语句确定查询引擎。
在一实施例中,所述第一SQL语句满足第一设定条件;所述第一设定条件表征所述第一SQL语句由路由层发出。
这里,当第一SQL语句是由路由层发出时,表示此次查询过程需要在明细表中完成,而在明细表中进行查询需要通过查询引擎来完成,因此,基于第一SQL语句确定出查询引擎。其中,明细表包括维度表和事实表;维度表是维度属性的集合表,是进入事实表的入口;事实表是维度模型的基本表,也是数据仓库结构中的核心表,事实表是紧紧围绕着业务过程来设计的,通过获取描述业务过程的度量来表达业务过程,包含了引用的维度和与业务过程有关的度量。
通过在所述第一SQL语句满足第一设定条件时确定查询引擎,可以在需要明细表查询时就确定出对应的查询引擎,提高了即席查询的效率。
在一实施例中,所述查询引擎为Presto查询引擎或Clickhouse查询引擎。
这里,Presto查询引擎是一种基于内存的分布式查询引擎,在Presto中,所有的查询过程和计算过程都是在内存中执行,Presto本身并不存储数据,但可以接入多种数据源,且支持跨数据源的级联查询,可以满足大数据量的分析计算需求,并发性强。
Clickhouse查询引擎是一种用于联机分析处理(OLAP,Online AnalyticalProcessing)的列式数据库查询引擎,基于内存完成计算过程。Clickhouse查询性能强大,支持多种查询功能,查询速度极快。Clickhouse无法直接适配已有的数据源,使用时须导入外部数据。
通过提供Presto和Clickhouse两种查询引擎,可以根据业务方的需求,满足更多的业务场景,降低计算存储的成本。
在一实施例中,所述基于第一SQL语句确定查询引擎,所述方法包括:
将所述第一SQL语句路由至聚合层进行查询;
在所述第一SQL语句在所述聚合层没有匹配到对应的查询结果的情况下,基于所述第一SQL语句确定对应的查询引擎。
这里,所述聚合层也就是汇总数据层,根据业务方的查询场景,查询***识别出常用的聚合维度,对事实表和维度表进行一定程度的聚合,并在聚合的基础上,基于物化视图进行轻度汇总形成的一张表,如周报、月报、年报等都属于聚合表。其中,常用的聚合手段有计数、求和、求平均值。物化视图是包括查询结果的数据库对象,是远程数据库的本地副本,用来生成基于数据表求和的汇总表。将一些耗时较大的表连接后用物化视图实现,可以提高查询效率。
由于聚合层已经对数据进行了轻度汇总,所以先将第一SQL语句路由至聚合层进行查询,在聚合层没有匹配到对应的查询结果的情况下,说明聚合层无法满足第一SQL语句的查询请求,需要进行进一步的查询,因此,基于第一SQL语句确定对应的查询引擎,通过查询引擎来进行查询。
通过将所述第一SQL语句路由至聚合层进行查询,在聚合层没有匹配到对应的查询结果后,基于所述第一SQL语句确定对应的查询引擎,可以在聚合层无法满足查询需求时,及时根据查询引擎进行查询,提高了查询效率。
在一实施例中,所述基于第一SQL语句确定查询引擎,所述方法包括:
基于所述第一SQL语句中携带的第一信息,确定所述第一SQL语句对应的查询引擎;其中,
所述第一信息表征所述第一SQL语句对应的时效要求。
这里,当第一SQL语句中携带的第一信息中对应的时效要求为低时,表示业务方对实时性要求较低,分钟级的响应也可以接受,因此优先选择并发性较好、无需考虑数据源的Presto查询引擎进行数据查询。
当第一SQL语句中携带的第一信息中对应的时效要求为高时,表示业务方对实时性要求较高,需要秒级甚至亚秒级的响应,因此优先选择查询速度较快的Clickhouse查询引擎进行数据查询。
通过基于第一SQL语句中携带的第一信息,确定对应的查询引擎,可以根据业务方的需求,灵活地选择更符合当前业务场景的查询引擎,提高了即席查询的查询效率。
在一实施例中,所述将所述第一SQL语句路由至聚合层进行查询,包括:
在所述第一SQL语句不满足第二设定条件的情况下,将所述第一SQL语句路由至所述聚合层,在所述聚合层进行数据查询;其中,
所述第二设定条件表征所述第一SQL语句在缓存区域匹配到对应的查询结果。
这里,在所述第一SQL语句在缓存区域没有匹配到对应的查询结果的情况下,表示缓存区域无法满足查询需求,需要进行进一步的查询,此时,将第一SQL语句路由至进行了轻度汇总的聚合层,在聚合层中进行数据查询。
通过在第一SQL语句不满足第二设定条件的情况下,将第一SQL语句路由至聚合层进行查询,如果聚合层存在与第一SQL语句对应的查询结果,则返回查询结果,不需要进行进一步的查询,可以减少查询的数据量,也可以减少查询的步骤,提高了即席查询的查询效率。
在一实施例中,所述方法还包括:
在所述第一SQL语句满足所述第二设定条件的情况下,返回查询结果。
这里,如果第一SQL语句在缓存区域匹配到对应的查询结果,表示缓存区域可以满足本次的查询请求,因此,直接返回在缓存区域匹配到的对应的查询结果。
通过在第一SQL语句满足第二设定条件的情况下,直接返回查询结果,不需要进行进一步的查询,减少了查询步骤,提高了查询效率。
在一实施例中,所述方法还包括:
在所述第一SQL语句的语法符合设定语法的情况下,在所述缓存区域进行数据查询。
这里,接收到第一SQL语句的查询请求后,查询***首先校验第一SQL语句的语法是否符合设定语法,如果不符合设定语法,代表该第一SQL语句是无效的,根据该第一SQL语句无法进行数据查询,在这种情况下返回一条提示信息,提示本次查询错误。反之,如果第一SQL语句的语法符合设定语法,则进入下一个查询步骤,即在缓存区域进行数据查询。
通过在第一SQL语句的语法符合设定语法的情况下,在缓存区域进行数据查询,可以保证查询***基于正确的SQL语句进行数据查询,提高了查询效率。
步骤102:对所述第一SQL语句进行SQL改写,得到第二SQL语句;所述第二SQL语句表征所述查询引擎可识别的SQL语句。
这里,对所述第一SQL语句进行改写,得到第二SQL语句,在接收到由路由层发出的第一SQL语句,该第一SQL语句可能是符合标准语法但不符合待执行引擎的语法的SQL语句,在确定出待执行的查询引擎后,需要根据待执行的查询引擎的SQL语法对所述第一SQL语句进行改写,使得改写得到的第二SQL语句可以适配待执行的查询引擎。
步骤103:基于所述第二SQL语句在所述查询引擎中进行数据查询,返回查询结果。
这里,在完成第一SQL语句的改写后,基于能够适配待执行的查询引擎的第二SQL语句,在确定出的待执行的查询引擎中进行数据查询,并返回查询结果。
图2为本申请应用实施例提供的即席查询方法的实现流程示意图,请参见图2,在接收到业务方的查询请求后,首先对SQL语句的语法进行校验,在校验失败后,提示查询失败,进行下一次查询;在校验成功后,首先判断缓存区域是否存在和所述SQL语句匹配的查询结果,在匹配成功后,直接返回查询结果;在匹配失败的情况下,路由模块将所述SQL语句路由至聚合层,在聚合层匹配是否存在对应的查询结果,在匹配成功后,返回查询结果;在聚合层匹配失败的情况下,路由模块获取所述SQL语句对应的查询引擎;在获取的查询引擎为Presto的情况下,基于Presto对所述SQL语句进行改写,基于改写后的SQL语句在Presto中完成数据查询,并返回查询结果;在获取的查询引擎为Clickhouse的情况下,基于Clickhouse对所述SQL语句进行改写,基于改写后的SQL语句在Clickhouse中完成数据查询,并返回查询结果。
在本申请实施例中,通过基于第一结构化查询语言SQL语句确定查询引擎;对所述第一SQL语句进行SQL改写,得到第二SQL语句;所述第二SQL语句表征所述查询引擎可识别的SQL语句;基于所述第二SQL语句在所述查询引擎中进行数据查询,返回查询结果,这样,即便业务方输入的是与查询引擎不适配的查询语句,查询***也能根据查询引擎对查询语句进行对应的改写,以便能够在查询引擎中完成数据查询,从而提高了即席查询的效率。
在一实施例中,所述方法还包括:
所述第一SQL语句的长度大于设定阈值的情况下,将所述第一SQL语句拆分为至少一个子SQL语句;
基于所述子SQL语句的查询结果确定所述第一SQL语句的查询结果;
其中,所述至少一个子SQL语句中的每一个子SQL语句的长度不大于所述设定阈值。
这里,设定阈值为查询引擎所能支持的SQL语句的最大长度,在第一SQL语句的长度大于查询引擎的最大长度时,查询引擎不支持所述第一SQL语句的查询,会导致无法查询,因此在这种情况下,查询***根据接收的所述第一SQL语句的行数的时间顺序,将第一SQL语句拆分为至少一个子SQL语句,其中每一个子SQL语句的长度都不大于所述设定阈值。基于所有子SQL语句的查询结果,汇总得到第一SQL语句的查询结果。
通过对长度大于设定阈值的第一SQL语句进行拆分,避免了查询引擎单次查询存在的长度局限,能够满足业务方更多的查询场景。
需要说明的是,在本申请实施例中,查询***以远程过程调用(RFC,RemoteProcedure Call)接口和超文本传输协议(HTTP,Hyper Text Transfer Protocol)接口对业务方开放,业务方只需在以上两个接口中的其中一个输入符合标准语法的SQL语句,即可利用查询***开始数据查询。其中,RFC接口为一个节点远程请求另一个节点提供服务的接口。
在本申请的实施例中,校验第一SQL语句的语法、对第一SQL语句进行改写,均基于SQL处理器Calcite进行处理,Calcite处理器可以提供一整套处理流程:解析(Parser)->确认(Validate)->优化(Optimize)->执行(Execute),在上述实施例中,查询***主要利用了Calcite处理器的确认和优化功能,一方面验证SQL语句语法的准确性,另一方面针对不同的查询引擎做不同的适配和优化。
为实现本申请实施例的方法,本申请实施例还提供了一种即席查询装置,图3为本申请实施例提供的即席查询装置的示意图,请参见图3,该装置包括:
确定单元301,用于基于第一SQL语句确定查询引擎。
改写单元302,用于对所述第一SQL语句进行SQL改写,得到第二SQL语句;所述第二SQL语句表征所述查询引擎可识别的SQL语句。
查询单元303,用于基于所述第二SQL语句在所述查询引擎中进行数据查询,返回查询结果。
在一实施例中,所述查询引擎为Presto查询引擎或Clickhouse查询引擎。
在一实施例中,所述第一SQL语句满足第一设定条件;所述第一设定条件表征所述第一SQL语句由路由层发出。
在一实施例中,所述确定单元301,还用于将所述第一SQL语句路由至聚合层进行查询;
在所述第一SQL语句在所述聚合层没有匹配到对应的查询结果的情况下,基于所述第一SQL语句确定对应的查询引擎。
在一实施例中,所述确定单元301,还用于基于所述第一SQL语句中携带的第一信息,确定所述第一SQL语句对应的查询引擎;其中,
所述第一信息表征所述第一SQL语句对应的时效要求。
在一实施例中,所述查询单元303,还用于在所述第一SQL语句不满足第二设定条件的情况下,将所述第一SQL语句路由至所述聚合层,在所述聚合层进行数据查询;其中,
所述第二设定条件表征所述第一SQL语句在缓存区域匹配到对应的查询结果。
在一实施例中,所述查询单元303,还用于在所述第一SQL语句满足所述第二设定条件的情况下,返回查询结果。
在一实施例中,所述查询单元303,还用于在所述第一SQL语句的语法符合设定语法的情况下,在所述缓存区域进行数据查询。
在一实施例中,所述装置还包括拆分单元,用于所述第一SQL语句的长度大于设定阈值的情况下,将所述第一SQL语句拆分为至少一个子SQL语句;
基于所述子SQL语句的查询结果确定所述第一SQL语句的查询结果;
其中,所述至少一个子SQL语句中的每一个子SQL语句的长度不大于所述设定阈值。
实际应用时,所述确定单元301、所述改写单元302、所述查询单元303、所述拆分单元可通过终端中的处理器,比如中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital Signal Processor)、微控制单元(MCU,Microcontroller Unit)或可编程门阵列(FPGA,Field-Programmable Gate Array)等实现。
需要说明的是:上述实施例提供的即席查询装置在进行信息显示时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的即席查询装置与即席查询方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种电子设备。图4为本申请实施例提供的电子设备的硬件组成结构示意图,如图4所示,电子设备包括:
通信接口401,能够与其它设备比如网络设备等进行信息交互;
处理器402,与所述通信接口401连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述终端侧一个或多个技术方案提供的方法。而所述计算机程序存储在存储器403上。
具体地,所述处理器402,用于基于第一结构化查询语言SQL语句确定查询引擎;对所述第一SQL语句进行SQL改写,得到第二SQL语句;所述第二SQL语句表征所述查询引擎可识别的SQL语句;基于所述第二SQL语句在所述查询引擎中进行数据查询,返回查询结果。
在一实施例中,所述查询引擎为Presto查询引擎或Clickhouse查询引擎。
在一实施例中,所述第一SQL语句满足第一设定条件;所述第一设定条件表征所述第一SQL语句由路由层发出。
在一实施例中,所述处理器402还用于将所述第一SQL语句路由至聚合层进行查询;在所述第一SQL语句在所述聚合层没有匹配到对应的查询结果的情况下,基于所述第一SQL语句确定对应的查询引擎。
在一实施例中,所述处理器402还用于基于所述第一SQL语句中携带的第一信息,确定所述第一SQL语句对应的查询引擎;其中,所述第一信息表征所述第一SQL语句对应的时效要求。
在一实施例中,所述处理器402还用于在所述第一SQL语句不满足第二设定条件的情况下,将所述第一SQL语句路由至所述聚合层,在所述聚合层进行数据查询;其中,所述第二设定条件表征所述第一SQL语句在缓存区域匹配到对应的查询结果。
在一实施例中,所述处理器402还用于在所述第一SQL语句满足所述第二设定条件的情况下,返回查询结果。
在一实施例中,所述处理器402还用于在所述第一SQL语句的语法符合设定语法的情况下,在所述缓存区域进行数据查询。
在一实施例中,所述处理器402还用于所述第一SQL语句的长度大于设定阈值的情况下,将所述第一SQL语句拆分为至少一个子SQL语句;基于所述子SQL语句的查询结果确定所述第一SQL语句的查询结果;其中,所述至少一个子SQL语句中的每一个子SQL语句的长度不大于所述设定阈值。
当然,实际应用时,电子设备中的各个组件通过总线***404耦合在一起。可理解,总线***404用于实现这些组件之间的连接通信。总线***404除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线***404。
本申请实施例中的存储器403用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
可以理解,存储器403可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器403旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器402中,或者由处理器402实现。处理器402可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器402中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器402可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器402可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器403,处理器402读取存储器403中的程序,结合其硬件完成前述方法的步骤。
处理器402执行所述程序时实现本申请实施例的各个方法中的相应流程。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器403,上述计算机程序可由处理器402执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置、终端和方法,可以通过其它的方式实现。以上所描述的设备实施例仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种即席查询方法,其特征在于,所述方法包括:
基于第一结构化查询语言SQL语句确定查询引擎;
对所述第一SQL语句进行SQL改写,得到第二SQL语句;所述第二SQL语句表征所述查询引擎可识别的SQL语句;
基于所述第二SQL语句在所述查询引擎中进行数据查询,返回查询结果。
2.根据权利要求1所述的即席查询方法,其特征在于,
所述查询引擎为Presto查询引擎或Clickhouse查询引擎。
3.根据权利要求1所述的即席查询方法,其特征在于,
所述第一SQL语句满足第一设定条件;所述第一设定条件表征所述第一SQL语句由路由层发出。
4.根据权利要求1或2所述的即席查询方法,其特征在于,所述基于第一SQL语句确定查询引擎,所述方法包括:
将所述第一SQL语句路由至聚合层进行查询;
在所述第一SQL语句在所述聚合层没有匹配到对应的查询结果的情况下,基于所述第一SQL语句确定对应的查询引擎。
5.根据权利要求1所述的即席查询方法,其特征在于,所述基于第一SQL语句确定查询引擎,所述方法包括:
基于所述第一SQL语句中携带的第一信息,确定所述第一SQL语句对应的查询引擎;其中,
所述第一信息表征所述第一SQL语句对应的时效要求。
6.根据权利要求4所述的即席查询方法,其特征在于,所述将所述第一SQL语句路由至聚合层进行查询,包括:
在所述第一SQL语句不满足第二设定条件的情况下,将所述第一SQL语句路由至所述聚合层,在所述聚合层进行数据查询;其中,
所述第二设定条件表征所述第一SQL语句在缓存区域匹配到对应的查询结果。
7.根据权利要求6所述的即席查询方法,其特征在于,所述方法还包括:
在所述第一SQL语句满足所述第二设定条件的情况下,返回查询结果。
8.根据权利要求6或7所述的即席查询方法,其特征在于,所述方法还包括:
在所述第一SQL语句的语法符合设定语法的情况下,在所述缓存区域进行数据查询。
9.根据权利要求1所述的即席查询方法,其特征在于,所述方法还包括:
所述第一SQL语句的长度大于设定阈值的情况下,将所述第一SQL语句拆分为至少一个子SQL语句;
基于所述子SQL语句的查询结果确定所述第一SQL语句的查询结果;
其中,所述至少一个子SQL语句中的每一个子SQL语句的长度不大于所述设定阈值。
10.一种即席查询装置,其特征在于,所述装置包括:
确定单元,用于基于第一SQL语句确定查询引擎;
改写单元,用于对所述第一SQL语句进行SQL改写,得到第二SQL语句;所述第二SQL语句表征所述查询引擎可识别的SQL语句;
查询单元,用于基于所述第二SQL语句在所述查询引擎中进行数据查询,返回查询结果。
11.一种电子设备,其特征在于,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,
所述处理器用于运行所述计算机程序时,执行权利要求1-9任一项所述方法的步骤。
12.一种存储介质,其上存有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-9任一项所述方法的步骤。
CN202110069711.4A 2021-01-19 2021-01-19 一种即席查询方法、装置、电子设备及存储介质 Pending CN113742359A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110069711.4A CN113742359A (zh) 2021-01-19 2021-01-19 一种即席查询方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110069711.4A CN113742359A (zh) 2021-01-19 2021-01-19 一种即席查询方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN113742359A true CN113742359A (zh) 2021-12-03

Family

ID=78728225

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110069711.4A Pending CN113742359A (zh) 2021-01-19 2021-01-19 一种即席查询方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113742359A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114547086A (zh) * 2022-04-22 2022-05-27 网易(杭州)网络有限公司 数据处理方法、装置、设备及计算机可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114547086A (zh) * 2022-04-22 2022-05-27 网易(杭州)网络有限公司 数据处理方法、装置、设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN109617646B (zh) 报文转换方法、装置、计算机设备及计算机可读存储介质
WO2020192141A1 (zh) 接口模拟方法、装置、计算机设备和存储介质
US11263542B2 (en) Technologies for auto discover and connect to a rest interface
CN112905620B (zh) 数据查询方法及装置、电子设备、存储介质
CN114553784A (zh) 限流处理方法及装置
CN113901083A (zh) 基于多解析器的异构数据源操作资源解析定位方法和设备
CN116166700A (zh) 查询方法、装置、***、电子设备及存储介质
CN108959294B (zh) 一种访问搜索引擎的方法和装置
CN117556008A (zh) 基于大语言模型的交互方法、介质、装置和计算设备
CN113626558B (zh) 一种基于智能推荐的字段标准化的方法和***
CN109241157B (zh) 数据调用方法、装置、通信设备及存储介质
CN113742359A (zh) 一种即席查询方法、装置、电子设备及存储介质
CA3203549A1 (en) Unified verification method, device, equipment and storage medium
CN109471849B (zh) 模型处理方法及装置、存储介质和电子设备
CN114020789A (zh) 账单数据查询方法、***、设备及存储介质
CN114020446A (zh) 一种跨多引擎的路由处理方法、装置、设备及存储介质
CN115437906A (zh) 测试方法和装置
CN112597119A (zh) 一种处理日志的生成方法、装置及存储介质
CN112328615A (zh) 数据更新方法、装置、***、服务器及存储介质
WO2019095582A1 (zh) 目标地点的导航方法、装置、存储介质及终端
CN117251472B (zh) 跨源数据处理方法、装置、设备及存储介质
CN113190236B (zh) Hql脚本校验方法及装置
CN113900895B (zh) 信息处理方法、信息处理装置、存储介质与电子设备
CN114818645B (zh) 基于数据主体的自动化报告生成方法、装置、设备及介质
CN111913737B (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