CN111597214A - 用于数据查询的方法、装置、计算机系统及介质 - Google Patents
用于数据查询的方法、装置、计算机系统及介质 Download PDFInfo
- Publication number
- CN111597214A CN111597214A CN201910135697.6A CN201910135697A CN111597214A CN 111597214 A CN111597214 A CN 111597214A CN 201910135697 A CN201910135697 A CN 201910135697A CN 111597214 A CN111597214 A CN 111597214A
- Authority
- CN
- China
- Prior art keywords
- query
- statement
- cache
- query statement
- execution plan
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种用于数据查询的方法。所述方法包括:获取对数据库进行查询的第一查询语句;查找缓存中是否存在所述第一查询语句;在所述缓存中没有所述第一查询语句的情况下,解析所述第一查询语句以获得第一执行计划信息;将所述第一执行计划信息中的至少部分信息与所述缓存中的已缓存语句的执行计划信息进行匹配,其中,将匹配上的已缓存语句作为中间查询语句;从所述缓存中获得所述中间查询语句对应的中间查询结果;以及基于所述中间查询结果,获得所述第一查询语句对应的第一查询结果。本公开还提供了一种用于数据查询的装置、计算机系统及介质。
Description
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种用于数据查询的方法、装置、计算机系统及介质。
背景技术
大数据场景下数据量的增加给数据查询带来了挑战。在实际中进行数据查询时发现,经常使用到数据表往往是少数热点数据表,而且查询语句中会存在大量相似的sq1查询语句。这样导致存在大量的重复查询操作,造成了集群资源的浪费。现有技术中可以通过缓存查询语句来减少重复查询操作。
在实现本公开构思的过程中,发明人发现现有技术中至少存在如下问题:现有技术中是对查询语句进行缓存,这样唯有再次查询的语句与缓存的语句完全一致时,才能够根据从缓存中直接获得查询结果。这导致缓存命中率低,对查询速度的提升非常有限。
发明内容
有鉴于此,本公开提供了一种能够提高缓存命中率、更进一步地提升查询速度的用于数据查询的方法、装置、计算机系统及介质。
本公开的第一方面,提供了一种用于数据查询的方法。所述方法包括:获取对数据库进行查询的第一查询语句;查找缓存中是否存在所述第一查询语句;在所述缓存中没有所述第一查询语句的情况下,解析所述第一查询语句以获得第一执行计划信息,所述第一执行计划信息为所述第一查询语句的执行计划信息,所述第一执行计划信息包括所述第一查询语句的查询条件、数据源信息以及执行操作信息;将所述第一执行计划信息中的至少部分信息与所述缓存中的已缓存语句的执行计划信息进行匹配,其中,将匹配上的已缓存语句作为中间查询语句;从所述缓存中获得所述中间查询语句对应的中间查询结果;以及基于所述中间查询结果,获得所述第一查询语句对应的第一查询结果。
根据本公开的实施例,将所述第一执行计划信息中的至少部分信息与所述缓存中的已缓存语句的执行计划信息进行匹配,包括基于所述第一查询语句的查询条件,查找所述缓存中是否存在子查询条件,其中所述子查询条件的范围等于或小于所述第一查询语句的查询条件,以及在存在所述子查询条件时,将所述第一执行计划信息中的数据源信息和/或执行操作信息,与具有所述子查询条件的已缓存语句的执行计划信息进行匹配。
根据本公开的实施例,解析所述第一查询语句以获得第一执行计划信息,包括获取所述第一查询语句的抽象语法树,以及基于所述抽象语法树得到所述第一执行计划信息。
根据本公开的实施例,当从所述第一查询语句中拆分出所述中间查询语句后,所述第一查询语句还包括第二中间查询语句,并且在所述缓存中没有与所述第二中间查询语句相匹配的缓存语句的情况下,所述基于所述中间查询结果,获得所述第一查询语句对应的第一查询结果,包括通过所述第二中间查询语句从所述数据库中获取第二中间查询结果,以及将所述中间查询结果与所述第二中间查询结果合并,获得所述第一查询结果。
根据本公开的实施例,所述方法还包括对应缓存所述第一查询语句、所述第一执行计划信息、以及所述第一查询结果,以及对应缓存所述第二中间查询语句、以及所述第二中间查询结果。
根据本公开的实施例,所述方法还包括:延长在所述缓存中所述中间查询语句的缓存时间,或者增加所述缓存中所述中间查询语句的查询命中次数。
根据本公开的实施例,所述缓存为分布式缓存。
根据本公开的实施例,从所述缓存中获得所述中间查询语句对应的中间查询结果,包括在所述中间查询语句对应的位于所述数据库中的数据表未发生变更时,从所述缓存中获得所述中间查询语句对应的中间查询结果。所述方法还包括在所述中间查询语句对应的位于所述数据库中的数据表发生变更时,通过所述中间查询语句从所述数据库中获取所述中间查询结果,并更新所述缓存中的所述中间查询结果。
本公开的第二方面,提供了一种用于数据查询的装置。所述装置包括查询语句获取模块、第一查找模块、解析模块、匹配模块、中间结果获得模块以及查询结果获得模块。查询语句获取模块用于获取对数据库进行查询的第一查询语句。第一查找模块用于查找缓存中是否存在所述第一查询语句。解析模块用于在所述缓存中没有所述第一查询语句的情况下,解析所述第一查询语句以获得第一执行计划信息,所述第一执行计划信息为所述第一查询语句的执行计划信息,所述第一执行计划信息包括所述第一查询语句的查询条件、数据源信息以及执行操作信息。匹配模块用于将所述第一执行计划信息中的至少部分信息与所述缓存中的已缓存语句的执行计划信息进行匹配,其中,将匹配上的已缓存语句作为中间查询语句。中间结果获得模块用于从所述缓存中获得所述中间查询语句对应的中间查询结果。查询结果获得模块用于基于所述中间查询结果,获得所述第一查询语句对应的第一查询结果。
根据本公开的实施例,所述匹配模块具体用于基于所述第一查询语句的查询条件,查找所述缓存中是否存在子查询条件,其中所述子查询条件的范围等于或小于所述第一查询语句的查询条件,以及在存在所述子查询条件时,将所述第一执行计划信息中的数据源信息和/或执行操作信息,与具有所述子查询条件的已缓存语句的执行计划信息进行匹配。
根据本公开的实施例,所述解析模块具体用于获取所述第一查询语句的抽象语法树,以及基于所述抽象语法树得到所述第一执行计划信息。
根据本公开的实施例,所述查询结果获得模块具体用于通过第二中间查询语句从所述数据库中获取第二中间查询结果,其中,从所述第一查询语句中拆分出所述中间查询语句后,所述第一查询语句还包括所述第二中间查询语句,并且在所述缓存中没有与所述第二中间查询语句相匹配的缓存语句;以及将所述中间查询结果与所述第二中间查询结果合并,获得所述第一查询结果。
根据本公开的实施例,所述装置还包括缓存模块。所述缓存模块用于对应缓存所述第一查询语句、所述第一执行计划信息、和所述第一查询结果,以及对应缓存所述第二中间查询语句、和所述第二中间查询结果。
根据本公开的实施例,所述装置还包括缓存信息记录模块。所述缓存信息记录模块用于延长在所述缓存中所述中间查询语句的缓存时间,或者,增加所述缓存中所述中间查询语句的查询命中次数。
根据本公开的实施例,所述缓存为分布式缓存。
根据本公开的实施例,所述中间结果获得模块具体用于在所述中间查询语句对应的位于所述数据库中的数据表未发生变更时,从所述缓存中获得所述中间查询语句对应的中间查询结果,或者在所述中间查询语句对应的位于所述数据库中的数据表发生变更时,通过所述中间查询语句从所述数据库中获取所述中间查询结果,并更新所述缓存中的所述中间查询结果。
本公开的第三方面,提供了一种用于数据查询的计算机系统。所述计算机系统包括一个或多个处理器、以及用于存储一个或多个程序的存储装置。其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如上所述的方法。
本公开的第四方面,提供了一种计算机可读介质,其上存储有可执行指令。该指令被处理器执行时使处理器执行如上所述的方法。
本公开的第五方面,提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
根据本公开的实施例,当缓存中不存在与第一查询语句完全一致的缓存语句时,可以通过第一查询语句的执行计划信息的至少部分信息与缓存语句的执行计划信息进行匹配来获取中间查询结果,能够有效地提高缓存命中率,从而在一定程度上提高了数据查询的速度。
根据本公开的一些实施例,可以按照查询语句和执行计划信息两个粒度进行数据缓存,从而在进行数据查询时可以通过查询语句和执行计划信息的多粒度匹配,提高缓存命中率,进而避免了重复查询性操作中所需的计算资源与时间的消耗,在一定程度上对数据查询起到了加速作用。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的用于数据查询的方法、装置、计算机系统及介质的应用场景;
图2示意性示出了根据本公开实施例的用于数据查询的方法的流程图;
图3A示意性示出了根据本公开实施例的用于数据查询的方法中解析查询语句的方法流程图;
图3B示意性示出了根据本公开实施例的解析得到一个查询语句的抽象语法树的结构示意;
图4示意性示出了根据本公开实施例的用于数据查询的方法中与已缓存语句匹配的方法流程图;
图5示意性示出了根据本公开实施例的用于数据查询的方法中获得第一查询结果的方法流程图;
图6示意性示出了根据本公开另一实施例的用于数据查询的方法的流程图;
图7示意性示出了根据本公开实施例的用于数据查询的装置的框图;以及
图8示意性示出了根据本公开实施例的用于数据查询的计算机系统的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“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的系统等)。
本公开的实施例提供了一种用于数据查询的方法、装置、计算机系统及介质。该用于数据查询的方法包括:获取对数据库进行查询的第一查询语句;查找缓存中是否存在该第一查询语句;在缓存中没有第一查询语句的情况下,解析第一查询语句以获得第一执行计划信息,第一执行计划信息为第一查询语句的执行计划信息,第一执行计划信息包括第一查询语句的查询条件、数据源信息以及执行操作信息;将第一执行计划信息中的至少部分信息与缓存中的已缓存语句的执行计划信息进行匹配,其中,将匹配上的已缓存语句作为中间查询语句;从缓存中获得中间查询语句对应的中间查询结果;以及基于中间查询结果,获得第一查询语句对应的第一查询结果。
根据本公开的实施例,当缓存中不存在与第一查询语句完全一致的缓存语句时,可以通过第一查询语句的第一执行计划信息的至少部分信息与缓存语句的执行计划信息进行匹配来获取中间查询结果,能够有效地提高缓存命中率,从而在一定程度上提高了数据查询的速度。
图1示意性示出了根据本公开实施例的用于数据查询的方法、装置、计算机系统及介质的应用场景100。需要注意的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据本公开实施例的应用场景100可以包括终端设备101、服务器102和数据库103。数据库103可以设置于服务器102中,也可以设置于与服务器102通信的数据库服务器或服务器集群中。当数据库103设置于与服务器102通信的数据库服务器或服务器集群中时,服务器102可以终端设备101通信。
用户可以使用终端设备101向服务器102发送数据查询请求。例如,用户可以在终端设备101中编写查询用的sql语句,然后将该sq1语句发送给服务器102。终端设备101可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器102可以是各种类型的后台管理服务器。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备101。
在一些实施例中,服务器102可以对用户利用终端设备101发送来的数据查询请求(例如,sq1语句)进行载入、解析、优化(例如,(如,谓词下推等)获得执行计划信息。然后根据执行计划信息的逻辑,从数据库103中获取该sql语句的查询结果,然后将该查询结果反馈给终端设备101。
在另一些实施例中,服务器102中预先缓存有部分缓存语句以及该缓存语句的执行计划信息。服务器102可以将用户利用终端设备101发送来sql语句与预先缓存的缓存语句进行匹配。如果匹配上则可以从服务器102中获取匹配上的缓存语句的查询结果作为该sql语句的查询结果,并反馈给终端设备101。如果没有匹配上,服务器102可以对该sql语句进行解析甚至优化,获得该sql语句的执行计划信息,然后将该sql语句的执行计划信息中的至少部分信息与服务器102中预先缓存的缓存语句的执行计划信息进匹配。经过执行计划信息的匹配来查看是否存在有缓存语句的执行计划信息落入该sql语句的执行计划信息的范围内,如果有则可以将对应的缓存语句作为该sq1语句的中间查询语句。对于该中间查询语句可以直接从服务器102的缓存中获取到查询结果(即,中间查询结果)。在一些实施例中,该sql语句中除了中间查询语句以外的部分(例如,称为第二中间查询语句)在服务器102中没有与之相匹配的缓存语句,此时,对于该第二中间查询语句可以经过服务器102的处理,从数据库103中获得相应的数据查询结果(即,第二中间查询结果)。然后,服务102可以将前述中间查询结果和该第二中间查询结果合并获得该sql语句的中间查询结果合并后,反馈给终端设备101。
需要说明的是,本公开实施例所提供的用于数据查询的方法一般可以由服务器102执行。相应地,本公开实施例所提供的用于数据查询的装置、计算机系统及介质一般可以设置于服务器102中。本公开实施例所提供的用于数据查询的方法也可以由不同于服务器102且能够与终端设备101、和/或数据库103、和/或服务器102通信的服务器或服务器集群执行。相应地,本公开实施例所提供的用于数据查询的装置、计算机系统及介质也可以设置于不同于服务器102且能够与终端设备101、和/或数据库103、和/或服务器102通信的服务器或服务器集群中。
应该理解,图1中的终端设备、服务器、和数据库的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、服务器、和数据库。
图2示意性示出了根据本公开实施例的用于数据查询的方法的流程图。
如图2所示,该用于数据查询的方法包括操作S210~操作S260。
首先在操作S210,获取对数据库103进行查询的第一查询语句。该第一查询语句可以是例如用户通过终端设备101发送的查询语句,也可以是例如服务器102对用户通过终端设备101发送的查询语句解析后得到的子查询语句。
然后在操作S220,查找缓存中是否存在第一查询语句。根据本公开的实施例,缓存可以是分布式缓存(例如redis和alluxio分布式缓存等),方便缓存空间的扩容。相应地,根据本公开的实施例,可以使用的数据查询引擎例如可以是HIVE、spark sql等。
具体地,在操作S220中如果缓存中存在第一查询语句,则可以直接中缓存中获取该第一查询语句的查询结果,从而避免后续到数据库103中获取查询结果的操作。相反,在操作S220中如果缓存中不存在该第一查询语句,根据本公开的实施例可以继续执行操作S230~操作S260。
接着在操作S230,在缓存中没有第一查询语句的情况下,解析第一查询语句以获得第一执行计划信息。第一执行计划信息为第一查询语句的执行计划信息。第一执行计划信息包括第一查询语句的查询条件、数据源信息以及执行操作信息。
具体地,第一查询语句的查询条件,例如可以是第一查询语句中的where条件语句。第一查询语句的数据源信息,例如可以是该第一查询语句所要查询的一个或多个数据表的名称、以及在每个数据表中要查询的一个或多个字段。又或者,第一查询语句的数据源信息,例如也可以是为第一查询语句提供数据的一个或多个子查询语句。第一查询语句的执行操作信息,例如可以是第一查询语句中进行查询操作的查询语句、或者一个或多个函数(诸如max,rownumber,sum,count等)。例如,当第一查询语句为“Select a b c from Ewhere dt>2018-11-13”时,第一执行计划信息中查询条件为dt>2018-11-13,数据源信息具体包括数据表E、数据表E中的字段a、b和c,执行操作信息为Select语句。
在操作S240,将第一执行计划信息中的至少部分信息与缓存中的已缓存语句的执行计划信息进行匹配,其中,将匹配上的已缓存语句作为中间查询语句。
例如,当第一查询语句“Select a b c from E where dt>2018-11-13”时,与之匹配的中间查询语句例如可以是已缓存语句“Select a from E where dt>2018-11-13”、或者例如可以是已缓存语句“Select a from E where dt>2018-12-13”等等。在该示例中,该中间查询语句的执行计划信息与第一执行计划信息的部分信息相匹配,具体表现为该中间查询语句的查询条件的范围等于或小于该第一执行计划信息的查询条件的范围,并且该中间查询语句的执行计划信息与该第一执行计划信息的数据表、以及字段名至少部分相同。
此后在操作S250,从缓存中获得中间查询语句对应的中间查询结果。例如,可以通过fetchtask将缓存中的该中间查询结果拉取到相应的reduce端,等待后续的整合处理。
另外,为了保证数据结果的一致性,操作S250可以是在中间查询语句对应的位于数据库103中的数据表未发生变更时,从缓存中获得中间查询语句对应的中间查询结果。而当在中间查询语句对应的位于数据库103中的数据表发生变更时,通过中间查询语句从数据库103中获取中间查询结果,并更新缓存中的中间查询结果。
之后在操作S260,基于中间查询结果,获得第一查询语句对应的第一查询结果。仍以对于第一查询语句“Select a b c from E where dt>2018-11-13”为例进行说明。假设在操作S240中同时获得了“Select a from E where dt>2018-11-13”、“Select b from Ewhere dt>2018-11-13”以及“Select c from E where dt>2018-11-13”这三个中间查询语句,则在操作S250中可以从缓存中对应获得以上三个中间查询语句对应的三个中间查询结果,然后在操作S260中将该三个中间查询结果合并,就可以快速获得第一查询结果。然而,实际中经常会遇到另一种情形,即从第一查询语句中拆分出在操作S240中获得的一个或多个中间查询语句外,还包括第二中间查询语句,其中该第二查询语句在缓存中没有可以匹配的已缓存语句。此时可以从数据库103中获取该第二查询语句对应的查询结果(即,第二中间查询结果),然后将操作S250获得的中间查询结果和该第二中间查询结果合并得到该第一查询结果。
由此可见,根据本公开的实施例的方法,当缓存中不存在与第一查询语句完全一致的缓存语句时,可以通过第一查询语句的第一执行计划信息的至少部分信息与缓存语句的执行计划信息进行匹配来获取中间查询结果,能够有效地提高缓存命中率,避免从数据库103中进行重复查询操作,从而在一定程度上提高了数据查询的速度。
图3A示意性示出了根据本公开实施例的用于数据查询的方法中操作S230解析查询语句的方法流程图。图3B示意性示出了根据本公开实施例的解析得到一个查询语句的抽象语法树的结构示意。
如图3A所示,根据本公开的实施例,操作S230具体可以包括操作S231和操作S232。
在操作S231,获取第一查询语句的抽象语法树(abstract syntax tree,ast)。该抽象语法树的结构,例如可以参考图3B的示意。然后在操作S232,基于该抽象语法树得到第一执行计划信息。
图3B示意中的queryl举例为“select count(*)as sum from(select A from Bwhere dt>2018-07-01)x join(select C from D where dt>2018-07-01)y on x.id=y.id”。表1示意出了基于图3B的抽象语法树对应得到的query1的执行计划信息。
结合图3B和表1,query1的执行计划信息中,查询条件(where)为dt>2018-07-01,数据源(from)为query2和query3等,以及执行的操作(select)为count(*)。更进一步地,通过对query2和query3进一步解析,就可以得到表1中query1的执行计划信息。由于query2和query3为query1的子查询语句,因此query1的执行计划信息也相应包括了query2和query3的执行计划信息。
表1
如果query1为首次执行的查询语句,则在执行对query1的查询的同时,根据本公开的实施例可以不仅仅只缓存query1及其查询结果,还可以按照表1同时缓存query1的执行计划信息。具体而言,可以按照表1中每一行对应缓存,即缓存query1、query1的执行计划信息、和query1的查询结果(例如,20),缓存quey2、query2的执行计划信息、和query2的查询结果(例如,X1),以及缓存quey3、query3的执行计划信息、和query3的查询结果(例如,X2)。这样,根据本公开的实施例,当用户再次查询的查询语句包含query2或query3时,也可以从缓存中直接获得缓存结果X1或X2。
图4示意性示出了根据本公开实施例的用于数据查询的方法中操作S240中与已缓存语句匹配的方法流程图。
如图4所示,操作S240可以包括操作S241和操作S242。其中,在操作S241,基于第一查询语句的查询条件,查找缓存中是否存在子查询条件,其中该子查询条件的范围等于或小于第一查询语句的查询条件。以及在操作S242,在存在子查询条件时,将第一执行计划信息中的数据源信息和/或执行操作信息,与具有该子查询条件的已缓存语句的执行计划信息进行匹配。然后,将匹配上的已缓存语句作为中间查询语句。
具体而言,在没有与第一查询语句的查询条件一致的已缓存语句时,可以缩小第一查询语句中的查询条件。其中,缩小第一查询语句中的查询条件查找,也就是过滤where条件查找中的时间条件,判断缓存中是否存在该查询语句子查找范围内的已缓存语句。例如,假设缓存中已经按照表1中每一行对应关系缓存了查询语句和执行计划信息以及查询结果。并假设在操作S210中接收到的第一查询语句为“select A from B where dt>2018-05-01”。根据本公开的实施例,对于该第一查询语句“select A from B where dt>2018-05-01”,可以通过缩小查询条件将其分解为“select A from B where dt>2018-07-01”(即query2)和“select A from B where 2018-05-01>dt>2018-07-01”两部分。其中,对于query2可以直接从缓存中获取到查询结果X1;对于另一部分“select A from B where201 8-05-01>dt>2018-07-01”,可以按照操作S210~操作S260从缓存中查找是否有匹配的中间查询语句,或者当缓存中没有时可以从数据库103中获取对应的查询结果。
图5示意性示出了根据本公开实施例的用于数据查询的方法中操作S260中获得第一查询结果的方法流程图
如图5所示,根据本公开的实施例,操作S260可以包括操作S261和操作S262。在操作S261,在从该第一查询语句中拆分出中间查询语句后,该第一查询语句还包括第二中间查询语句,并且缓存中没有与第二中间查询语句相匹配的缓存语句的情况下,通过第二中间查询语句从数据库103中获取第二中间查询结果。然后在操作S262,将中间查询结果与第二中间查询结果合并,获得第一查询结果。
图6示意性示出了根据本公开另一实施例的用于数据查询的方法的流程图。
如图6所示,根据本公开的实施例,该用于数据查询的方法除了操作S210~操作S260以外,还可以包括操作S670。根据本公开的另一实施例,还可以进一步包括操作S680。
在操作S670,对应缓存第一查询语句、第一执行计划信息、以及第一查询结果;以及对应缓存第二中间查询语句、以及第二中间查询结果。例如,当该第一查询语句为图3B和表1中示例的query1时,经过操作S670的缓存之后,缓存中会存在表1所示的三个查询语句、该三个查询语句中每个的查询结果以及每个的执行计划信息。
在操作S680,延长在缓存中中间查询语句的缓存时间,或者增加缓存中中间查询语句的查询命中次数。以此方式,为保证缓存的时效性,根据最近最少原则,可以将时间戳较远且命中次数较少(或者使用频率较低)的缓存进行清理,从而可以释放缓存空间,避免了一些脏数据的形成和过期数据的缓存。有助于通过分布式缓存的内在机制,实现对缓存碎片的整理。
图7示意性示出了根据本公开实施例的用于数据查询的装置700的框图。
如图7所示,该用于数据查询的装置700可以包括查询语句获取模块710、第一查找模块720、解析模块730、匹配模块740、中间结果获得模块750以及查询结果获得模块760。
查询语句获取模块710用于获取对数据库103进行查询的第一查询语句(操作S210)。
第一查找模块720用于查找缓存中是否存在第一查询语句(操作S220)。根据本公开的实施例,缓存为分布式缓存。
解析模块730用于在缓存中没有第一查询语句的情况下,解析第一查询语句以获得第一执行计划信息,第一执行计划信息包括第一查询语句的查询条件、数据源信息以及执行操作信息(操作S230)。
匹配模块740用于将第一执行计划信息中的至少部分信息与缓存中的已缓存语句的执行计划信息进行匹配,其中,将匹配上的已缓存语句作为中间查询语句(操作S240)。
中间结果获得模块750用于从缓存中获得中间查询语句对应的中间查询结果(操作S250)。根据本公开的实施例,中间结果获得模块750具体用于在中间查询语句对应的位于数据库103中的数据表未发生变更时,从缓存中获得中间查询语句对应的中间查询结果,或者在中间查询语句对应的位于数据库103中的数据表发生变更时,通过中间查询语句从数据库103中获取中间查询结果,并更新缓存中的中间查询结果。
查询结果获得模块760用于基于中间查询结果,获得第一查询语句对应的第一查询结果(操作S260)。
根据本公开的实施例,匹配模块740具体用于基于第一查询语句的查询条件,查找缓存中是否存在子查询条件(操作S241),其中子查询条件的范围等于或小于第一查询语句的查询条件,以及在存在子查询条件时,将第一执行计划信息中的数据源信息和/或执行操作信息,与具有子查询条件的已缓存语句的执行计划信息进行匹配(操作S242)。
根据本公开的实施例,解析模块730具体用于获取第一查询语句的抽象语法树(操作S231),以及基于抽象语法树得到第一执行计划信息(操作S232)。
根据本公开的实施例,查询结果获得模块760具体用于通过第二中间查询语句从数据库103中获取第二中间查询结果(操作S261),其中,从第一查询语句中拆分出中间查询语句后,第一查询语句还包括第二中间查询语句,在缓存中没有与第二中间查询语句相匹配的缓存语句;以及将中间查询结果与第二中间查询结果合并,获得第一查询结果(操作S262)。
根据本公开的实施例,装置700还包括缓存模块770。缓存模块770用于对应缓存第一查询语句、第一执行计划信息、和第一查询结果,以及对应缓存第二中间查询语句、和第二中间查询结果(操作S670)。
根据本公开的实施例,装置700还包括缓存信息记录模块780。缓存信息记录模块780用于延长在缓存中中间查询语句的缓存时间,或者,增加缓存中中间查询语句的查询命中次数(操作S680)。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,查询语句获取模块710、第一查找模块720、解析模块730、匹配模块740、中间结果获得模块750、查询结果获得模块760、缓存模块770以及缓存信息记录模块780中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,查询语句获取模块710、第一查找模块720、解析模块730、匹配模块740、中间结果获得模块750、查询结果获得模块760、缓存模块770以及缓存信息记录模块780中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,查询语句获取模块710、第一查找模块720、解析模块730、匹配模块740、中间结果获得模块750、查询结果获得模块760、缓存模块770以及缓存信息记录模块780中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的用于数据查询的计算机系统的方框图。图8示出的计算机系统800仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,根据本公开实施例的计算机系统800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有计算机系统800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,计算机系统800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。计算机系统800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口808。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (18)
1.一种用于数据查询的方法,包括:
获取对数据库进行查询的第一查询语句;
查找缓存中是否存在所述第一查询语句;
在所述缓存中没有所述第一查询语句的情况下,解析所述第一查询语句以获得第一执行计划信息,所述第一执行计划信息为所述第一查询语句的执行计划信息,所述第一执行计划信息包括所述第一查询语句的查询条件、数据源信息以及执行操作信息;
将所述第一执行计划信息中的至少部分信息与所述缓存中的已缓存语句的执行计划信息进行匹配,其中,将匹配上的已缓存语句作为中间查询语句;
从所述缓存中获得所述中间查询语句对应的中间查询结果;以及
基于所述中间查询结果,获得所述第一查询语句对应的第一查询结果。
2.根据权利要求1所述的方法,其中,将所述第一执行计划信息中的至少部分信息与所述缓存中的已缓存语句的执行计划信息进行匹配,包括:
基于所述第一查询语句的查询条件,查找所述缓存中是否存在子查询条件,其中所述子查询条件的范围等于或小于所述第一查询语句的查询条件;
在存在所述子查询条件时,将所述第一执行计划信息中的数据源信息和/或执行操作信息,与具有所述子查询条件的已缓存语句的执行计划信息进行匹配。
3.根据权利要求1所述的方法,其中,解析所述第一查询语句以获得第一执行计划信息,包括:
获取所述第一查询语句的抽象语法树;以及
基于所述抽象语法树得到所述第一执行计划信息。
4.根据权利要求1所述的方法,其中,当从所述第一查询语句中拆分出所述中间查询语句后,所述第一查询语句还包括第二中间查询语句,并且在所述缓存中没有与所述第二中间查询语句相匹配的缓存语句的情况下,所述基于所述中间查询结果,获得所述第一查询语句对应的第一查询结果包括:
通过所述第二中间查询语句从所述数据库中获取第二中间查询结果;以及
将所述中间查询结果与所述第二中间查询结果合并,获得所述第一查询结果。
5.根据权利要求4所述的方法,所述方法还包括:
对应缓存所述第一查询语句、所述第一执行计划信息、以及所述第一查询结果;以及
对应缓存所述第二中间查询语句、以及所述第二中间查询结果。
6.根据权利要求1所述的方法,还包括:
延长在所述缓存中所述中间查询语句的缓存时间;或者
增加所述缓存中所述中间查询语句的查询命中次数。
7.根据权利要求1所述的方法,其中,所述缓存为分布式缓存。
8.根据权利要求1所述的方法,其中:
从所述缓存中获得所述中间查询语句对应的中间查询结果包括:
在所述中间查询语句对应的位于所述数据库中的数据表未发生变更时,从所述缓存中获得所述中间查询语句对应的中间查询结果;
所述方法还包括:
在所述中间查询语句对应的位于所述数据库中的数据表发生变更时,通过所述中间查询语句从所述数据库中获取所述中间查询结果,并更新所述缓存中的所述中间查询结果。
9.一种用于数据查询的装置,包括:
查询语句获取模块,用于获取对数据库进行查询的第一查询语句;
第一查找模块,用于查找缓存中是否存在所述第一查询语句;
解析模块,用于在所述缓存中没有所述第一查询语句的情况下,解析所述第一查询语句以获得第一执行计划信息,所述第一执行计划信息为所述第一查询语句的执行计划信息,所述第一执行计划信息包括所述第一查询语句的查询条件、数据源信息以及执行操作信息;
匹配模块,用于将所述第一执行计划信息中的至少部分信息与所述缓存中的已缓存语句的执行计划信息进行匹配,其中,将匹配上的已缓存语句作为中间查询语句;
中间结果获得模块,用于从所述缓存中获得所述中间查询语句对应的中间查询结果;以及
查询结果获得模块,用于基于所述中间查询结果,获得所述第一查询语句对应的第一查询结果。
10.根据权利要求9所述的装置,其中,所述匹配模块具体用于:
基于所述第一查询语句的查询条件,查找所述缓存中是否存在子查询条件,其中所述子查询条件的范围等于或小于所述第一查询语句的查询条件;
在存在所述子查询条件时,将所述第一执行计划信息中的数据源信息和/或执行操作信息,与具有所述子查询条件的已缓存语句的执行计划信息进行匹配。
11.根据权利要求9所述的装置,其中,所述解析模块具体用于:
获取所述第一查询语句的抽象语法树;以及
基于所述抽象语法树得到所述第一执行计划信息。
12.根据权利要求9所述的装置,其中,所述查询结果获得模块具体用于:
通过第二中间查询语句从所述数据库中获取第二中间查询结果;其中,从所述第一查询语句中拆分出所述中间查询语句后,所述第一查询语句还包括所述第二中间查询语句,并且在所述缓存中没有与所述第二中间查询语句相匹配的缓存语句;以及
将所述中间查询结果与所述第二中间查询结果合并,获得所述第一查询结果。
13.根据权利要求12所述的装置,还包括:
缓存模块,用于对应缓存所述第一查询语句、所述第一执行计划信息、以及所述第一查询结果;以及对应缓存所述第二中间查询语句、以及所述第二中间查询结果。
14.根据权利要求9所述的装置,还包括:
缓存信息记录模块,用于延长在所述缓存中所述中间查询语句的缓存时间,或者增加所述缓存中所述中间查询语句的查询命中次数。
15.根据权利要求9所述的装置,其中,所述缓存为分布式缓存。
16.根据权利要求9所述的装置,其中,所述中间结果获得模块具体用于:
在所述中间查询语句对应的位于所述数据库中的数据表未发生变更时,从所述缓存中获得所述中间查询语句对应的中间查询结果;或者
在所述中间查询语句对应的位于所述数据库中的数据表发生变更时,通过所述中间查询语句从所述数据库中获取所述中间查询结果,并更新所述缓存中的所述中间查询结果。
17.一种用于数据查询的计算机系统,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~8任意一项所述的方法。
18.一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~8任意一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910135697.6A CN111597214A (zh) | 2019-02-21 | 2019-02-21 | 用于数据查询的方法、装置、计算机系统及介质 |
PCT/CN2019/127137 WO2020168810A1 (zh) | 2019-02-21 | 2019-12-20 | 用于数据查询的方法、装置、计算机系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910135697.6A CN111597214A (zh) | 2019-02-21 | 2019-02-21 | 用于数据查询的方法、装置、计算机系统及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111597214A true CN111597214A (zh) | 2020-08-28 |
Family
ID=72144875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910135697.6A Pending CN111597214A (zh) | 2019-02-21 | 2019-02-21 | 用于数据查询的方法、装置、计算机系统及介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111597214A (zh) |
WO (1) | WO2020168810A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112883307A (zh) * | 2021-02-03 | 2021-06-01 | 深圳市大成天下信息技术有限公司 | 一种缓存更新方法、装置和社交网络系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102163195A (zh) * | 2010-02-22 | 2011-08-24 | 北京东方通科技股份有限公司 | 一种基于分布式、异构数据库统一视图的查询优化方法 |
CN103455560A (zh) * | 2013-08-12 | 2013-12-18 | 曙光信息产业股份有限公司 | 一种数据查询方法及系统 |
CN104123288A (zh) * | 2013-04-24 | 2014-10-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN105740445A (zh) * | 2016-02-02 | 2016-07-06 | 贵州大学 | 一种数据库查询方法及装置 |
CN107368493A (zh) * | 2016-05-12 | 2017-11-21 | 百度在线网络技术(北京)有限公司 | 数据库查询方法和装置 |
CN109299215A (zh) * | 2018-09-28 | 2019-02-01 | 平安科技(深圳)有限公司 | 倒排索引查询的资源分配方法、装置及存储介质、服务器 |
US10452657B2 (en) * | 2016-09-28 | 2019-10-22 | International Business Machines Corporation | Reusing sub-query evaluation results in evaluating query for data item having multiple representations in graph |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9235618B2 (en) * | 2013-04-06 | 2016-01-12 | Citrix Systems, Inc. | Systems and methods for caching of SQL responses using integrated caching |
CN103377292B (zh) * | 2013-07-02 | 2017-02-15 | 华为技术有限公司 | 数据库结果集缓存方法及设备 |
CN104572979B (zh) * | 2014-12-31 | 2018-09-11 | 北京锐安科技有限公司 | 一种处理结构化查询语言sql的方法及装置 |
CN107092529B (zh) * | 2017-02-10 | 2021-01-01 | 北京星选科技有限公司 | Olap服务方法、装置及系统 |
-
2019
- 2019-02-21 CN CN201910135697.6A patent/CN111597214A/zh active Pending
- 2019-12-20 WO PCT/CN2019/127137 patent/WO2020168810A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102163195A (zh) * | 2010-02-22 | 2011-08-24 | 北京东方通科技股份有限公司 | 一种基于分布式、异构数据库统一视图的查询优化方法 |
CN104123288A (zh) * | 2013-04-24 | 2014-10-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN103455560A (zh) * | 2013-08-12 | 2013-12-18 | 曙光信息产业股份有限公司 | 一种数据查询方法及系统 |
CN105740445A (zh) * | 2016-02-02 | 2016-07-06 | 贵州大学 | 一种数据库查询方法及装置 |
CN107368493A (zh) * | 2016-05-12 | 2017-11-21 | 百度在线网络技术(北京)有限公司 | 数据库查询方法和装置 |
US10452657B2 (en) * | 2016-09-28 | 2019-10-22 | International Business Machines Corporation | Reusing sub-query evaluation results in evaluating query for data item having multiple representations in graph |
CN109299215A (zh) * | 2018-09-28 | 2019-02-01 | 平安科技(深圳)有限公司 | 倒排索引查询的资源分配方法、装置及存储介质、服务器 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112883307A (zh) * | 2021-02-03 | 2021-06-01 | 深圳市大成天下信息技术有限公司 | 一种缓存更新方法、装置和社交网络系统 |
CN112883307B (zh) * | 2021-02-03 | 2023-10-20 | 深圳市大成天下信息技术有限公司 | 一种缓存更新方法、装置和社交网络系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2020168810A1 (zh) | 2020-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11157473B2 (en) | Multisource semantic partitioning | |
US9355146B2 (en) | Efficient partitioned joins in a database with column-major layout | |
US8949222B2 (en) | Changing the compression level of query plans | |
US8548986B2 (en) | Adaptive row-batch processing of database data | |
US8924373B2 (en) | Query plans with parameter markers in place of object identifiers | |
US11687546B2 (en) | Executing conditions with negation operators in analytical databases | |
US10866960B2 (en) | Dynamic execution of ETL jobs without metadata repository | |
US9734176B2 (en) | Index merge ordering | |
US20200242097A1 (en) | Method, apparatus, device and storage medium for managing index | |
US20160342646A1 (en) | Database query cursor management | |
US12026168B2 (en) | Columnar techniques for big metadata management | |
US20200401592A1 (en) | Dynamic Rebuilding of Query Execution Trees and Reselection of Query Execution Operators | |
CN115168398A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
US9229969B2 (en) | Management of searches in a database system | |
CN111597214A (zh) | 用于数据查询的方法、装置、计算机系统及介质 | |
CN110674177B (zh) | 数据查询方法、装置、电子设备和存储介质 | |
CN114528317A (zh) | 数据查询方法和装置、电子设备、及介质 | |
CN118332015A (zh) | 数据处理方法、装置、设备、存储介质和程序产品 | |
CN115374157A (zh) | 数据查询方法、装置、电子设备以及存储介质 | |
CN117633111A (zh) | 基于ClickHouse的请求处理方法、装置、设备及介质 | |
CN113918099A (zh) | 数据库的存储方法、装置、设备、介质和程序产品 | |
CN116483954A (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 |