CN106777085A - 一种数据处理方法、装置及数据查询*** - Google Patents

一种数据处理方法、装置及数据查询*** Download PDF

Info

Publication number
CN106777085A
CN106777085A CN201611147798.8A CN201611147798A CN106777085A CN 106777085 A CN106777085 A CN 106777085A CN 201611147798 A CN201611147798 A CN 201611147798A CN 106777085 A CN106777085 A CN 106777085A
Authority
CN
China
Prior art keywords
inquiry request
target
target data
inquiry
external cache
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
CN201611147798.8A
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.)
Neusoft Corp
Original Assignee
Neusoft Corp
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 Neusoft Corp filed Critical Neusoft Corp
Priority to CN201611147798.8A priority Critical patent/CN106777085A/zh
Publication of CN106777085A publication Critical patent/CN106777085A/zh
Pending legal-status Critical Current

Links

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/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (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)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供了一种数据处理方法、装置及数据查询***,在接收到客户端的第一查询请求时,将其处理成可在外部缓存***查询的第二查询请求并基于第二查询请求在外部缓存***中查询,如果未查询到第二查询请求,则从目标数据库中获取与第二查询请求对应的目标数据,将该目标数据缓存在外部缓存***中。本申请可将第二查询请求和对应的目标数据缓存在外部缓存***,由于外部缓存***的缓存容量通常较大或者可扩展,因此,其能够实现对所有查询结果的缓存,并且,由于各个查询服务器共享外部缓存***,这使得只要外部缓存***中缓存有目标数据,任何一个查询服务器均能较快的向客户端反馈与查询请求对应的目标数据,且避免了不必要的资源浪费。

Description

