CN114706890A - 一种数据的多级查询方法、装置、电子设备及存储介质 - Google Patents
一种数据的多级查询方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114706890A CN114706890A CN202210375211.8A CN202210375211A CN114706890A CN 114706890 A CN114706890 A CN 114706890A CN 202210375211 A CN202210375211 A CN 202210375211A CN 114706890 A CN114706890 A CN 114706890A
- Authority
- CN
- China
- Prior art keywords
- query
- cache
- data
- layer
- result
- 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
- G06F16/24552—Database cache management
-
- 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/2453—Query optimisation
-
- 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/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel 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/248—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据的多级查询方法、装置、电子设备及存储介质。该方法包括:通过网关层接收客户端发送的数据查询请求;在确定网关层未存储与所述数据查询请求匹配的数据查询结果时,根据所述数据查询请求的查询时间段,将所述数据查询请求拆分为多个查询任务;在多级缓存中,逐级查询各所述查询任务;在确定查询到与全部查询任务分别对应的缓存结果时,将各缓存结果合并得到第一查询结果,并通过网关层将所述第一查询结果反馈至所述客户端。本发明实施例的技术方案能够减少数据查询计算量,提升数据查询响应速度,从而提高数据的查询效率。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种数据的多级查询方法、装置、电子设备及存储介质。
背景技术
随着互联网的快速发展,数据量也随之急剧增加。在各种应用场景中需要对大量数据进行查询,例如在流量分析的应用场景中,需要针对大数据量的流量数据进行查询。但是由于服务器资源的有限,导致数据库每秒能接受的查询请求次数也是有限的。
因此,当用户的查询请求过多或过于频繁时,服务器需要做的计算也越来越多,数据库的响应时间也会变长,甚至会崩溃,导致现有的数据查询方法的数据查询效率较低。
发明内容
本发明实施例提供一种数据的多级查询方法、装置、电子设备及存储介质,能够减少数据查询计算量,提升数据查询响应速度,从而提高数据的查询效率。
根据本发明的一方面,提供了一种数据的多级查询方法,由查询服务器执行,包括:
通过网关层接收客户端发送的数据查询请求;
在确定网关层未存储与所述数据查询请求匹配的数据查询结果时,根据所述数据查询请求的查询时间段,将所述数据查询请求拆分为多个查询任务;
在多级缓存中,逐级查询各所述查询任务;
在确定查询到与全部查询任务分别对应的缓存结果时,将各缓存结果合并得到第一查询结果,并通过网关层将所述第一查询结果反馈至所述客户端。
另外,根据本发明上述实施例的数据的多级查询方法,还可以具有如下附加的技术特征:
可选的,根据数据查询请求的查询时间段,将数据查询请求拆分为多个查询任务,包括:
按照时间单元的时间跨度等级顺序,依次获取一个当前时间单元;
检测查询时间段中是否包含至少一个当前时间单元;
若是,则在数据查询请求中,划分出与查询时间段中各当前时间单元分别对应的查询任务;
按照当前时间单元对查询时间段进行限缩处理后,返回执行按照时间单元的时间跨度等级顺序,依次获取一个当前时间单元的操作,直至将查询时间段在全部时间跨度等级的时间单元内进行拆分。
上述发明中的一个实施例具有如下优点或有益效果:通过确定当前时间单元,并在查询时间段中包括当前时间单元时,根据当前时间单元将数据查询请求划分为多个查询任务,使得在缓存中查询各查询任务时,能够提高缓存的命中率,以及提高缓存的利用率。
可选的,多级缓存包括:应用层缓存、分布式内存缓存以及持久化层缓存中的至少两项。
上述发明中的一个实施例具有如下优点或有益效果:提出了多级缓存的具体缓存设置方法,以进一步提升数据查询响应速度,提高数据的查询效率。
可选的,在多级缓存中,逐级查询各查询任务,包括:
在应用层缓存中对各查询任务进行查询;
在确定未查询到与全部查询任务分别对应的缓存结果时,获取应用层未获取查询任务,并在分布式内存缓存中对应用层未获取查询任务进行查询;
在确定未查询到与全部应用层未获取查询任务分别对应的缓存结果时,获取分布式未获取查询任务,并在持久化层缓存中对分布式未获取查询任务进行查询。
上述发明中的一个实施例具有如下优点或有益效果:通过在应用层缓存、分布式内存缓存、持久化层缓存中,逐级查询各查询任务,并确定当前缓存中未查询到查询任务的缓存结果时,通过下一级缓存查询未查询到的查询任务,从而减少了数据查询过程中的查询计算量。
可选的,在多级缓存中,逐级查询各查询任务之后,还包括:
在确定未查询到与全部查询任务分别对应的缓存结果时,获取未获取查询任务;
在持久化存储层的各原始数据表中对未获取查询任务进行查询,获取持久化查询结果;
将持久化查询结果,与已通过缓存查询获取的缓存结果合并得到第二查询结果,并通过网关层将第二查询结果反馈至客户端。
上述发明中的一个实施例具有如下优点或有益效果:增加了在多级缓存中,未查询到查询任务对应的缓存结果时的补充处理策略,即在未查询到查询任务对应的缓存结果时,在持久化存储层的原始数据表中查询未查询到的查询任务,能够确保数据查询请求的查询成功率和查询结果的准确率。
可选的,该方法还包括下述至少一项:
根据持久化存储层的各原始数据表的时间数据,对各原始数据表进行数据表拆分,得到至少一个数据拆分表,并根据各数据拆分表更新持久化层缓存;
在持久化层缓存中查询到与查询任务对应的缓存结果时,根据查询到的缓存结果更新分布式内存缓存;
在分布式内存缓存中查询到与查询任务对应的缓存结果时,确定查询到的缓存结果对应的缓存历史命中次数,并根据缓存历史命中次数大于命中次数阈值的缓存结果,更新应用层缓存;
根据第一查询结果更新网关层缓存,或者,根据第二查询结果更新网关层缓存。
上述发明中的一个实施例具有如下优点或有益效果:增加了各级缓存的更新策略,通过对各级缓存的更新,能够在各级缓存中对各查询任务进行查询,从而提高了数据的查询效率。
可选的,该方法还包括下述至少一项:
根据惰性阈值和/或第一时间阈值确定网关层失效缓存,并根据网关层失效缓存更新网关层缓存;
根据LFU算法(Least Frequently Used,最近最多使用算法)和/或第二时间阈值确定应用层失效缓存,并根据应用层失效缓存更新应用层缓存;
根据LRU算法(Least Recently Used,最近最少使用算法)和/或第三时间阈值确定分布式内存失效缓存,并根据分布式内存失效缓存更新分布式内存缓存;
根据数据淘汰周期和/或缓存数据时间确定持久化层失效缓存,并根据持久化层失效缓存更新持久化层缓存。
上述发明中的一个实施例具有如下优点或有益效果:增加了各级缓存的缓存失效策略,通过确定各级缓存中的失效缓存,能够确保数据查询的准确性。
根据本发明的另一方面,提供了一种数据的多级查询装置,配置于查询服务器,包括:
数据查询请求接收模块,用于通过网关层接收客户端发送的数据查询请求;
数据查询请求拆分模块,用于在确定网关层未存储与所述数据查询请求匹配的数据查询结果时,根据所述数据查询请求的查询时间段,将所述数据查询请求拆分为多个查询任务;
查询任务查询模块,用于在多级缓存中,逐级查询各所述查询任务;
查询结果反馈模块,用于在确定查询到与全部查询任务分别对应的缓存结果时,将各缓存结果合并得到第一查询结果,并通过网关层将所述第一查询结果反馈至所述客户端。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的数据的多级查询方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的数据的多级查询方法。
本发明实施例的技术方案,通过网关层接收客户端发送的数据查询请求,并在确定网关层未存储与数据查询请求匹配的数据查询结果时,根据数据查询请求的查询时间段,将数据查询请求拆分为多个查询任务,以在多级缓存中,逐级查询各查询任务,从而在确定查询到与全部查询任务分别对应的缓存结果时,将各缓存结果合并得到第一查询结果,进而通过网关层将第一查询结果反馈至客户端,解决了现有的数据查询方法的数据查询效率较低的问题,能够减少数据查询计算量,提升数据查询响应速度,从而提高数据的查询效率。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种数据的多级查询方法的流程图;
图2是本发明实施例二提供的一种数据的多级查询方法的流程图;
图3是本发明实施例三提供的一种数据的多级查询方法的示例流程图;
图4是本发明实施例三提供的查询服务器的分层结构示意图;
图5是本发明实施例四提供的一种数据的多级查询装置的示意图;
图6是实现本发明实施例的数据的多级查询方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1是本发明实施例一提供的一种数据的多级查询方法的流程图,本实施例可适用于减少数据查询计算量,提升数据查询响应速度的情况,该方法可以由数据的多级查询装置执行,该装置可以通过软件和/或硬件的方式实现,并一般可以直接集成在执行本方法的电子设备中,该电子设备可以是服务器设备,如实现数据的多级查询功能的查询服务器等。具体的,如图1所示,该数据的多级查询方法具体可以包括如下步骤:
S110、通过网关层接收客户端发送的数据查询请求。
其中,数据查询请求可以是任意查询数据的请求。可以理解的是,数据查询请求可以是任意用户在客户端发起的任意的数据查询请求。
在本发明实施例中,查询服务器通过网关层接收客户端发送的数据查询请求。可以理解的是,用户在客户端发起数据查询请求之后,查询服务器通过网关层接收数据查询请求,以使查询服务器根据数据查询请求进行数据查询。
S120、在确定网关层未存储与所述数据查询请求匹配的数据查询结果时,根据所述数据查询请求的查询时间段,将所述数据查询请求拆分为多个查询任务。
其中,数据查询结果可以是根据数据查询请求在网关层缓存中查询得到的结果。查询时间段可以是数据查询请求中想要查询的数据所处的时间段。可以理解的是,在对数据进行查询时,可以查询任意时间段内的数据。示例性的,在对数据进行查询时查询上午8点到下午3点的数据,则查询时间段可以为上午8点至下午3点。查询任务可以是由数据查询请求拆分得到的任务。示例性的,假设数据查询请求为查询上午8点至下午3点的数据,则可以将数据查询请求拆分为查询上午8点至中午12点的数据的查询任务,和查询中午12点至下午3点的数据的查询任务。
在本发明实施例中,查询服务器在通过网关层接收客户端发送的数据查询请求之后,查询服务器可以进一步确定网关层是否存储与数据查询请求匹配的数据查询结果,并在确定网关层未存储与数据查询请求匹配的数据查询结果时,查询服务器根据数据查询请求的查询时间段,将数据查询请求拆分为多个查询任务。可以理解的是,在确定网关层存储与数据查询请求匹配的数据查询结果时,可以通过网关层将数据查询结果反馈至客户端。
S130、在多级缓存中,逐级查询各所述查询任务。
其中,多级缓存可以是查询服务器中多个的缓存。可选的,多级缓存可以包括:应用层缓存、分布式内存缓存以及持久化层缓存中的至少两项。其中,应用层缓存可以是查询服务器的应用层内存中的缓存。分布式内存缓存可以是查询服务器的分布式内存缓存层中的缓存。持久化层缓存可以是查询服务器的持久化存储层中的缓存。上述技术方案,通过提出多级缓存的具体缓存设置方法,以进一步提升数据查询响应速度,提高数据的查询效率。
在现有技术中,后端服务器在接收到客户端发送的数据查询请求后,通常要经过后端服务器中的网关层、应用层、分布式内存缓存层以及持久化存储层四层结构。然而在后端服务器中每向后查询一层,响应数据查询请求的时间就会越长。如果数据查询请求进入分布式持久存储层,则后端服务器会调用存储在分布式持久存储层中的集群资料来进行数据的查询,从而导致数据查询响应过慢。
区别于现有技术中的数据查询方法,本实施例的技术方案通过建立多级缓存,能够在多级缓存中逐级查询各查询任务,从而提升数据查询响应速度,提高数据的查询效率。
在本发明实施例中,查询服务器在根据数据查询请求的查询时间段,将数据查询请求拆分为多个查询任务之后,查询服务器可以进一步在多级缓存中,逐级查询各查询任务。
需要说明的是,在多级缓存中,逐级查询各查询任务时,如果在当前缓存中查询到查询任务对应的缓存结果时,则在下一级缓存中不再对查询到缓存结果的查询任务进行查询。示例性的,假设将数据查询请求拆分为查询任务1、查询任务2和查询任务3,且多级缓存包括应用层缓存以及分布式内存缓存,则可以在应用层缓存中查询查询任务1、查询任务2和查询任务3,如果在应用层缓存中未查询到查询任务1的缓存结果,则进一步在分布式内存缓存中对查询任务1进行查询。
S140、在确定查询到与全部查询任务分别对应的缓存结果时,将各缓存结果合并得到第一查询结果,并通过网关层将所述第一查询结果反馈至所述客户端。
其中,缓存结果可以是在查询服务器的任意缓存中查询得到的与查询任务匹配的结果。第一查询结果可以是根据数据查询请求进行数据查询得到的一个查询结果。
在本发明实施例中,查询服务器在多级缓存中逐级查询各查询任务之后,查询服务器还可以在确定查询到与全部查询任务分别对应的缓存结果时,将各缓存结果合并得到第一查询结果,并通过网关层将第一查询结果反馈至客户端。
本实施例的技术方案,通过网关层接收客户端发送的数据查询请求,并在确定网关层未存储与数据查询请求匹配的数据查询结果时,根据数据查询请求的查询时间段,将数据查询请求拆分为多个查询任务,以在多级缓存中,逐级查询各查询任务,从而在确定查询到与全部查询任务分别对应的缓存结果时,将各缓存结果合并得到第一查询结果,进而通过网关层将第一查询结果反馈至客户端,解决了现有的数据查询方法的数据查询效率较低的问题,能够减少数据查询计算量,提升数据查询响应速度,从而提高数据的查询效率。
实施例二
图2是本发明实施例二提供的一种数据的多级查询方法的流程图,本实施例是对上述各技术方案的进一步细化,给出了根据数据查询请求的查询时间段,将数据查询请求拆分为多个查询任务,以及在多级缓存中,逐级查询各查询任务的多种具体可选的实现方式。本实施例中的技术方案可以与上述一个或多个实施例中的各个可选方案结合。如图2所示,该方法可以包括如下步骤:
S210、通过网关层接收客户端发送的数据查询请求。
S220、在确定网关层未存储与所述数据查询请求匹配的数据查询结果时,按照时间单元的时间跨度等级顺序,依次获取一个当前时间单元。
其中,时间单元可以是表征时间的单元。示例性的,时间单元可以是整天、整小时、整分钟或整秒等,本发明实施例对此并不进行限制。时间跨度等级顺序可以是根据时间跨度确定的时间单元的等级顺序。示例性的,时间单元为整天时,时间跨度等级顺序可以是第一顺序,也可以是其他顺序,本发明实施例对此并不进行限制。可以理解的是,相同的时间单元,由于时间跨度相同,时间跨度等级顺序也相同。不同的时间单元,由于时间跨度不同,时间跨度等级顺序也不同。当前时间单元可以是当前根据时间跨度等级顺序确定的一个时间单元。
在本发明实施例中,查询服务器在通过网关层接收客户端发送的数据查询请求之后,查询服务器可以进一步在确定网关层未存储与数据查询请求匹配的数据查询结果时,按照时间单元的时间跨度等级顺序,依次获取一个当前时间单元。
S230、检测所述查询时间段中是否包含至少一个当前时间单元;若是,执行S240;若否,返回执行S220。
在本发明实施例中,查询服务器在按照时间单元的时间跨度等级顺序,依次获取一个当前时间单元之后,可以进一步检测查询时间段中是否包含至少一个当前时间单元。示例性的,假设当前时间单元为整天,则检测查询时间段中是否包括至少一个整天。可以理解的是,查询时间段中可以包含多个当前时间单元。如果检测查询时间段中包含至少一个当前时间单元,则可以在数据查询请求中,划分出与查询时间段中各当前时间单元分别对应的查询任务。如果检测查询时间段中不包含当前时间单元,则可以返回执行按照时间单元的时间跨度等级顺序,依次获取一个当前时间单元,以获取下一个时间跨度等级的当前时间单元。
S240、在所述数据查询请求中,划分出与所述查询时间段中各所述当前时间单元分别对应的查询任务。
在本发明实施例中,查询服务器在检测查询时间段中包含当前时间单元之后,可以进一步在数据查询请求中,划分出与查询时间段中各当前时间单元分别对应的查询任务可以理解的是,与查询时间段中当前时间单元对应的查询任务可以是多个。示例性的,如果当前时间单元为整小时,且查询时间段为上午9点至上午11点10分,则与查询时间段中当前时间单元对应的查询任务可以包括2个,即上午9点至上午10点的查询任务,以及上午10点至上午11点的查询任务。
可以理解的是,在按照时间单元的时间跨度等级顺序,获取一个当前时间单元之后,可以进一步检测查询时间段中是否包含该当前时间单元,并在检测查询时间段中包括该当前时间单元的情况下,在数据查询请求中,划分出与查询时间段中该当前时间单元对应的查询任务。
可选的,查询服务器可以通过应用层在数据查询请求中,划分出与查询时间段中各当前时间单元分别对应的查询任务。
S250、按照所述当前时间单元对所述查询时间段进行限缩处理后,返回执行按照时间单元的时间跨度等级顺序,依次获取一个当前时间单元的操作,直至将所述查询时间段在全部时间跨度等级的时间单元内进行拆分。
在本发明实施例中,查询服务器在数据查询请求中,划分出与查询时间段中当前时间单元分别对应的查询任务之后,可以进一步按照当前时间单元对查询时间段进行限缩处理后,返回执行按照时间单元的时间跨度等级顺序,依次获取一个当前时间单元的操作,直至将查询时间段在全部时间跨度等级的时间单元内进行拆分。
示例性的,假设查询时间段为上午8点至上午9点10分,当前时间单元为整小时,则按照当前时间单元对查询时间段进行限缩处理之后,限缩处理后的查询时间段为上午9点至上午9点10分,返回获取下一个时间跨度等级顺序的时间单元为当前时间单元,根据再次获取的当前时间单元对限缩处理后的查询时间段进行限缩处理,直至将查询时间段在全部时间跨度等级的时间单元内进行拆分。
上述技术方案,通过确定当前时间单元,并在查询时间段中包括当前时间单元时,根据当前时间单元将数据查询请求划分为多个查询任务,使得在缓存中查询各查询任务时,能够提高缓存的命中率,以及提高缓存的利用率。
S260、在所述应用层缓存中对各所述查询任务进行查询。
在本发明实施例中,查询服务器在将查询时间段在全部时间跨度等级的时间单元内进行拆分之后,可以进一步在应用层缓存中对各查询任务进行查询。
S270、判断是否查询到与全部查询任务分别对应的缓存结果;若否,执行S280;若是,执行S2120。
在本发明实施例中,查询服务器在应用层缓存中对各查询任务进行查询之后,可以进一步确定是否查询到与全部查询任务分别对应的缓存结果。如果未查询到与全部查询任务分别对应的缓存结果,则可以获取应用层未获取查询任务,并在分布式内存缓存中对应用层未获取查询任务进行查询。如果查询到与全部查询任务分别对应的缓存结果,则可以进一步将各缓存结果合并得到第一查询结果,并通过网关层将第一查询结果反馈至客户端。
S280、获取应用层未获取查询任务,并在分布式内存缓存中对所述应用层未获取查询任务进行查询。
其中,应用层未获取查询任务可以是在应用层缓存中未查询到缓存结果的查询任务。
在本发明实施例中,查询服务器在确定未查询到与全部查询任务分别对应的缓存结果之后,可以进一步获取应用层未获取查询任务,以在分布式内存缓存中对应用层未获取查询任务进行查询。
S290、判断是否查询到与全部查询任务分别对应的缓存结果;若否,执行S2100;若是,执行S2120。
在本发明实施例中,查询服务器在获取应用层未获取查询任务,并在分布式内存缓存中对应用层未获取查询任务进行查询之后,可以进一步确定是否查询到与全部应用层未获取查询任务分别对应的缓存结果。如果未查询到与全部查询任务分别对应的缓存结果,则可以获取分布式未获取查询任务,并在持久化层缓存中对分布式未获取查询任务进行查询。如果查询到与全部查询任务分别对应的缓存结果,则可以进一步将各缓存结果合并得到第一查询结果,并通过网关层将第一查询结果反馈至客户端。
S2100、获取分布式未获取查询任务,并在持久化层缓存中对所述分布式未获取查询任务进行查询。
其中,分布式未获取查询任务可以是在分布式内存缓存中未查询到缓存结果的查询任务。
在本发明实施例中,查询服务器在确定未查询到与全部应用层未获取查询任务分别对应的缓存结果之后,可以进一步获取分布式未获取查询任务,以在持久化层缓存中对分布式未获取查询任务进行查询。
上述技术方案,通过在应用层缓存、分布式内存缓存、持久化层缓存中,逐级查询各查询任务,并确定当前缓存中未查询到查询任务的缓存结果时,通过下一级缓存查询未查询到的查询任务,从而减少了数据查询过程中的查询计算量。
S2110、判断是否查询到与全部查询任务分别对应的缓存结果;若是,执行S2120;否则,执行S2130。
在本发明实施例中,查询服务器在获取分布式未获取查询任务,并在持久化层缓存中对分布式未获取查询任务进行查询之后,可以进一步确定是否查询到与全部查询任务分别对应的缓存结果。如果查询到与全部查询任务分别对应的缓存结果,则可以进一步将各缓存结果合并得到第一查询结果,并通过网关层将第一查询结果反馈至客户端。如果未查询到与全部查询任务分别对应的缓存结果,则可以进一步获取未获取查询任务。
S2120、将各缓存结果合并得到第一查询结果,并通过网关层将所述第一查询结果反馈至所述客户端。
S2130、获取未获取查询任务。
其中,未获取查询任务可以是未获取到缓存结果的查询任务。
在本发明实施例中,查询服务器在确定未查询到与全部查询任务分别对应的缓存结果之后,可以进一步获取未获取查询任务。
S2140、在持久化存储层的各原始数据表中对所述未获取查询任务进行查询,获取持久化查询结果。
其中,原始数据表可以是未经过处理的存储数据的表。持久化查询结果可以是在持久化存储层进行数据查询得到的结果。
在本发明实施例中,查询服务器在获取未获取查询任务之后,可以进一步在持久化存储层的各原始数据表中对未获取查询任务进行查询,以获取持久化查询结果。
S2150、将所述持久化查询结果,与已通过缓存查询获取的缓存结果合并得到第二查询结果,并通过网关层将所述第二查询结果反馈至所述客户端。
其中,第二查询结果可以是根据数据查询请求进行数据查询得到的另一个查询结果。
在本发明实施例中,查询服务器在持久化存储层的各原始数据表中对未获取查询任务进行查询,获取持久化查询结果之后,可以进一步将持久化查询结果,与已通过缓存查询获取的缓存结果合并得到第二查询结果,并通过网关层将第二查询结果反馈至客户端。
上述技术方案,增加了在多级缓存中,未查询到查询任务对应的缓存结果时的补充处理策略,即在未查询到查询任务对应的缓存结果时,在持久化存储层的原始数据表中查询未查询到的查询任务,能够确保数据查询请求的查询成功率和查询结果的准确率。
可选的,该方法还可以包括下述至少一项:根据持久化存储层的各原始数据表的时间数据,对各原始数据表进行数据表拆分,得到至少一个数据拆分表,并根据各数据拆分表更新持久化层缓存;在持久化层缓存中查询到与查询任务对应的缓存结果时,根据查询到的缓存结果更新分布式内存缓存;在分布式内存缓存中查询到与查询任务对应的缓存结果时,确定查询到的缓存结果对应的缓存历史命中次数,并根据缓存历史命中次数大于命中次数阈值的缓存结果,更新应用层缓存;根据第一查询结果更新网关层缓存,或者,根据第二查询结果更新网关层缓存。
其中,数据拆分表可以是对原始数据表进行拆分得到的表。
具体的,查询服务器可以根据持久化存储层的各原始数据表的时间数据,对各原始数据表进行数据表拆分,得到至少一个数据拆分表,并根据各数据拆分表更新持久化层缓存。可选的,可以根据持久化存储层的各原始数据表的时间单元,对各原始数据表进行数据表拆分,得到至少一个数据拆分表。示例性的,如果时间单元包括整天和整小时,则数据拆分表可以包括天级数据拆分表和小时级数据拆分表。
具体的,查询服务器可以在持久化层缓存中查询到与查询任务对应的缓存结果时,根据查询到的缓存结果更新分布式内存缓存。
其中,缓存历史命中次数可以是历史查询过程中,在分布式内存缓存中查到的缓存结果的被查询到的次数。示例性的,在分布式内存缓存中查到的缓存结果为缓存结果A,在历史查询过程中,缓存结果A被查询到的次数为10次,则缓存历史命中次数为10次。命中次数阈值可以是预先设定的被查询到的次数的阈值。
具体的,查询服务器可以在分布式内存缓存中查询到与查询任务对应的缓存结果时,进一步确定查询到的缓存结果对应的缓存历史命中次数,并根据缓存历史命中次数大于命中次数阈值的缓存结果,更新应用层缓存。
具体的,查询服务器可以根据第一查询结果更新网关层缓存,或者,根据第二查询结果更新网关层缓存。
上述技术方案,增加了各级缓存的更新策略,通过对各级缓存的更新,能够在各级缓存中对各查询任务进行查询,从而提高了数据的查询效率。
可选的,该方法还可以包括下述至少一项:根据惰性阈值和/或第一时间阈值确定网关层失效缓存,并根据网关层失效缓存更新网关层缓存;根据LFU算法和/或第二时间阈值确定应用层失效缓存,并根据应用层失效缓存更新应用层缓存;根据LRU算法和/或第三时间阈值确定分布式内存失效缓存,并根据分布式内存失效缓存更新分布式内存缓存;根据数据淘汰周期和/或缓存数据时间确定持久化层失效缓存,并根据持久化层失效缓存更新持久化层缓存。
其中,惰性阈值可以是预先设定的查询结果存储在网关层缓存的时间阈值。第一时间阈值可以是预先设定的一个网关层缓存失效的时间阈值,例如可以是几天,也可以是几个小时等,本发明实施例对此并不进行限制。网关层失效缓存可以是网关层缓存中的失效缓存。
具体的,查询服务器可以根据惰性阈值或第一时间阈值,或者根据惰性阈值和第一时间阈值,确定网关层失效缓存,以根据网关层失效缓存更新网关层缓存。示例性的,假设在网关层缓存中查询到与数据查询请求匹配的数据查询结果A,数据查询结果A存储在网关层缓存中的时间为8小时,且惰性阈值为5小时,说明数据查询结果A的存储时间大于惰性阈值,则可以将数据查询结果A确定为网关层失效缓存。在另一个示例中,假设第一时间阈值为1天,则可以将网关层缓存中存储超过1天的缓存确定为网关层失效缓存。
其中,第二时间阈值可以是预先设定的一个应用层缓存失效的时间阈值。应用层失效缓存可以是应用层缓存中的失效缓存。
具体的,查询服务器可以根据LFU算法或第二时间阈值,或者根据LFU算法和第二时间阈值,确定应用层失效缓存,以根据应用层失效缓存更新应用层缓存。示例性的,根据LFU算法和第二时间阈值确定应用层失效缓存,可以是以第二时间阈值为周期,根据LFU算法,将周期内最近最不经常使用的缓存确定为应用层失效缓存。
其中,第三时间阈值可以是预先设定的一个分布式内存缓存失效的时间阈值。分布式内存失效缓存可以是分布式内存缓存中的失效缓存。
具体的,查询服务器可以根据LRU算法或第三时间阈值,或者根据LRU算法和第三时间阈值,确定分布式内存失效缓存,以根据分布式内存失效缓存更新分布式内存缓存。示例性的,根据LRU算法和第三时间阈值,确定分布式内存失效缓存,可以是以第三时间阈值为周期,根据LRU算法,将周期内最近最少使用的缓存确定为分布式内存缓存。
其中,数据淘汰周期可以是持久化层缓存中缓存数据的淘汰周期。缓存数据时间可以是持久化层缓存中缓存数据存储的时间。持久化层失效缓存可以是持久化层缓存中的失效缓存。
具体的,查询服务器可以根据数据淘汰周期或缓存数据时间,或者根据数据淘汰周期和缓存数据时间,确定持久化层失效缓存,以根据持久化层失效缓存更新持久化层缓存。
上述技术方案,增加了各级缓存的缓存失效策略,通过确定各级缓存中的失效缓存,能够确保数据查询的准确性。
本实施例的技术方案,通过网关层接收客户端发送的数据查询请求,并在网关层未存储数据查询请求匹配的数据查询结果时,按照当前时间单元将数据查询请求拆分为多个查询任务,在应用层缓存、分布式内存缓存以及持久化层缓存中逐级查询各查询任务,如果查询到全部查询任务对应的缓存结果,则将各缓存结果合并后通过网关层反馈至客户端,如果未查询到全部查询任务对应的缓存结果,则在原始数据表中查询未获取查询任务,并将查询结果和各缓存结果合并后通过网关层反馈至客户端,实现了数据查询过程中计算量的减少,同时提升了数据查询的响应速度,从而提高了数据的查询效率。
实施例三
为了使本领域技术人员更好的理解数据的多级查询方法,本实施例采用一个具体示例进行说明。图3是本发明实施例三提供的一种数据的多级查询方法的示例流程图,如图3所示,具体过程包括:
步骤301:查询服务器通过网关层接收客户端发送的数据查询请求。在网关层缓存中查询与数据查询请求匹配的数据查询结果,并在查询到与数据查询请求匹配的数据查询结果时,将数据查询结果反馈至客户端。如果为查询到与数据查询请求匹配的数据查询结果,则将数据查询请求发送至查询服务器的应用层。
具体的,图4是本发明实施例三提供的查询服务器的分层结构示意图,如图4所示,查询服务器可以包括网关层、应用服务层(也即应用层)、分布式内存缓存层、持久化存储层以及离线分析层。
步骤302:查询服务器应用层接收数据查询请求,并通过应用层根据当前时间单元对数据查询请求进行拆分,得到多个查询任务。具体的,在对数据查询请求进行拆分时,可以根据当前时间单元对数据查询请求中的查询起止时间进行分解,例如将查询起止时间按整天、整小时、整三十分钟、整十分钟、整分钟和整秒(也即即席)的查询时间段进行分解。
步骤303:在查询服务器的多级缓存中,逐级查询各查询任务。在应用层缓存中依次查询各查询任务。如果在应用层缓存中未查询到与查询任务对应的缓存结果,则进入分布式内存缓存层,在分布式内存缓存中查询未查询到的查询任务。如果在分布式内存缓存中未查询到与查询任务对应的缓存结果,则进入持久化缓存层,则持久化层缓存中查询未查询到的查询任务。如果在持久化层缓存中未查询到与查询任务对应的缓存结果,则进入持久化缓存层的原始数据表进行查询。
步骤304:缓存结果合并。具体的,将各层获取的缓存结果按照预先设定的数据聚合需求进行合并,并将合并后的缓存结果组装为标准格式数据后,通过网关层反馈至客户端。
具体的,查询服务器分级缓存的更新可以包括:持久化层缓存的更新可以包括:通过查询服务器的离线分析层根据离线分析任务对持久化存储层中的原始数据表进行数据表拆分,根据拆分后的数据表更新持久化层缓存。其中,离线分析任务可以是通过离线分析层,将原始数据表拆分为整天、整小时、整三十分钟、整十分钟或整分钟的任务。分布式内存缓存的更新可以包括:获取持久化层缓存中查询到与查询任务对应的缓存结果,根据查询到的缓存结果更新分布式内存缓存。应用层缓存的更新可以包括:确定分布式内存缓存中查询到与查询任务对应的缓存结果,在预设时间段内的命中次数,并在缓存结果的命中次数超过预设次数阈值时,根据缓存结果更新应用层缓存。网关层缓存的更新可以包括:获取通过网关层反馈至客户端的合并后的缓存结果,并根据合并后的缓存结果更新网关层缓存。
具体的,查询服务器分级缓存的失效可以包括:持久化层缓存的失效可以包括:根据数据淘汰周期和缓存数据时间确定持久化层失效缓存。具体的,当进入数据淘汰周期时,确定缓存数据时间超过预设时间的缓存,并将该缓存确定为持久化层失效缓存。分布式内存缓存的失效可以包括:根据LRU算法和定时失效阈值确定分布式内存失效缓存。具体的,在预设时间周期内根据LRU算法确定最近最少使用的缓存,并将该缓存确定为分布式内存失效缓存。应用层缓存的失效可以包括:根据LFU算法和定时失效阈值确定应用层失效缓存。具体的,在预设时间周期内根据LFU算法确定最近最不经常使用的缓存,并将该缓存确定为应用层失效缓存。网关层缓存的失效可以包括:根据惰性失效阈值和定时失效阈值确定网关层失效缓存。其中,惰性失效可以是在接收到数据查询请求后,如果在网关层查询到数据查询请求的数据查询结果,则进一步确定数据查询结果的存储时间是否已经超过惰性失效阈值。如果超过惰性失效阈值,则将该数据查询结果确定为网关层失效缓存。定时失效可以是在预设时间周期内,确定网关层的缓存存储时间,并将缓存存储时间超过定时失效阈值的缓存确定为网关层失效缓存。
上述技术方案,通过对查询服务器的缓存进行分级,提高数据查询请求的响应速度,降低数据集群的负载;通过将数据查询请求进行任务拆分,提高缓存的命中率以及缓存的利用率。
实施例四
图5是本发明实施例四提供的一种数据的多级查询装置的示意图,如图5所示,所述装置包括:数据查询请求接收模块510、数据查询请求拆分模块520、查询任务查询模块530以及查询结果反馈模块540,其中:
数据查询请求接收模块510,用于通过网关层接收客户端发送的数据查询请求;
数据查询请求拆分模块520,用于在确定网关层未存储与所述数据查询请求匹配的数据查询结果时,根据所述数据查询请求的查询时间段,将所述数据查询请求拆分为多个查询任务;
查询任务查询模块530,用于在多级缓存中,逐级查询各所述查询任务;
查询结果反馈模块540,用于在确定查询到与全部查询任务分别对应的缓存结果时,将各缓存结果合并得到第一查询结果,并通过网关层将所述第一查询结果反馈至所述客户端。
本实施例的技术方案,通过网关层接收客户端发送的数据查询请求,并在确定网关层未存储与数据查询请求匹配的数据查询结果时,根据数据查询请求的查询时间段,将数据查询请求拆分为多个查询任务,以在多级缓存中,逐级查询各查询任务,从而在确定查询到与全部查询任务分别对应的缓存结果时,将各缓存结果合并得到第一查询结果,进而通过网关层将第一查询结果反馈至客户端,解决了现有的数据查询方法的数据查询效率较低的问题,能够减少数据查询计算量,提升数据查询响应速度,从而提高数据的查询效率。
可选的,数据查询请求拆分模块520,可以具体用于:按照时间单元的时间跨度等级顺序,依次获取一个当前时间单元;检测查询时间段中是否包含至少一个当前时间单元;若是,则在数据查询请求中,划分出与查询时间段中各当前时间单元分别对应的查询任务;按照当前时间单元对查询时间段进行限缩处理后,返回执行按照时间单元的时间跨度等级顺序,依次获取一个当前时间单元的操作,直至将查询时间段在全部时间跨度等级的时间单元内进行拆分。
可选的,多级缓存可以包括:应用层缓存、分布式内存缓存以及持久化层缓存中的至少两项。
可选的,查询任务查询模块530,可以具体用于:在应用层缓存中对各查询任务进行查询;在确定未查询到与全部查询任务分别对应的缓存结果时,获取应用层未获取查询任务,并在分布式内存缓存中对应用层未获取查询任务进行查询;在确定未查询到与全部应用层未获取查询任务分别对应的缓存结果时,获取分布式未获取查询任务,并在持久化层缓存中对分布式未获取查询任务进行查询。
可选的,查询任务查询模块530,还可以具体用于:在确定未查询到与全部查询任务分别对应的缓存结果时,获取未获取查询任务;在持久化存储层的各原始数据表中对未获取查询任务进行查询,获取持久化查询结果;将持久化查询结果,与已通过缓存查询获取的缓存结果合并得到第二查询结果,并通过网关层将第二查询结果反馈至客户端。
可选的,数据的多级查询装置,可以具体用于:根据持久化存储层的各原始数据表的时间数据,对各原始数据表进行数据表拆分,得到至少一个数据拆分表,并根据各数据拆分表更新持久化层缓存;在持久化层缓存中查询到与查询任务对应的缓存结果时,根据查询到的缓存结果更新分布式内存缓存;在分布式内存缓存中查询到与查询任务对应的缓存结果时,确定查询到的缓存结果对应的缓存历史命中次数,并根据缓存历史命中次数大于命中次数阈值的缓存结果,更新应用层缓存;根据第一查询结果更新网关层缓存,或者,根据第二查询结果更新网关层缓存。
可选的,数据的多级查询装置,还可以具体用于:根据惰性阈值和/或第一时间阈值确定网关层失效缓存,并根据网关层失效缓存更新网关层缓存;根据LFU算法和/或第二时间阈值确定应用层失效缓存,并根据应用层失效缓存更新应用层缓存;根据LRU算法和/或第三时间阈值确定分布式内存失效缓存,并根据分布式内存失效缓存更新分布式内存缓存;根据数据淘汰周期和/或缓存数据时间确定持久化层失效缓存,并根据持久化层失效缓存更新持久化层缓存。
本发明实施例所提供的数据的多级查询装置可执行本发明任意实施例所提供的数据的多级查询方法,具备执行方法相应的功能模块和有益效果。
实施例五
图6示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图6所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如数据的多级查询方法。
在一些实施例中,数据的多级查询方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的数据的多级查询方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据的多级查询方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种数据的多级查询方法,由查询服务器执行,其特征在于,包括:
通过网关层接收客户端发送的数据查询请求;
在确定网关层未存储与所述数据查询请求匹配的数据查询结果时,根据所述数据查询请求的查询时间段,将所述数据查询请求拆分为多个查询任务;
在多级缓存中,逐级查询各所述查询任务;
在确定查询到与全部查询任务分别对应的缓存结果时,将各缓存结果合并得到第一查询结果,并通过网关层将所述第一查询结果反馈至所述客户端。
2.根据权利要求1所述的方法,其特征在于,根据所述数据查询请求的查询时间段,将所述数据查询请求拆分为多个查询任务,包括:
按照时间单元的时间跨度等级顺序,依次获取一个当前时间单元;
检测所述查询时间段中是否包含至少一个当前时间单元;
若是,则在所述数据查询请求中,划分出与所述查询时间段中各所述当前时间单元分别对应的查询任务;
按照所述当前时间单元对所述查询时间段进行限缩处理后,返回执行按照时间单元的时间跨度等级顺序,依次获取一个当前时间单元的操作,直至将所述查询时间段在全部时间跨度等级的时间单元内进行拆分。
3.根据权利要求1所述的方法,其特征在于,所述多级缓存包括:应用层缓存、分布式内存缓存以及持久化层缓存中的至少两项。
4.根据权利要求3所述的方法,其特征在于,在多级缓存中,逐级查询各所述查询任务,包括:
在所述应用层缓存中对各所述查询任务进行查询;
在确定未查询到与全部查询任务分别对应的缓存结果时,获取应用层未获取查询任务,并在分布式内存缓存中对所述应用层未获取查询任务进行查询;
在确定未查询到与全部应用层未获取查询任务分别对应的缓存结果时,获取分布式未获取查询任务,并在持久化层缓存中对所述分布式未获取查询任务进行查询。
5.根据权利要求1所述的方法,其特征在于,在多级缓存中,逐级查询各所述查询任务之后,还包括:
在确定未查询到与全部查询任务分别对应的缓存结果时,获取未获取查询任务;
在持久化存储层的各原始数据表中对所述未获取查询任务进行查询,获取持久化查询结果;
将所述持久化查询结果,与已通过缓存查询获取的缓存结果合并得到第二查询结果,并通过网关层将所述第二查询结果反馈至所述客户端。
6.根据权利要求3-5任一所述的方法,其特征在于,该方法还包括下述至少一项:
根据持久化存储层的各原始数据表的时间数据,对各原始数据表进行数据表拆分,得到至少一个数据拆分表,并根据各所述数据拆分表更新所述持久化层缓存;
在持久化层缓存中查询到与查询任务对应的缓存结果时,根据查询到的缓存结果更新所述分布式内存缓存;
在分布式内存缓存中查询到与查询任务对应的缓存结果时,确定查询到的缓存结果对应的缓存历史命中次数,并根据缓存历史命中次数大于命中次数阈值的缓存结果,更新所述应用层缓存;
根据第一查询结果更新网关层缓存,或者,根据第二查询结果更新网关层缓存。
7.根据权利要求3-5任一所述的方法,其特征在于,该方法还包括下述至少一项:
根据惰性阈值和/或第一时间阈值确定网关层失效缓存,并根据所述网关层失效缓存更新网关层缓存;
根据LFU算法和/或第二时间阈值确定应用层失效缓存,并根据所述应用层失效缓存更新所述应用层缓存;
根据LRU算法和/或第三时间阈值确定分布式内存失效缓存,并根据所述分布式内存失效缓存更新所述分布式内存缓存;
根据数据淘汰周期和/或缓存数据时间确定持久化层失效缓存,并根据所述持久化层失效缓存更新所述持久化层缓存。
8.一种数据的多级查询装置,配置于查询服务器,其特征在于,包括:
数据查询请求接收模块,用于通过网关层接收客户端发送的数据查询请求;
数据查询请求拆分模块,用于在确定网关层未存储与所述数据查询请求匹配的数据查询结果时,根据所述数据查询请求的查询时间段,将所述数据查询请求拆分为多个查询任务;
查询任务查询模块,用于在多级缓存中,逐级查询各所述查询任务;
查询结果反馈模块,用于在确定查询到与全部查询任务分别对应的缓存结果时,将各缓存结果合并得到第一查询结果,并通过网关层将所述第一查询结果反馈至所述客户端。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的数据的多级查询方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的数据的多级查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210375211.8A CN114706890A (zh) | 2022-04-11 | 2022-04-11 | 一种数据的多级查询方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210375211.8A CN114706890A (zh) | 2022-04-11 | 2022-04-11 | 一种数据的多级查询方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114706890A true CN114706890A (zh) | 2022-07-05 |
Family
ID=82171814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210375211.8A Pending CN114706890A (zh) | 2022-04-11 | 2022-04-11 | 一种数据的多级查询方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114706890A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115913646A (zh) * | 2022-10-21 | 2023-04-04 | 网易(杭州)网络有限公司 | 黑名单对象的拦截方法、装置、电子设备和存储介质 |
-
2022
- 2022-04-11 CN CN202210375211.8A patent/CN114706890A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115913646A (zh) * | 2022-10-21 | 2023-04-04 | 网易(杭州)网络有限公司 | 黑名单对象的拦截方法、装置、电子设备和存储介质 |
CN115913646B (zh) * | 2022-10-21 | 2024-06-04 | 网易(杭州)网络有限公司 | 黑名单对象的拦截方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108090153B (zh) | 一种搜索方法、装置、电子设备及存储介质 | |
CN109977129A (zh) | 多级数据缓存方法及设备 | |
CN111722918A (zh) | 业务标识码生成方法、装置、存储介质及电子设备 | |
CN113568938B (zh) | 数据流处理方法、装置、电子设备及存储介质 | |
CN114817651B (zh) | 数据存储方法、数据查询方法、装置和设备 | |
US11636112B2 (en) | Updating cache data | |
CN114706890A (zh) | 一种数据的多级查询方法、装置、电子设备及存储介质 | |
CN112579897B (zh) | 信息搜索方法和装置 | |
CN113760640A (zh) | 监控日志处理方法、装置、设备及存储介质 | |
CN115103024B (zh) | 一种序列号生成方法、装置、电子设备及存储介质 | |
CN116185578A (zh) | 计算任务的调度方法和计算任务的执行方法 | |
CN115438007A (zh) | 一种文件合并方法、装置、电子设备及介质 | |
US11599583B2 (en) | Deep pagination system | |
CN114691781A (zh) | 一种数据同步方法、系统、装置、设备及介质 | |
CN117056379B (zh) | 一种元数据缓存方法、装置、电子设备及可读存储介质 | |
CN113992760B (zh) | 回源流量的调度方法、装置、设备以及存储介质 | |
CN117527903A (zh) | 一种车联网流数据缓存方法、装置、电子设备和存储介质 | |
CN115442432B (zh) | 一种控制方法、装置、设备及存储介质 | |
CN114722264A (zh) | 一种数据查询方法、装置、电子设备及存储介质 | |
CN114116613B (zh) | 基于分布式文件系统的元数据查询方法、设备和存储介质 | |
US20230297572A1 (en) | Cache update adaptation | |
CN115858472A (zh) | 一种数据处理方法、装置、服务器及介质 | |
CN115858104A (zh) | 一种事务提交序号快照获取方法、装置、设备及存储介质 | |
CN115878627A (zh) | 一种数据库分库方法、装置、设备和存储介质 | |
CN117931751A (zh) | Hdfs中的元数据处理方法、装置、设备及介质 |
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 |