一种数据处理方法、装置及数据查询***
技术领域
本发明数据查询技术领域,尤其涉及一种数据处理方法、装置及数据查询***。
背景技术
Apache Kylin是大数据量的秒级SQL查询引擎,其原理是通过预计算所有可能的维度组合存储在Hbase中,查询时解析SQL以获取维度和度量信息,然后再从hbase中扫描获取数据返回。
Kylin中SQL引擎使用的是Calcite进行SQL解析、优化和部分算子的运算,由于Calcite的计算是完全基于内存的,因此,当Kylin中一个查询需要从hbase中获取大量记录时,内存会逐渐成为瓶颈。考虑到SQL查询通常是基于历史数据的,而历史数据最重要的特性是不可变性,对于不经常变化的数据,缓存是最常用也是最有效的提升性能的办法。Kylin并不是对每个查询结果均进行缓存,对于每一个查询,其会根据该查询扫描的记录总数是否超过设定阈值判断是否需要缓存结果,如果查询扫描的记录总数超过设定阈值,则进行缓存。
请参阅图1,示出了现有技术中的Kylin架构,从图1中可以看出,Kylin架构中的多个查询服务器是独立的,对于每个查询服务器而言,其只能将数据缓存在本机的内存中,然而本机的内存有限,其可能无法对所有查询结果进行缓存,并且,由于各个查询服务器均将数据缓存在本机的内存中,而各个查询服务器又相互独立,这会导致查询服务器响应客户端查询请求的速度时快时慢,并且造成不必要的资源浪费。
发明内容
有鉴于此,本发明提供了一种数据处理方法、装置及数据查询***,用以解决现有技术中数据查询服务器将数据缓存在本机的内存中,而本机内存有限,其可能导致无法对所有查询结果进行缓存,并且,查询服务器响应客户端查询请求的速度时快时慢,并且造成不必要的资源浪费的问题,其技术方案如下:
一种数据处理方法,应用于数据查询***中的查询服务器,所述查询服务器设置有连接外部缓存***的接口,并通过所述接口与所述外部缓存***连接,所述外部缓存***用于缓存查询请求和与所述查询请求对应的目标数据;
优选地,所述数据处理方法包括:
当接收到来自客户端的第一查询请求时,从所述第一查询请求中提取目标查询参数;
将所述目标查询参数按预设规则处理成第二查询请求,并在所述外部缓存***中查询所述第二查询请求;
当在所述外部缓存***中未查询到所述第二查询请求时,将所述第二查询请求存储至所述外部缓存***中,并从目标数据库中查询与所述第二查询请求对应的目标数据;
将与所述第二查询请求对应的目标数据与所述第二查询请求对应存储在所述外部缓存***中。
所述数据处理方法还包括:
当在所述外部缓存***中查询到所述第二查询请求时,在所述外部缓存***中获取与所述第二查询请求对应的目标数据;
将与所述第二查询请求对应的目标数据反馈给所述客户端。
优选地,在所述外部缓存***中获取与所述第二查询请求对应的目标数据之前,所述数据处理方法还包括:
判断与所述第二查询请求对应的目标数据在所述外部缓存***中缓存的时间是否晚于在所述目标数据库的最新更新时间;
当与所述第二查询请求对应的目标数据在所述外部缓存***中缓存的时间晚于在所述目标数据库的最新更新时间时,执行所述从所述外部缓存***中获取与所述第二查询请求对应的目标数据。
优选地,所述数据处理方法还包括:
当与所述第二查询请求对应的目标数据在所述外部缓存***中缓存的时间早于在所述目标数据库的最新更新时间时,从所述外部缓存***中清除与所述第二查询请求对应的目标数据;
从所述目标数据库中重新查询与所述第二查询请求对应的目标数据,并将重新查询到的目标数据与所述第二查询请求对应存储至所述外部缓存***中。
优选地,在将所述第二查询请求存储至所述外部缓存***之后,所述数据处理方法还包括:
在所述外部缓存***中,与所述第二查询请求对应的目标数据的存储位置处写入目标指示信息,所述目标指示信息用于指示正在查询与所述第二查询请求对应的目标数据;
所述将与所述第二查询请求对应的目标数据与所述第二查询请求对应存储在所述外部缓存***中,包括:
在从目标数据库中获得与所述第二查询请求对应的目标数据之后,将与所述第二查询请求对应的目标数据的存储位置处的所述目标指示信息更新为与所述第二查询请求对应的目标数据。
优选地,所述数据处理方法还包括:
判断与所述第二查询请求对应的目标数据的存储位置存储的是否为所述目标指示信息;
当与所述第二查询请求对应的目标数据的存储位置存储的是所述目标指示信息时,等待,直至所述目标指示信息更新为与所述第二查询请求对应的目标数据,执行所述判断与所述第二查询请求对应的目标数据在所述外部缓存***中缓存的时间是否晚于在所述目标数据库的最新更新时间;
当与所述第二查询请求对应的目标数据的存储位置存储的不是所述目标指示信息时,执行所述判断与所述第二查询请求对应的目标数据在所述外部缓存***中缓存的时间是否晚于在所述目标数据库的最新更新时间。
一种数据处理装置,应用于数据查询***中的查询服务器,所述查询服务器设置有连接外部缓存***的接口,并通过所述接口与所述外部缓存***连接,所述外部缓存***用于缓存查询请求和与所述查询请求对应的目标数据;
所述数据处理装置包括:提取模块、处理模块、第一查询模块、第一存储模块、第二查询模块和第二存储模块;
所述提取模块,用于当接收到来自客户端的第一查询请求时,从所述第一查询请求中提取目标查询参数;
所述处理模块,用于将所述提取模块提取的所述目标查询参数按预设规则处理成第二查询请求;
所述第一查询模块,用于在所述外部缓存***中查询所述处理模块处理得到的所述第二查询请求;
所述第一存储模块,用于当所述第一查询模块在所述外部缓存***中未查询到所述第二查询请求时,将所述第二查询请求存储至所述外部缓存***中;
所述第二查询模块,用于从目标数据库中查询与所述第二查询请求对应的目标数据;
所述第二存储模块,用于将所述第二查询模块查询的与所述第二查询请求对应的目标数据与所述第二查询请求对应存储在所述外部缓存***中。
一种数据查询***,包括:查询服务器和外部存储***,所述查询服务器设置有连接外部缓存***的接口,所述查询服务器通过所述接口与所述外部缓存***连接;
所述外部缓存***,用于缓存查询请求和与所述查询请求对应的目标数据;
所述查询服务器,用于当接收到来自客户端的第一查询请求时,从所述第一查询请求中提取目标查询参数;将所述目标查询参数按预设规则处理成第二查询请求,并在所述外部缓存***中查询所述第二查询请求;当在所述外部缓存***中未查询到所述第二查询请求时,将所述第二查询请求存储至所述外部缓存***中,并从目标数据库中查询与所述第二查询请求对应的目标数据;将与所述第二查询请求对应的目标数据与所述第二查询请求对应存储在所述外部缓存***中。
其中,所述查询服务器,还用于当在所述外部缓存***中查询到所述第二查询请求时,在所述外部缓存***中获取与所述第二查询请求对应的目标数据,并将与所述第二查询请求对应的目标数据反馈给所述客户端。
其中,所述查询服务器,还用于判断与所述第二查询请求对应的目标数据在所述外部缓存***中缓存的时间是否晚于在所述目标数据库的最新更新时间;当与所述第二查询请求对应的目标数据在所述外部缓存***中缓存的时间早于在所述目标数据库的最新更新时间时,从所述外部缓存***中清除与所述第二查询请求对应的目标数据,从所述目标数据库中重新查询与所述第二查询请求对应的目标数据,并将重新查询到的目标数据与所述第二查询请求对应存储至所述外部缓存***中。
上述技术方案具有如下有益效果:
本发明提供的数据处理方法、装置及数据查询***,在接收到客户端的第一查询请求时,能够将第一查询请求处理成可在外部缓存***查询的第二查询请求,并基于第二查询请求在外部缓存***中查询,如果在外部缓存***中未查询到第二查询请求时,表明外部缓存***中未缓存有与第二查询请求对应的目标数据,此时,从目标数据库中查询与第二查询请求对应的目标数据,并将该目标数据缓存在外部缓存***中。由此可见,本发明提供的数据处理方法、装置及数据查询***使得,查询服务器不再将目标数据缓存在本机的内存中,而是将第二查询请求以及对应的目标数据对应缓存在外部缓存***,由于外部缓存的缓存容量通常较大或者可扩展,因此,其能够实现对所有查询结果的缓存,解决了现有技术中将目标数据缓存在本地的内存所带来的局限。另外,由于数据查询***中的查询服务器均与外部缓存***连接,即各个查询服务器共享外部缓存***,这使得只要外部缓存***中缓存有与查询请求对应的目标数据,任何一个查询服务器均能较快的向客户端反馈与查询请求对应的目标数据,且避免了不必要的资源浪费。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为现有技术中Kylin查询***的架构图;
图2为本发明实施例提供的数据缓存方法数据处理方法的一流程示意图;
图3为本发明实施例提供的数据处理方法的另一流程示意图;
图4为本发明实施例提供的数据处理方法的另一流程示意图;
图5为本发明实施例提供的数据处理装置的一结构示意图;
图6为本发明实施例提供的数据查询***的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种数据处理方法,应用于数据查询***中的查询服务器,查询服务器设置有连接外部缓存***的接口,并通过该接口与外部缓存***连接,外部缓存***用于缓存查询请求和与查询请求对应的目标数据,请参阅图2,示出了该数据处理方法的流程示意图,可以包括:
步骤S201:当接收到来自客户端的第一查询请求时,从第一查询请求中提取目标查询参数。
步骤S202:将目标查询参数按预设规则处理成第二查询请求,并在外部缓存***中查询第二查询请求。
需要说明的是,上述提及的外部缓存***缓存的查询请求为第二查询请求,与查询请求对应的目标数据为与第二查询请求对应的目标数据。
在本实施例中,外部缓存***可以但不限定为存储容量大于预设值的缓存***,也可以为缓存容量可扩展的分布式缓存***。优选地,外部缓存***为缓存容量可扩展的分布式缓存***。
步骤S203:当在外部缓存***中未查询到第二查询请求时,将第二查询请求存储至外部缓存***中,并从目标数据库中查询与第二查询请求对应的目标数据。
当在外部缓存***中未查询到第二查询请求时,表明外部缓存***中并未缓存有与第二查询请求对应的目标数据,此时,需要去目标数据库中查询与第二查询请求对应的目标数据。
步骤S204:将与第二查询请求对应的目标数据与第二查询请求对应存储在外部缓存***中。
需要说明的是,为了便于后续对于数据的查询,在存储与第二查询请求对应的目标数据时,需要将与第二查询请求对应的目标数据与第二查询请求对应。
本发明实施例提供的数据处理方法,在接收到客户端的第一查询请求时,首先将第一查询请求处理成可在外部缓存***查询的第二查询请求,并基于第二查询请求在外部缓存***中查询,如果在外部缓存***中未查询到第二查询请求,表明外部缓存***中未缓存有与第二查询请求对应的目标数据,此时,从目标数据库中查询与第二查询请求对应的目标数据,并将该目标数据缓存在外部缓存***中。由此可见,本发明实施例提供的数据处理方法使得,查询服务器不再将目标数据缓存在本机的内存中,而是将第二查询请求以及对应的目标数据对应缓存在外部缓存***,由于外部缓存的缓存容量通常较大或者可扩展,因此,其能够实现对所有查询结果的缓存,解决了现有技术中将目标数据缓存在本地内存所带来的局限。
另外,现有技术中,由于各个查询服务器均将数据缓存在本机的内存中,且各个查询服务器相互独立,如果某个服务器中已缓存了目标数据,当客户端请求该服务器查询目标数据时,该查询服务器能够较快的向客户端返回查询结果,然而如果客户端请求另一个未缓存目标数据的查询服务器,该查询服务器无法快速向客户端返回查询结果,因为其需要去目标数据库中查询数据,再将查询结果返回给客户端,这会导致查询服务器响应客户端查询请求的速度时快时慢,并且造成不必要的资源浪费,而本发明实施例提供的数据处理方法中,由于数据查询***中的查询服务器均与外部缓存***连接,即各个查询服务器共享外部缓存***,这使得只要外部缓存***中缓存有与查询请求对应的目标数据,任何一个查询服务器均能较快的向客户端反馈与查询请求对应的目标数据,且避免了不必要的资源浪费。
上述实施例提供的数据处理方法,给出了当在外部缓存***中未查询到第二查询请求时的处理过程,然而,在某些时候,可能存在外部缓存***中已存储有第二查询请求的情况,针对该情况,为了提供更全面的解决方案,请参阅图3,示出了本发明实施例提供的数据处理方法的另一流程示意图,该数据处理方法同样应用于数据查询***中的查询服务器,查询服务器设置有连接外部缓存***的接口,并通过该接口与外部缓存***连接,外部缓存***用于缓存查询请求和与查询请求对应的目标数据,该数据处理方法可以包括:
步骤S301:当接收到来自客户端的第一查询请求时,从第一查询请求中提取目标查询参数。
步骤S302:将目标查询参数按预设规则处理成第二查询请求,并在外部缓存***中查询第二查询请求。
在本实施例中,外部缓存***可以为存储容量大于预设值的缓存***,或者为缓存容量可扩展的分布式缓存***,优选地,外部缓存***为缓存容量可扩展的分布式缓存***。
由于客户端的查询请求无法直接适用于外部缓存***,因此,本实施例需要将从第一查询请求提取出的目标查询参数处理成能够在外部缓存***中查询的第二查询请求。
步骤S303a:当在外部缓存***中未查询到第二查询请求时,将第二查询请求存储至外部缓存***中,并在外部缓存***中、与第二查询请求对应的目标数据的存储位置处写入目标指示信息。
其中,目标指示信息用于指示正在目标数据库中查询与第二查询请求对应的目标数据。示例性的,在与第二查询请求对应的目标数据的存储位置处写入“isRunning”。
步骤S304a:在获得与第二查询请求对应的目标数据之后,将与第二查询请求对应的目标数据的存储位置处的目标指示信息更新为与第二查询请求对应的目标数据,然后执行步骤S305。
上述步骤S303a~S304a给出了当在外部缓存***中未查询到第二查询请求时的处理过程,然而,在某些时候,还可能存在外部数据缓存***已缓存有与第二查询请求对应的目标数据的情况,此时,处理过程请参见如下步骤:
步骤S303b:当在外部缓存***中查询到第二查询请求时,判断与第二查询请求对应的目标数据的存储位置存储的是否为目标指示信息,当与第二查询请求对应的目标数据的存储位置存储的是目标指示信息时,执行步骤S304b-a,否则,执行步骤S304b-b。
步骤S304b-a:轮询等待,直至目标指示信息更新为与第二查询请求对应的目标数据,从存储位置获取与第二查询请求对应的目标数据,然后执行步骤S305。
步骤S304b-b:从存储位置获取与第二查询请求对应的目标数据,然后执行步骤S305。
步骤S305:将与第二查询请求对应的目标数据反馈给客户端。
需要说明的是,在本发明实施例中,当在外部缓存***中未查询到第二查询请求时,将第二查询请求存储至外部缓存***中,并在外部缓存***中、与第二查询请求对应的目标数据的存储位置处写入目标指示信息,以指示正在查询与第二查询请求对应的目标数据,需要说明的是,在另一种可能的实现方式中,在将第二查询请求存储至外部缓存***之后,也可在与第二查询请求对应的目标数据的存储位置处不写入任何信息,外部缓存***中存储了第二查询请求,但第二查询请求对应的存储位置为空,表明正在查询与第二查询请求对应的目标数据,当查询到与第二查询请求对应的目标数据之后,直接将该目标数据存储至与第二查询请求对应的存储位置处。
相应的,当外部缓存***中查询到第二查询请求时,判断与第二查询请求对应的目标数据的存储位置存储的是否为空,如果与第二查询请求对应的目标数据的存储位置为空,则表明正在获取与第二查询请求对应的目标数据,则轮询等待,直至与第二查询请求对应的目标数据的存储位置存储有与第二查询请求对应的目标数据。
本发明实施例提供的数据处理方法,在接收到客户端的第一查询请求时,首先将第一查询请求处理成能够在外部缓存***中进行查询的第二查询请求,并基于第二查询请求进行查询,如果在外部缓存***中未查询到第二查询请求,表明外部缓存***中未缓存有与第二查询请求对应的目标数据,此时,从目标数据库中查询与第二查询请求对应的目标数据,并将该目标数据缓存在外部缓存***中,如果在外部缓存***中查询到第二查询请求,表明外部缓存***中正在缓存或已缓存有与第二查询请求对应的目标数据,此时可从外部缓存中获取与第二查询请求对应的目标数据并反馈给客户端。由此可见,本发明实施例提供的数据处理方法使得,查询服务器不再将目标数据缓存在本机的内存中,而是将第二查询请求以及对应的目标数据对应缓存在外部缓存***,由于外部缓存的缓存容量通常较大或者可扩展,因此,其能够实现对所有查询结果的缓存,解决了现有技术中将目标数据缓存在本地的内存所带来的局限。另外,由于数据查询***中的查询服务器均与外部缓存***连接,即各个查询服务器共享外部缓存***,这使得只要外部缓存***中缓存有与查询请求对应的目标数据,任何一个查询服务器均能较快的向客户端反馈与查询请求对应的目标数据,且避免了不必要的资源浪费。
可以理解的是,目标数据库中的数据可能是不断更新的,在某些时候,可能存在将一目标数据缓存到外部缓存***之后,目标数据库中的该目标数据进行了更新,而当查询服务器接收到来自客户端对该目标数据的查询请求时,由于外部缓存***已经缓存了该目标数据,因此,查询服务器会直接从外部缓存***中获取该目标数据反馈给客户端,而实际上此时的目标数据在目标数据库中已经发生了更新,也就是说,查询服务器反馈给客户端的数据是并不是当前最新的数据,而是过期数据。为了能够向客户端反馈当前最新的更新数据,请参阅图4,示出了本发明实施例提供的数据处理方法的另一流程示意图,该数据处理方法应用于数据查询***中的查询服务器,查询服务器设置有连接外部缓存***的接口,并通过该接口与外部缓存***连接,外部缓存***用于缓存查询请求和与查询请求对应的目标数据,该数据处理方法可以包括:
步骤S401:当接收到来自客户端的第一查询请求时,从第一查询请求中提取目标查询参数。
步骤S402:将目标查询参数按预设规则处理成第二查询请求,并在外部缓存***中查询第二查询请求。
需要说明的是,上述提及的外部缓存***缓存的查询请求为第二查询请求,与查询请求对应的目标数据为与第二查询请求对应的目标数据。
在本实施例中,外部缓存***可以为存储容量大于预设值的缓存***,或者为缓存容量可扩展的分布式缓存***,优选地,外部缓存***为缓存容量可扩展的分布式缓存***。
由于客户端的查询请求无法直接适用于外部缓存***,因此,本实施例需要将从第一查询请求提取出的目标查询参数处理成能够在外部缓存***中查询的第二查询请求。
步骤S403a:当在外部缓存***中未查询到第二查询请求时,将第二查询请求存储至外部缓存***中,并在外部缓存***中、与第二查询请求对应的目标数据的存储位置处写入目标指示信息。
其中,目标指示信息用于指示正在目标数据库中查询与第二查询请求对应的目标数据。示例性的,在与第二查询请求对应的目标数据的存储位置处写入“isRunning”。
步骤S404a:从目标数据目查询与第二查询请求对应的目标数据,并在获得与第二查询请求对应的目标数据之后,将与第二查询请求对应的目标数据的存储位置处的目标指示信息更新为与第二查询请求对应的目标数据,然后执行步骤S407。
上述步骤S403a~S404a给出了当在外部缓存***中未查询到第二查询请求时的处理过程,然而,在某些时候,还可能存在外部数据缓存***已缓存有与第二查询请求对应的目标数据的情况,此时,处理过程请参见如下步骤:
步骤S403b:当在外部缓存***中查询到第二查询请求时,判断与第二查询请求对应的目标数据的存储位置存储的是否为目标指示信息,当与第二查询请求对应的目标数据的存储位置存储的是目标指示信息时,执行步骤S404b,否则,直接执行步骤S405b。
步骤S404b:等待,直至目标指示信息更新为与第二查询请求对应的目标数据,然后执行步骤S405b。
步骤S405b:判断与第二查询请求对应的目标数据在外部缓存***中缓存的时间是否晚于在目标数据库的最新更新时间,当与第二查询请求对应的目标数据在外部缓存***中缓存的时间晚于在目标数据库的最新更新时间时,执行步骤S406b-a,当与第二查询请求对应的目标数据在外部缓存***中缓存的时间早于在目标数据库的最新更新时间时,执行步骤S406b-b。
需要说明的是,目标数据库中的目标数据进行更新时,会自动记录数据的最新更新时间,因此,从目标数据库中可获得目标数据的最新更新时间,外部缓存***中的目标数据进行缓存时也会自动记录缓存时间,目标数据的缓存时间与第二查询请求关联,基于第二查询请求可从外部缓存***中获得目标数据的缓存时间。
可以理解的是,如果目标数据在外部缓存***中的缓存时间如果晚于目标数据在目标数据库中的最新更新时间,表明目标数据缓存至外部缓存***中之后,该目标数据在目标数据库并未进行更新,外部缓存***中缓存的数据为最新数据。反之,如果目标数据在外部缓存***中的缓存时间早于目标数据在目标数据库中的最新更新时间,表明目标数据缓存至外部缓存***中之后,该目标数据在目标数据库进行了更新,即外部缓存***中缓存的该目标数据已过期。
步骤S406b-a:从外部缓存***中获取与第二查询请求对应的目标数据,然后执行步骤S407。
步骤S406b-b:从外部缓存***中清除与第二查询请求对应的目标数据,重新从目标数据库中查询与第二查询请求对应的目标数据,将重新查询的目标数据存储至外部缓存***中,然后执行步骤S407(需要说明的是,此时反馈给客户端的目标数据为重新查询得到的目标数据)。
步骤S407:将与第二查询请求对应的目标数据反馈给客户端。
需要说明的是,在本发明实施例中,当在外部缓存***中未查询到第二查询请求时,将第二查询请求存储至外部缓存***中,并在外部缓存***中、与第二查询请求对应的目标数据的存储位置处写入目标指示信息,以指示正在查询与第二查询请求对应的目标数据,需要说明的是,在另一种可能的实现方式中,在将第二查询请求存储至外部缓存***之后,也可在与第二查询请求对应的目标数据的存储位置处不写入任何信息,外部缓存***中存储了第二查询请求,但第二查询请求对应的存储位置为空,表明正在查询与第二查询请求对应的目标数据,当查询到与第二查询请求对应的目标数据之后,直接将该目标数据存储至与第二查询请求对应的存储位置处。
相应的,当外部缓存***中查询到第二查询请求时,判断与第二查询请求对应的目标数据的存储位置存储的是否为空,如果与第二查询请求对应的目标数据的存储位置为空,则表明正在获取与第二查询请求对应的目标数据,则轮询等待,直至与第二查询请求对应的目标数据的存储位置存储有与第二查询请求对应的目标数据。
本发明实施例提供的数据处理方法,在接收到客户端的第一查询请求时,首先将第一查询请求处理成可在外部缓存***中进行查询的第二查询请求,并基于第二查询请求进行查询,如果在外部缓存***中未查询到第二查询请求,表明外部缓存***中未缓存有与第二查询请求对应的目标数据,此时,从目标数据库中查询与第二查询请求对应的目标数据,并将该目标数据缓存在外部缓存***中,如果在外部缓存***中查询到第二查询请求时,表明外部缓存***中正在缓存或已缓存有与第二查询请求对应的目标数据,此时可以从外部缓存***中获取该目标数据,为了能够向客户端反馈与第二查询请求对应的最新目标数据,本发明实施例会判断与第二查询请求对应的目标数据在外部缓存***中缓存的时间是否晚于在目标数据库的最新更新时间,如果是,则从外部缓存中获取与第二查询请求对应的目标数据并反馈给客户端,否则,表明外部缓存***中缓存的目标数据已过期,此时将其清除,重新从目标数据库中获取与第二查询请求对应的目标数据进行缓存,并将重新获取的目标数据反馈给客户端。由此可见,本发明实施例提供的数据处理方法使得查询服务器不再将目标数据缓存在本机的内存中,而是将第二查询请求以及对应的目标数据对应缓存在外部缓存***,由于外部缓存的缓存容量通常较大或者可扩展,因此,其能够实现对所有查询结果的缓存,解决了现有技术中将目标数据缓存在本地的内存所带来的局限。另外,由于数据查询***中的查询服务器均与外部缓存***连接,即各个查询服务器共享外部缓存***,这使得只要外部缓存***中缓存有与查询请求对应的目标数据,任何一个查询服务器均能较快的向客户端反馈与查询请求对应的目标数据,且避免了不必要的资源浪费。再者,本发明实施例提供的数据处理方法能够自动清除外部缓存***中的过期数据,并重新从目标数据库中获取当前最新数据进行缓存,并将重新获取的最新数据反馈给客户端,这样,一方面实现了过期数据的自动清除,另一方面保证了当客户端请求数据时,能够向其反馈当前最新的数据。
在上述本发明实施例提供的数据处理方法的基础上,现列举一具体实例进行说明:
假设数据查询***为kylin查询***,外部缓存***为Redis分布式缓存***,Redis分布式缓存***以key/value存储结构缓存数据,kylin查询***中包括多个查询服务器,各个查询服务器均设置有连接Redis分布式缓存***的接口,各个查询服务器通过该接口均与Redis分布式缓存***连接:
(1)由于Redis分布式缓存***的存储结构为key/value型,而kylin查询***中客户端发送的查询请求并不能直接应用于对Redis分布式缓存***中缓存数据的查询,基于此,查询服务器需要先将来自客户端的第一查询请求处理成可在Redis分布式缓存***中查询的第二查询请求,将第二查询请求存储在key/value存储结构中的key中,而value中存储与第二查询请求对应的目标数据。
具体的,在接收到来自客户端的第一查询请求时:
首先,从第一查询请求中提取目标查询参数sql、offset、limit、acceptPartial和project,其中,sql为查询的sql语句,offset为sql中相对记录首行的偏移量,limit为限制记录条数,acceptPartial为是否允许分块,project为此查询的范围在哪个project中。
然后,为了使目标查询参数能够统一存储到Redis的key中,并使这个key唯一标识这个查询,达到相同的查询对应到同一个key从而查找到该key对应的同一value值目的,同时,考虑到json可以很方便的表达出属性和值的对应关系,并且还能够以统一字符串的形式被存储于Redis的key中,本实施例可采用json的形式将所有目标查询参数组合到一起,并对所有的目标查询参数按照sql、offset、limit、acceptPartia、project的顺序排列并存储,这样既能保证同一个查询的请求对应的redis缓存的value值是相同的,又能保证其是唯一的,json的具体结构如下:
{"sql":SqlStr,"offset":OffsetNum,"limit":LimitNum,
"acceptPartial":FTFlag,"project":ProjectName}
其中,SqlStr对应第一查询请求中的sql参数;OffsetNum对应第一查询请求中的offset参数;LimitNum对应第一查询请求中的limit参数;FTFlag对应第一查询请求中的acceptPartial参数;ProjectName对应第一查询请求中的project参数。
需要说明的是,在处理第一查询请求的过程中,为了保证查询请求的唯一性,需要对SqlStr进行标准化,去除多余的空格,示例性的,SqlStr参数“select a from table”和“select a from table”对应的查询结果实质上是一致的,如果不对其进行标准化,会导致Redis分布式缓存***中存储两个相同的查询请求,这样会导致重复查询,为了避免上述情况的发生,要去除SqlStr参数中多余的空格,避免将意义完全相同的两个查询变成两个缓存记录,以提高缓存利用率和查询效率。
(2)在将第一查询请求处理成第二查询请求(即json查询串)之后,查询Redis分布式缓存***中的key,如果在各个key未查询到第二查询请求,则转入步骤(3),否则,转入步骤(4)。
(3)将第二查询请求添加至key中,该key对应的value暂时赋值为“isRunning”,表明正在查询与key中的第二查询请求对应的目标数据,在目标数据库(如hbase)中查询与第二查询请求对应目标数据,并在查询到该目标数据之后,将与key对应的value中的“isRunning”更新为该目标数据,将该目标数据反馈给客户端。
(4)将存储有第二查询请求的key作为目标key,判断目标key对应的value值是否为“isRunning”,如果否,表明Redis分布式缓存***中当前已缓存有与第二查询请求对应的目标数据,此时直接转入步骤(5),如果是,则轮询等待,直至目标key对应的value值不再为“isRunning”而是更新为查询结果,然后转到步骤(5)。
(5)判断与目标key中的第二查询请求对应的目标数据是否过期,具体的:从目标数据库获取目标数据的最新更新时间,并从Redis分布式缓存***中获取目标数据的缓存时间,判断目标数据的缓存时间是否晚于目标数据的最新更新时间:
如果目标数据的缓存时间晚于目标数据的最新更新时间,则表明目标数据缓存至Redis分布式缓存***中之后,该目标数据在目标数据库并未进行更新,Redis分布式缓存***中缓存的数据为最新数据,此时,从目标key对应的value中获取目标数据反馈给客户端;
如果目标数据的缓存时间早于目标数据的最新更新时间,表明目标数据缓存至Redis分布式缓存***中之后,该目标数据在目标数据库进行了更新,即Redis分布式缓存***中缓存的该目标数据已过期,此时,将该目标数据从Redis分布式缓存***中清除,即将目标key对应的value值清除,重新从目标数据库中获取与第二查询请求对应的目标数据,然后将重新获取的目标数据存储至目标key对应的value中,并将该重新获取的目标数据反馈给客户端。
与上述数据处理方法相对应,本发明实施例还提供了一种数据处理装置,该数据处理装置应用于数据查询***中的查询服务器,查询服务器设置有连接外部缓存***的接口,并通过接口与外部缓存***连接,外部缓存***用于缓存查询请求和与查询请求对应的目标数据,请参阅图5,示出了该数据处理装置的一结构示意图,可以包括:提取模块501、处理模块502、第一查询模块503、第一存储模块504、第二查询模块505和第二存储模块506。其中:
提取模块501,用于当接收到来自客户端的第一查询请求时,从第一查询请求中提取目标查询参数。
处理模块502,用于将提取模块501提取的目标查询参数按预设规则处理成第二查询请求。
第一查询模块503,用于在外部缓存***中查询处理模块502处理得到的第二查询请求。
需要说明的是,上述提及的外部缓存***缓存的查询请求为第二查询请求,与查询请求对应的目标数据为与第二查询请求对应的目标数据。
在本实施例中,外部缓存***可以为存储容量大于预设值的缓存***,或者为缓存容量可扩展的分布式缓存***,优选地,外部缓存***为缓存容量可扩展的分布式缓存***。
第一存储模块504,用于当第一查询模块503在外部缓存***中未查询到第二查询请求时,将第二查询请求存储至外部缓存***中。
第二查询模块505,用于从目标数据库中查询与第二查询请求对应的目标数据。
第二存储模块506,用于将第二查询模块505查询的与第二查询请求对应的目标数据与第二查询请求对应存储在外部缓存***中。
本发明实施例提供的数据处理装置,使得查询服务器不再将目标数据缓存在本机的内存中,而是将第二查询请求以及对应的目标数据对应缓存在外部缓存***,由于外部缓存的缓存容量通常较大或者可扩展,因此,其能够实现对所有查询结果的缓存,解决了现有技术中将目标数据缓存在本地的内存所带来的局限。另外,由于数据查询***中的查询服务器均与外部缓存***连接,即各个查询服务器共享外部缓存***,这使得只要外部缓存***中缓存有与查询请求对应的目标数据,任何一个查询服务器均能较快的向客户端反馈与查询请求对应的目标数据,且避免了不必要的资源浪费。
上述实施例提供的数据处理装置还可以包括:获取模块和反馈模块。
第一获取模块,用于当在外部缓存***中查询到第二查询请求时,在外部缓存***中获取与第二查询请求对应的目标数据。
反馈模块,用于将与第二查询请求对应的目标数据反馈给客户端。
上述实施例提供的数据处理装置还可以包括:第一判断模块。
第一判断模块,用于判断与第二查询请求对应的目标数据在外部缓存***中缓存的时间是否晚于在目标数据库的最新更新时间。
获取模块,具体用于当与第二查询请求对应的目标数据在外部缓存***中缓存的时间晚于在目标数据库的最新更新时间时,从外部缓存***中获取与第二查询请求对应的目标数据。
上述实施例提供的数据处理装置还可以包括:数据清除模块和第三查询模块。
数据清除模块,用于当与第二查询请求对应的目标数据在外部缓存***中缓存的时间早于在目标数据库的最新更新时间时,从外部缓存***中清除与第二查询请求对应的目标数据。
第三查询模块,用于从目标数据库中重新查询与第二查询请求对应的目标数据,并将重新查询到的目标数据与第二查询请求对应存储至外部缓存***中。
上述实施例提供的数据处理装置还可以包括:第三存储模块。
第三存储模块,用于在外部缓存***中,与第二查询请求对应的目标数据的存储位置处写入目标指示信息,其中,目标指示信息用于指示正在查询与第二查询请求对应的目标数据。
则第二存储模块,具体用于在获得与第二查询请求对应的目标数据之后,将与第二查询请求对应的目标数据的存储位置处的目标指示信息更新为与第二查询请求对应的目标数据。
上述实施例提供的数据处理装置还可以包括:第二判断模块。
第二判断模块,用于判断与第二查询请求对应的目标数据的存储位置存储的是否为目标指示信息。
则第一判断模块,具体用于当与第二查询请求对应的目标数据的存储位置存储的是目标指示信息时,等待,直至目标指示信息更新为与第二查询请求对应的目标数据,判断与第二查询请求对应的目标数据在外部缓存***中缓存的时间是否晚于在目标数据库的最新更新时间;当与第二查询请求对应的目标数据的存储位置存储的不是目标指示信息时,判断与第二查询请求对应的目标数据在外部缓存***中缓存的时间是否晚于在目标数据库的最新更新时间。
本发明实施例还提供了一种数据查询***,请参阅图6,示出了该数据查询***的一结构示意图,可以包括:查询服务器601和外部存储***602,查询服务器601设置有连接外部缓存***602的接口,查询服务器通过接口与外部缓存***602连接。需要说明的是,查询服务器601可以为一个也可以为多个,图6示出的仅为一示例。
外部缓存***602,用于缓存查询请求和与查询请求对应的目标数据。
在本实施例中,外部缓存***可以为存储容量大于预设值的缓存***,或者为缓存容量可扩展的分布式缓存***,优选地,外部缓存***为缓存容量可扩展的分布式缓存***。
查询服务器601,用于当接收到来自客户端的第一查询请求时,从第一查询请求中提取目标查询参数;将目标查询参数按预设规则处理成第二查询请求,并在外部缓存***中查询第二查询请求;当在外部缓存***中未查询到第二查询请求时,将第二查询请求存储至外部缓存***中,并从目标数据库(图6中示出的数据服务器)中查询与第二查询请求对应的目标数据;将与第二查询请求对应的目标数据与第二查询请求对应存储在外部缓存***中。
本发明实施例提供的数据查询***还可以包括负载均衡器603和客户端端。其中负载均衡器603用于均衡来自客户端的第一查询请求,将第一查询请求发送给查询服务器601。
本发明提供的数据查询***中,查询服务器不再将目标数据缓存在本机的内存中,而是将第二查询请求以及对应的目标数据对应缓存在外部缓存***,由于外部缓存的缓存容量通常较大或者可扩展,因此,其能够实现对所有查询结果的缓存,解决了现有技术中将目标数据缓存在本地的内存所带来的局限。另外,由于数据查询***中的查询服务器均与外部缓存***连接,即各个查询服务器共享外部缓存***,这使得只要外部缓存***中缓存有与查询请求对应的目标数据,任何一个查询服务器均能较快的向客户端反馈与查询请求对应的目标数据,且避免了不必要的资源浪费。
上述实施例提供的数据查询***中,查询服务器,还用于当在外部缓存***中查询到第二查询请求时,在外部缓存***中获取与第二查询请求对应的目标数据,并将与第二查询请求对应的目标数据反馈给客户端。
上述实施例提供的数据查询***中,查询服务器,还用于判断与第二查询请求对应的目标数据在外部缓存***中缓存的时间是否晚于在目标数据库的最新更新时间。当与第二查询请求对应的目标数据在所述外部缓存***中缓存的时间晚于在所述目标数据库的最新更新时间时,查询服务器从外部缓存***中获取与第二查询请求对应的目标数据;当与第二查询请求对应的目标数据在外部缓存***中缓存的时间早于在目标数据库的最新更新时间时,查询服务器从外部缓存***中清除与第二查询请求对应的目标数据,从目标数据库中重新查询与第二查询请求对应的目标数据,并将重新查询到的目标数据与第二查询请求对应存储至外部缓存***中。
上述实施例提供的数据查询***中,查询服务器,还用于在将第二查询请求存储至外部缓存***中之后,在与查询请求对应的目标数据的存储位置处写入目标指示信息,其中,目标指示信息用于指示正在查询与第二查询请求对应的目标数据,在获得与第二查询请求对应的目标数据之后,将与第二查询请求对应的目标数据的存储位置处的目标指示信息更新为与第二查询请求对应的目标数据。
上述实施例提供的数据查询***中,查询服务器,还用于判断与第二查询请求对应的目标数据的存储位置存储的是否为目标指示信息,当与第二查询请求对应的目标数据的存储位置存储的是所述目标指示信息时,等待,直至目标指示信息更新为与第二查询请求对应的目标数据,判断与所述第二查询请求对应的目标数据在外部缓存***中缓存的时间是否晚于在目标数据库的最新更新时间;当与第二查询请求对应的目标数据的存储位置存储的不是目标指示信息时,判断与第二查询请求对应的目标数据在外部缓存***中缓存的时间是否晚于在目标数据库的最新更新时间。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种数据处理方法,其特征在于,应用于数据查询***中的查询服务器,所述查询服务器设置有连接外部缓存***的接口,并通过所述接口与所述外部缓存***连接,所述外部缓存***用于缓存查询请求和与所述查询请求对应的目标数据;
所述数据处理方法包括:
当接收到来自客户端的第一查询请求时,从所述第一查询请求中提取目标查询参数;
将所述目标查询参数按预设规则处理成第二查询请求,并在所述外部缓存***中查询所述第二查询请求;
当在所述外部缓存***中未查询到所述第二查询请求时,将所述第二查询请求存储至所述外部缓存***中,并从目标数据库中查询与所述第二查询请求对应的目标数据;
将与所述第二查询请求对应的目标数据与所述第二查询请求对应存储在所述外部缓存***中。
2.根据权利要求1所述的数据处理方法,其特征在于,所述数据处理方法还包括:
当在所述外部缓存***中查询到所述第二查询请求时,在所述外部缓存***中获取与所述第二查询请求对应的目标数据;
将与所述第二查询请求对应的目标数据反馈给所述客户端。
3.根据权利要求2所述的数据处理方法,其特征在于,在所述外部缓存***中获取与所述第二查询请求对应的目标数据之前,所述数据处理方法还包括:
判断与所述第二查询请求对应的目标数据在所述外部缓存***中缓存的时间是否晚于在所述目标数据库的最新更新时间;
当与所述第二查询请求对应的目标数据在所述外部缓存***中缓存的时间晚于在所述目标数据库的最新更新时间时,执行所述从所述外部缓存***中获取与所述第二查询请求对应的目标数据。
4.根据权利要求3所述的数据处理方法,其特征在于,所述数据处理方法还包括:
当与所述第二查询请求对应的目标数据在所述外部缓存***中缓存的时间早于在所述目标数据库的最新更新时间时,从所述外部缓存***中清除与所述第二查询请求对应的目标数据;
从所述目标数据库中重新查询与所述第二查询请求对应的目标数据,并将重新查询到的目标数据与所述第二查询请求对应存储至所述外部缓存***中。
5.根据权利要求3或4所述的数据处理方法,其特征在于,在将所述第二查询请求存储至所述外部缓存***之后,所述数据处理方法还包括:
在所述外部缓存***中,与所述第二查询请求对应的目标数据的存储位置处写入目标指示信息,所述目标指示信息用于指示正在查询与所述第二查询请求对应的目标数据;
所述将与所述第二查询请求对应的目标数据与所述第二查询请求对应存储在所述外部缓存***中,包括:
在从目标数据库中获得与所述第二查询请求对应的目标数据之后,将与所述第二查询请求对应的目标数据的存储位置处的所述目标指示信息更新为与所述第二查询请求对应的目标数据。
6.根据权利要求5所述的数据处理方法,其特征在于,所述数据处理方法还包括:
判断与所述第二查询请求对应的目标数据的存储位置存储的是否为所述目标指示信息;
当与所述第二查询请求对应的目标数据的存储位置存储的是所述目标指示信息时,等待,直至所述目标指示信息更新为与所述第二查询请求对应的目标数据,执行所述判断与所述第二查询请求对应的目标数据在所述外部缓存***中缓存的时间是否晚于在所述目标数据库的最新更新时间;
当与所述第二查询请求对应的目标数据的存储位置存储的不是所述目标指示信息时,执行所述判断与所述第二查询请求对应的目标数据在所述外部缓存***中缓存的时间是否晚于在所述目标数据库的最新更新时间。
7.一种数据处理装置,其特征在于,应用于数据查询***中的查询服务器,所述查询服务器设置有连接外部缓存***的接口,并通过所述接口与所述外部缓存***连接,所述外部缓存***用于缓存查询请求和与所述查询请求对应的目标数据;
所述数据处理装置包括:提取模块、处理模块、第一查询模块、第一存储模块、第二查询模块和第二存储模块;
所述提取模块,用于当接收到来自客户端的第一查询请求时,从所述第一查询请求中提取目标查询参数;
所述处理模块,用于将所述提取模块提取的所述目标查询参数按预设规则处理成第二查询请求;
所述第一查询模块,用于在所述外部缓存***中查询所述处理模块处理得到的所述第二查询请求;
所述第一存储模块,用于当所述第一查询模块在所述外部缓存***中未查询到所述第二查询请求时,将所述第二查询请求存储至所述外部缓存***中;
所述第二查询模块,用于从目标数据库中查询与所述第二查询请求对应的目标数据;
所述第二存储模块,用于将所述第二查询模块查询的与所述第二查询请求对应的目标数据与所述第二查询请求对应存储在所述外部缓存***中。
8.一种数据查询***,其特征在于,包括:查询服务器和外部存储***,所述查询服务器设置有连接外部缓存***的接口,所述查询服务器通过所述接口与所述外部缓存***连接;
所述外部缓存***,用于缓存查询请求和与所述查询请求对应的目标数据;
所述查询服务器,用于当接收到来自客户端的第一查询请求时,从所述第一查询请求中提取目标查询参数;将所述目标查询参数按预设规则处理成第二查询请求,并在所述外部缓存***中查询所述第二查询请求;当在所述外部缓存***中未查询到所述第二查询请求时,将所述第二查询请求存储至所述外部缓存***中,并从目标数据库中查询与所述第二查询请求对应的目标数据;将与所述第二查询请求对应的目标数据与所述第二查询请求对应存储在所述外部缓存***中。
9.根据权利要求8所述的数据查询***,其特征在于,所述查询服务器,还用于当在所述外部缓存***中查询到所述第二查询请求时,在所述外部缓存***中获取与所述第二查询请求对应的目标数据,并将与所述第二查询请求对应的目标数据反馈给所述客户端。
10.根据权利要求9所述的数据查询***,其特征在于,所述查询服务器,还用于判断与所述第二查询请求对应的目标数据在所述外部缓存***中缓存的时间是否晚于在所述目标数据库的最新更新时间;当与所述第二查询请求对应的目标数据在所述外部缓存***中缓存的时间早于在所述目标数据库的最新更新时间时,从所述外部缓存***中清除与所述第二查询请求对应的目标数据,从所述目标数据库中重新查询与所述第二查询请求对应的目标数据,并将重新查询到的目标数据与所述第二查询请求对应存储至所述外部缓存***中。
CN201611147798.8A 2016-12-13 2016-12-13 一种数据处理方法、装置及数据查询*** Pending CN106777085A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611147798.8A CN106777085A (zh) 2016-12-13 2016-12-13 一种数据处理方法、装置及数据查询***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611147798.8A CN106777085A (zh) 2016-12-13 2016-12-13 一种数据处理方法、装置及数据查询***

Publications (1)

Publication Number Publication Date
CN106777085A true CN106777085A (zh) 2017-05-31

Family

ID=58880876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611147798.8A Pending CN106777085A (zh) 2016-12-13 2016-12-13 一种数据处理方法、装置及数据查询***

Country Status (1)

Country Link
CN (1) CN106777085A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107154984A (zh) * 2017-07-03 2017-09-12 罗征 新型线上门店Saas***的分布式控制方法
CN107562803A (zh) * 2017-08-08 2018-01-09 上海数据交易中心有限公司 数据供应***及方法、终端
CN108459914A (zh) * 2017-12-26 2018-08-28 深圳神州数码云科数据技术有限公司 一种中间件命令执行方法及装置
CN109446448A (zh) * 2018-09-10 2019-03-08 平安科技(深圳)有限公司 数据处理方法和***
CN109597915A (zh) * 2018-09-18 2019-04-09 北京微播视界科技有限公司 访问请求处理方法和装置
CN110807040A (zh) * 2019-10-30 2020-02-18 北京达佳互联信息技术有限公司 管理数据的方法、装置、设备及存储介质
CN112187908A (zh) * 2020-09-23 2021-01-05 易小博(武汉)科技有限公司 一种数据处理方法、***和接口服务平台

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101576918A (zh) * 2009-06-19 2009-11-11 用友软件股份有限公司 具备负载均衡功能的数据缓存***
CN101765096A (zh) * 2008-12-26 2010-06-30 中兴通讯股份有限公司 定购关系查询方法、装置和***
CN102117309A (zh) * 2010-01-06 2011-07-06 卓望数码技术(深圳)有限公司 一种数据缓存***和数据查询方法
CN102902730A (zh) * 2012-09-10 2013-01-30 新浪网技术(中国)有限公司 基于数据缓存的读数据方法及装置
CN105183394A (zh) * 2015-09-21 2015-12-23 北京奇虎科技有限公司 一种数据存储处理方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101765096A (zh) * 2008-12-26 2010-06-30 中兴通讯股份有限公司 定购关系查询方法、装置和***
CN101576918A (zh) * 2009-06-19 2009-11-11 用友软件股份有限公司 具备负载均衡功能的数据缓存***
CN102117309A (zh) * 2010-01-06 2011-07-06 卓望数码技术(深圳)有限公司 一种数据缓存***和数据查询方法
CN102902730A (zh) * 2012-09-10 2013-01-30 新浪网技术(中国)有限公司 基于数据缓存的读数据方法及装置
CN105183394A (zh) * 2015-09-21 2015-12-23 北京奇虎科技有限公司 一种数据存储处理方法和装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107154984A (zh) * 2017-07-03 2017-09-12 罗征 新型线上门店Saas***的分布式控制方法
CN107562803A (zh) * 2017-08-08 2018-01-09 上海数据交易中心有限公司 数据供应***及方法、终端
CN108459914A (zh) * 2017-12-26 2018-08-28 深圳神州数码云科数据技术有限公司 一种中间件命令执行方法及装置
CN108459914B (zh) * 2017-12-26 2021-01-01 深圳神州数码云科数据技术有限公司 一种中间件命令执行方法及装置
CN109446448A (zh) * 2018-09-10 2019-03-08 平安科技(深圳)有限公司 数据处理方法和***
CN109597915A (zh) * 2018-09-18 2019-04-09 北京微播视界科技有限公司 访问请求处理方法和装置
CN109597915B (zh) * 2018-09-18 2022-03-01 北京微播视界科技有限公司 访问请求处理方法和装置
CN110807040A (zh) * 2019-10-30 2020-02-18 北京达佳互联信息技术有限公司 管理数据的方法、装置、设备及存储介质
CN112187908A (zh) * 2020-09-23 2021-01-05 易小博(武汉)科技有限公司 一种数据处理方法、***和接口服务平台

Similar Documents

Publication Publication Date Title
CN106777085A (zh) 一种数据处理方法、装置及数据查询***
US11520770B2 (en) System and method for providing high availability data
US20160212206A1 (en) Deterministic database system and data transferring method thereof
US7831772B2 (en) System and methodology providing multiple heterogeneous buffer caches
CN109977129A (zh) 多级数据缓存方法及设备
WO2017219848A1 (zh) 分布式数据库中id的处理方法、管理***及服务器
CN105426321B (zh) 采用远程位置信息的rdma友好缓存方法
CN105701219B (zh) 一种分布式缓存的实现方法
CN107577678A (zh) 处理数据库事务的方法、客户端和服务器
CN104133783B (zh) 处理分散式缓存数据的方法和装置
CN104537013B (zh) 一种处理数据的方法和装置
CN105677580A (zh) 访问缓存的方法和装置
CN100437590C (zh) 预取对象的方法
CN101094129A (zh) 一种域名访问方法及客户端
CN108111325B (zh) 一种资源分配方法及装置
CN106095533A (zh) 服务器扩容方法及装置
CN110069419A (zh) 多级缓存***及其访问控制方法、设备和存储介质
US20150142845A1 (en) Smart database caching
CN106021468A (zh) 分布式缓存和本地缓存的更新方法和***
CN112000287A (zh) 一种io请求处理装置、方法、设备及可读存储介质
CN107483631A (zh) 一种采用配置文件控制缓存实现移动互联网络服务访问的***及方法
CN108780458A (zh) 一种页面缓存处理方法、装置和服务器
WO2020214757A1 (en) Virtual memory pool within a network which is accessible from multiple platforms
CN106649150A (zh) 一种缓存管理方法及装置
CN105320676A (zh) 一种客户数据查询服务方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170531