CN111046061A - 数据查询方法、装置、系统、设备及存储介质 - Google Patents
数据查询方法、装置、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN111046061A CN111046061A CN201911290805.3A CN201911290805A CN111046061A CN 111046061 A CN111046061 A CN 111046061A CN 201911290805 A CN201911290805 A CN 201911290805A CN 111046061 A CN111046061 A CN 111046061A
- Authority
- CN
- China
- Prior art keywords
- data query
- query request
- request
- data
- identification number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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/242—Query formulation
- G06F16/2433—Query languages
-
- 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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种数据查询方法、装置、系统、设备及存储介质。该方法包括:基于第一连接,获取客户端输入的第一数据查询请求;为第一数据查询请求分配唯一的标识号;将标识号返回至客户端,并通知客户端中断第一连接;将第一数据查询请求加入至查询队列中;从查询队列中获取第二数据查询请求;基于至少一条第二连接,将第二数据查询请求及其对应的标识号,发送给对应的至少一个第一云网络;以及接收至少一个第一云网络返回的请求确认,并中断至少一条第二连接。该方法能够提升数据查询的稳定性。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种数据查询方法、装置、系统、设备及存储介质。
背景技术
在医疗技术高速发展的今天,医疗数据是海量的且极其复杂,想从不同的私有云获取医疗数据进行数据调研或者机器学习训练是非常困难的。相关技术中是通过SQL(Structured Query Language,结构化查询语言)去查询,由于数据量巨大且复杂,会耗费大量的计算资源,且用户需要等待很长时间才能得到查询结果;另外,由于公有云与私有云环境的不稳定性,会经常导致查询失败。
在所述背景技术部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明提供一种数据查询方法、装置、系统、设备及存储介质,能够提升数据查询的稳定性。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明的一方面,提供一种数据查询方法,包括:基于第一连接,获取客户端输入的第一数据查询请求;为所述第一数据查询请求分配唯一的标识号;将所述标识号返回至所述客户端,并通知所述客户端中断所述第一连接;将所述第一数据查询请求加入至查询队列中;从所述查询队列中获取第二数据查询请求;基于至少一条第二连接,将所述第二数据查询请求及其对应的标识号,发送给对应的至少一个第一云网络;以及接收所述至少一个第一云网络返回的请求确认,并中断所述至少一条第二连接。
根据本发明的一实施方式,将所述第一数据查询请求加入至查询队列中之前,所述方法还包括:判断缓存中是否存储有所述第一数据查询请求对应的数据查询结果;以及当所述缓存中没有存储所述第一数据查询请求对应的数据查询结果时,将所述第一数据查询信息请求加入至所述查询队列中。
根据本发明的一实施方式,判断缓存中是否存储有所述第一数据查询请求对应的数据查询结果包括:判断缓存中存储的数据查询结果对应的数据查询请求与所述第一数据查询请求是否完全一致;当存储的所述数据查询请求与所述第一数据查询请求完全一致时,判断缓存中是否存储有所述第一数据查询请求对应的数据查询结果;当存储的所述数据查询请求与所述第一数据查询请求不完全一致时,判断存储的所述数据查询请求中的限制条件中的数量是否大于所述第一数据查询请求中的限制条件中的数量;以及当存储的所述数据查询请求中的限制条件中的数量大于所述第一数据查询请求中的限制条件中的数量时,判断缓存中是否存储有所述第一数据查询请求对应的数据查询结果。
根据本发明的一实施方式,上述方法还包括:接收所述至少一个第一云网络发送的数据查询结果及其对应的标识号;以及将所述数据查询结果及其对应的标识号加入缓存中。
根据本发明的一实施方式,上述方法还包括:接收客户端发送的数据结果查询请求,所述数据结果查询请求包括:所述第一数据查询请求对应的标识号;基于所述标识号,在所述缓存中查找所述第一数据查询请求对应的数据查询结果;以及当在所述缓存中查找到所述第一数据查询请求对应的数据查询结果时,将所述数据查询结果返回给所述客户端。
根据本发明的一实施方式,接收客户端发送的数据结果查询请求包括:周期地接收客户端发送的数据结果查询请求。
根据本发明的一实施方式,将所述第二数据查询请求及其对应的标识号,发送给对应的至少一个第一云网络包括:当发送所述第二数据查询请求失败时,将所述第二数据查询请求加入至所述查询队列的队首位置,以重新发送所述第二数据查询请求;当所述第二数据查询请求发送的次数超过预设次数时,记录所述第二数据查询请求发送失败。
根据本发明的一实施方式,所述第一云网络为私有云网络。
根据本发明的另一方面,提供一种数据查询装置,包括:第一请求获取模块,用于基于第一连接,获取客户端输入的第一数据查询请求;标识号分配模块,用于为所述第一数据查询请求分配唯一的标识号;标识号返回模块,用于将所述标识号返回至所述客户端,并通知所述客户端中断所述第一连接;第一请求加入模块,用于将所述第一数据查询请求加入至查询队列中;第二请求获取模块,用于从所述查询队列中获取第二数据查询请求;第二请求发送模块,用于基于至少一条第二连接,将所述第二数据查询请求及其对应的标识号,发送给对应的至少一个第一云网络;以及确认接收模块,用于接收所述至少一个第一云网络返回的请求确认,并中断所述至少一条第二连接。
根据本发明的再一方面,提供一种基于云的数据查询系统,包括:上述数据查询装置;客户端,用于基于第一连接向所述数据查询装置发送第一数据查询请求,并当收到对应所述第一数据查询请求对应的标识号时,中断所述第一连接;以及至少一个第一云网络,用于基于至少一条第二连接,接收第二数据查询请求及其对应的标识号,并在返回所述第二数据查询请求的请求确认后,中断所述至少一条第二连接。
根据本发明的一实施方式,所述至少一个第一云网络还用于基于所述第二数据查询请求进行数据查询,并获得数据查询结果;将所述第二数据查询请求的所述数据查询结果及对应的标识号,发送至所述数据查询装置。
根据本发明的一实施方式,所述客户端还用于向所述数据查询装置发送数据结果查询请求,所述数据结果查询请求包括:所述第一数据查询请求对应的标识号;及接收所述第一数据查询请求对应的数据查询结果。
根据本发明的再一方面,提供一种电子设备,包括:存储器、处理器及存储在所述存储器中并可在所述处理器中运行的可执行指令,所述处理器执行所述可执行指令时实现如上述任一种方法。
根据本发明的再一方面,提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述可执行指令被处理器执行时实现如上述任一种方法。
根据本发明提供的数据查询方法,在客户端1与云网络2之间及云网络2与云网络3之间均采用异步通信方式,一方面可以避免在数据查询过程中,对已建立连接资源的持续占用;另一方面还可以避免该连接在长期等待过程中因异常中断,而导致无法再通过该连接返回查询结果的问题,提升了数据查询的稳定性。此外,该方法能够部分的向用户返回数据查询结果,从而节省了用户在数据查询过程中的等待时间。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
通过参照附图详细描述其示例实施例,本发明的上述和其它目标、特征及优点将变得更加显而易见。
图1是根据一示例性实施方式示出的一种基于云的数据查询系统的示意图。
图2是根据一示例性实施方式示出的一种数据查询方法的流程图。
图3是根据一示例性实施方式示出的一种数据查询方法的流程图。
图4是根据一示例性实施方式示出的另一种数据查询方法的流程图。
图5是根据一示例性实施方式示出的另一种数据查询方法的流程图。
图6是根据一示例性实施方式示出的另一种数据查询方法的流程图。
图7是根据一示例性实施方式示出的另一种数据查询方法的流程图。
图8是根据一示例性实施方式示出的另一种数据查询方法的流程图。
图9是根据一示例性实施方式示出的一种数据查询装置的框图。
图10是根据一示例性实施方式示出的一种电子设备的结构示意图。
图11是根据一示例性实施方式示出的一种计算机可读存储介质的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本发明的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现或者操作以避免喧宾夺主而使得本发明的各方面变得模糊。
此外,在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
如上述,在相关技术中,客户端向公有云发送数据查询请求后会一直等待数据查询结果的返回,由此可能导致对已建立的连接资源的持续占用和连接异常中断的问题;公有云向私有云发送数据查询请求时,由于公有云和私有云网络的不稳定,可能导致发送成功率较低;私有云进行数据查询需要一定时间,由于公有云和私有云一直保持连接,可能导致连接超时,无法再通过该连接返回数据查询结果的问题。
下面具体说明本发明提供的数据查询方法、装置、系统及相关设备。
图1是根据一示例性实施方式示出的一种基于云的数据查询系统的示意图。
如图1所示,数据查询系统包括:客户端1、云网络2和云网络3。
其中,客户端1例如为运行诸如个人计算机等设备上的浏览器或应用软件(APP,其可以通过通信网络与云网络2连接。可选的,通信网络是有线网络或无线网络。
云网络2例如为公有云,公有云通常指第三方提供商为用户提供的能够使用的云,公有云一般可通过因特网使用,可在整个开放的公有网络中提供服务。
云网络3例如为私有云网络,其可以与云网络2通过通信网络进行连接,同样地,通信网络可以为有线网络,也可以为无线网络。
云网络3如为私有云,私有云通常是为一个公司或企业单独使用而构建的,因而可以提供对数据、安全性和服务质量的最有效控制。私有云可部署在企业数据中心的防火墙内,也可以将它们部署在一个安全的主机托管场所。私有云极大的保障了安全问题,目前有些企业已经开始构建自己的私有云,如各医疗机构等,用于存储庞大的医疗数据。
图2是根据一示例性实施方式示出的一种数据查询方法的流程图。
联合参考图1和图2,数据查询方法包括:
在步骤S1中,客户端1基于第一连接向云网络2发送第一数据查询请求。
第一数据查询请求例如为对医疗数据的查询请求。
在步骤S2中,云网络2在获取到客户端1发送的第一数据查询请求后,为第一数据查询请求分配唯一的标识号,并将标识号返回至客户端1,通知客户端1中断第一连接。
标识号例如可以是token(令牌),每条数据查询请求对应唯一的标识号。
客户端1在收到标识号后,将其与第一数据查询请求对应存储,并中断该标识号对应的第一连接。
客户端1与云网络2的异步通信方式,一方面可以避免在数据查询过程中,对该连接资源的持续占用;另一方面还可以避免该连接在长期等待过程中因异常中断,而导致无法再通过该连接返回查询结果的问题。
在步骤S3中,云网络2将第一数据查询请求加入至查询队列中,查询队列例如可以是kafka(卡夫卡)队列或者也可以为RabbitMQ队列。此外,云网络还从查询队列中获取第二数据查询请求,并基于至少一条第二连接,将第二数据查询请求及其对应的标识号,发送给对应的至少一个云网络3。
查询队列例如为先进先出的网络,云网络2将收到的第一数据查询请求放在队列的末尾,并不断从队列的队首取出第二数据查询请求,发送给相应的至少一个云网络3中。例如,该数据查询请求有可能需要从多个私有云中进行查询,则可以将该第二数据查询请求发送给多个云网络3。
为了加快对第二数据查询请求的获取,在云网络2中,例如可以启动多个进程来从查询队列中获取第二数据查询请求。
在步骤S4中,每个云网络3在接收到第二数据查询请求后,可以向云网络2返回请求确认消息,以通知云网络2中断上述的第二连接。
这样的异步通信方式,一方面可以避免在数据查询过程中,对该连接资源的持续占用;另一方面还可以避免该连接在长期等待过程中因异常中断,而导致无法再通过该连接返回查询结果的问题。
在步骤S5中,每个云网络3在接收到第二数据查询请求后,会启动查询服务,如向Presto数据查询引擎发起查询服务。并得到查询结果后,通过新建与云网络2之间的连接来将数据查询结果返回至云网络2。
数据查询结果中包括标识号,以便于云网络2可以将该查询结果与查询请求相关联。
云网络2在收到数据查询结果后可以将其存储在其缓存中,等待将其发送给客户端1。
在步骤S6中,客户端1在等待数据查询结果时,可以通过新建立的连接向云网络2发送数据结果查询请求,该请求中会携带云网络2分配的标识号,以便云网络2可以返回相应的数据查询结果。
客户端1例如可以周期地发送该数据结果查询请求。
客户端1与云网络2之间的连接例如可以为Websocket连接。WebSocket技术使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。从而可以减小云网络2向客户端1发起请求的次数,进一步节省云网络2端的资源。
在步骤S7中,云网络2在收到客户端1发送的数据结果查询请求时,如果其缓存中已经存储有部分或全部云网络3返回的数据查询结果,则云网络2会将数据查询结果发送给客户端1。
与相关技术相比,云网络2可以将存储的部分数据查询结果及时返回给客户端1。因此,客户端1在收到云网络2返回的部分或全部数据查询结果时,可以将结果展示给用户查阅,方便用户可以及时得到数据,以进行数据研究。
根据本发明实施例提供的数据查询方法,在客户端1与云网络2之间及云网络2与云网络3之间均采用异步通信方式,一方面可以避免在数据查询过程中,对已建立连接资源的持续占用;另一方面还可以避免该连接在长期等待过程中因异常中断,而导致无法再通过该连接返回查询结果的问题,提升了数据查询的稳定性。此外,该方法能够部分的向用户返回数据查询结果,从而节省了用户在数据查询过程中的等待时间。
图3是根据一示例性实施方式示出的一种数据查询方法的流程图。
如图3所示的数据查询方法10例如可以应用于图1中所示的云网络2中。数据查询方法10包括:
在步骤S102中,基于第一连接,获取客户端输入的第一数据查询请求。
用户可以通过客户端输入第一数据查询请求,客户端根据用户输入的第一数据查询请求,建立第一连接。
在步骤S104中,为第一数据查询请求分配唯一的标识号。
标识号例如可以是token(令牌),每条数据查询请求对应唯一的标识号。
在步骤S106中,将标识号返回至客户端,并通知客户端中断第一连接。
将标识号返回至客户端,客户端可以根据接收到的标识号,中断该标识号对应的第一连接。
客户端收到标识号后就中断第一连接,一方面可以避免在数据查询过程中,对该连接资源的持续占用;另一方面还可以避免该连接在长期等待过程中因异常中断,而导致无法再通过该连接返回查询结果的问题。
在步骤S108中,将第一数据查询请求加入至查询队列中。
查询队列例如可以是kafka(卡夫卡)队列或者也可以为RabbitMQ队列。
在步骤S110中,从查询队列中获取第二数据查询请求。
为了加速数据查询过程,云网络2例如可以启动多个进程,从查询队列中获取第二数据查询请求。
在步骤S112中,基于至少一条第二连接,将第二数据查询请求及其对应的标识号,发送给对应的至少一个第一云网络。
第一云网络例如为图1中的云网络3,即私有云网络。
云网络2建立至少一个第二连接,将从查询队列中获取的第二数据查询请求及其对应的标识号发送给对应的至少一个第一云网络。例如,该数据查询请求有可能需要从多个私有云中进行查询,则可以将该第二数据查询请求发送给多个第一云网络。
在步骤S114中,接收至少一个第一云网络返回的请求确认,并中断至少一条第二连接。
第一云网络接收到第二数据查询请求后,向云网络2返回请求确认;云网络2接收到该请求确定后,中断第二连接,这样的异步通信方式,一方面可以避免在数据查询过程中,对该连接资源的持续占用;另一方面还可以避免该连接在长期等待过程中因异常中断,而导致无法再通过该连接返回查询结果的问题。
根据本发明实施例提供的数据查询方法,在数据查询过程中采用异步通信方式,一方面可以避免对已建立连接资源的持续占用;另一方面还可以避免该连接在长期等待过程中因异常中断,而导致无法再通过该连接返回查询结果的问题,提升了数据查询的稳定性。
应清楚地理解,本发明描述了如何形成和使用特定示例,但本发明的原理不限于这些示例的任何细节。相反,基于本发明公开的内容的教导,这些原理能够应用于许多其它实施方式。
图4是根据一示例性实施方式示出的另一种数据查询方法的流程图。
在如图3所示的方法10中的步骤S108之前,图4所示的方法20还进一步包括以下步骤:
在步骤S202中,判断缓存中是否存储有第一数据查询请求对应的数据查询结果。
当缓存中存储有第一数据查询请求对应的数据查询结果时,可以直接将该数据查询结果返回至客户端,无需进行重新查询,这样可以节省数据查询流程和查询时间。
在步骤S204中,当缓存中没有存储第一数据查询请求对应的数据查询结果时,将第一数据查询信息请求加入至查询队列中。
当缓存中没有存储第一数据查询请求对应的数据查询结果时,将第一数据查询信息请求加入至查询队列中,以进行后续查询步骤。
方法20与方法10中相同的步骤在此不再赘述。
根据本发明实施例提供的数据查询方法,判断缓存中是否存储有第一数据查询请求对应的数据查询结果,当缓存中存储有第一数据查询请求对应的数据查询结果时,直接将该数据查询结果返回至客户端,无需进行重新查询,可以节省数据查询流程和查询时间。
图5是根据一示例性实施方式示出的另一种数据查询方法的流程图。
与图4所示的方法20不同之处在于,图5进一步提供了如何判断缓存中是否存储有第一数据查询请求对应的数据查询结果,也即图5所示的方法,进一步提供了对图4中步骤S202的实施例。
参考图5,步骤S202包括:
在步骤S2022中,判断缓存中存储的数据查询结果对应的数据查询请求与第一数据查询请求是否完全一致。
例如可以判断SQL(Structured Query Language,结构化查询语言)是否完全一致,即SQL的MD5指纹是否完全命中缓存中已经存储的数据查询结果。
在步骤S2024中,当存储的数据查询请求与第一数据查询请求完全一致时,判断缓存中是否存储有第一数据查询请求对应的数据查询结果。
当缓存中存储有第一数据查询请求对应的数据查询结果时,可以直接将该数据查询结果返回至客户端。
在步骤S2026中,当存储的数据查询请求与第一数据查询请求不完全一致时,判断存储的数据查询请求中的限制条件中的数量是否大于第一数据查询请求中的限制条件中的数量。
例如,当第一数据查询请求的SQL的LIMIT前部分SQL MD5指纹和存储的数据查询请求的指纹一致时,判断存储的数据查询请求中的SQL LIMIN NUM是否大于第一数据查询请求中的LIMIT NUM。
例如:当存储的数据查询请求的SQL为SELECT*FROM ABC LIMIT 1000,即存储的数据查询请求中的限制条件中的数量为1000,第一数据查询请求的SQL为:SELECT*FROM ABCLIMIT 100时,即存储的数据查询请求中的限制条件中的数量1000大于第一数据查询请求中的限制条件中的数量100时,就可以使用此缓存的数据查询结果,缓存的数据查询结果中不仅存在了SQL MD5指纹信息,还会存储最后LIMIT前部分的MD5指纹信息以及LIMIT NUM条数。
在步骤S2028中,当存储的数据查询请求中的限制条件中的数量大于第一数据查询请求中的限制条件中的数量时,判断缓存中是否存储有第一数据查询请求对应的数据查询结果。
当缓存中存储有第一数据查询请求对应的数据查询结果时,可以直接将该数据查询结果返回至客户端。
图6是根据一示例性实施方式示出的另一种数据查询方法的流程图。
在如图3所示的方法10的基础上,图6所示的方法30还进一步包括以下步骤:
在步骤S302中,接收至少一个第一云网络发送的数据查询结果及其对应的标识号。
第一云网络查询到数据查询结果后,会将数据查询结果及其对应的标识号发送给数据查询装置。
在步骤S304中,将数据查询结果及其对应的标识号加入缓存中。
当接收到一个第一云网络发送的数据查询结果,云网络2便将该数据查询结果及其对应的标识号加入缓存中,以方便后续查找该数据查询结果。
方法30与方法10中相同的步骤在此不再赘述。
图7是根据一示例性实施方式示出的另一种数据查询方法的流程图。
在如图6所示的方法30的基础上,图7所示的方法40还进一步包括以下步骤:
在步骤S402中,接收客户端发送的数据结果查询请求。
其中,数据结果查询请求包括:第一数据查询请求对应的标识号。
在一些实施例中,接收客户端发送的数据结果查询请求包括:周期地接收客户端发送的数据结果查询请求。
在步骤S404中,基于标识号,在缓存中查找第一数据查询请求对应的数据查询结果。
在步骤S406中,当在缓存中查找到第一数据查询请求对应的数据查询结果时,将数据查询结果返回给客户端。
方法40与方法30中相同的步骤在此不再赘述。
根据本发明实施例提供的数据查询方法,进一步地,能够部分的向用户返回数据查询结果,从而节省了用户在数据查询过程中的等待时间。
图8是根据一示例性实施方式示出的另一种数据查询方法的流程图。
与图3所示的方法10不同之处在于,图8进一步提供了如何将第二数据查询请求及其对应的标识号,发送给对应的至少一个第一云网络,也即图8所示的方法,进一步提供了对图3中步骤S112的实施例。
参考图8,步骤S112包括:
在步骤S1122中,当发送第二数据查询请求失败时,将第二数据查询请求加入至查询队列的队首位置,以重新发送第二数据查询请求。
在步骤S1124中,当第二数据查询请求发送的次数超过预设次数时,记录第二数据查询请求发送失败。
预设次数例如可以是3次,当第二数据查询请求请求发送的次数超过3次时,则会直接记录此次第二数据查询请求发送失败,不再进行重复发送。
本领域技术人员可以理解实现上述实施方式的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本发明示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
图9是根据一示例性实施方式示出的一种数据查询装置的框图。
如图9所示,数据查询装置70包括:第一请求获取模块702、标识号分配模块704、标识号返回模块706、第一请求加入模块708、第二请求获取模块710、第二请求发送模块712及确认接收模块714。
其中,第一请求获取模块702用于基于第一连接,获取客户端输入的第一数据查询请求。
标识号分配模块704用于为第一数据查询请求分配唯一的标识号;
标识号返回模块706用于将标识号返回至客户端,并通知客户端中断第一连接。
第一请求加入模块708用于将第一数据查询请求加入至查询队列中。
第二请求获取模块710用于从查询队列中获取第二数据查询请求。
第二请求发送模块712用于基于至少一条第二连接,将第二数据查询请求及其对应的标识号,发送给对应的至少一个第一云网络。
确认接收模块714用于接收至少一个第一云网络返回的请求确认,并中断至少一条第二连接。
在一些实施例中,数据查询装置70还包括:缓存判断模块,用于判断缓存中是否存储有第一数据查询请求对应的数据查询结果;以及队列加入模块,用于当缓存中没有存储第一数据查询请求对应的数据查询结果时,将第一数据查询信息请求加入至查询队列中。
在一些实施例中,缓存判断模块包括:第一判断模块,用于判断缓存中存储有数据查询结果对应的数据查询请求与第一数据查询请求是否完全一致;第二判断模块,用于当存储的数据查询请求与第一数据查询请求完全一致时,判断缓存中存储有第一数据查询请求对应的数据查询结果;第三判断模块,用于当存储的数据查询请求与第一数据查询请求不完全一致时,判断存储的数据查询请求中的限制条件中的数量是否大于第一数据查询请求中的限制条件中的数量;以及第四判断模块,用于当存储的数据查询请求中的限制条件中的数量大于第一数据查询请求中的限制条件中的数量时,判断缓存中存储有第一数据查询请求对应的数据查询结果。
在一些实施例中,数据查询装置70还包括:结果接收模块,用于接收至少一个第一云网络发送的数据查询结果及其对应的标识号;以及缓存加入模块,用于将数据查询结果及其对应的标识号加入缓存中。
在一些实施例中,数据查询装置70还包括:请求接收模块,用于接收客户端发送的数据结果查询请求,数据结果查询请求包括:第一数据查询请求对应的标识号;结果查找模块,用于基于标识号,在缓存中查找第一数据查询请求对应的数据查询结果;以及结果返回模块,用于当在缓存中查找到第一数据查询请求对应的数据查询结果时,将数据查询结果返回给客户端。
在一些实施例中,请求接收模块还用于周期地接收客户端发送的数据结果查询请求。
在一些实施例中,第二请求发送模块712包括:重新发送模块,用于当发送第二数据查询请求失败时,将第二数据查询请求加入至查询队列的队首位置,以重新发送第二数据查询请求;失败记录模块,用于当第二数据查询请求发送的次数超过预设次数时,记录第二数据查询请求发送失败。
在一些实施例中,第一云网络为私有云网络。
根据本发明实施例提供的数据查询装置,在数据查询过程中采用异步通信方式,一方面可以避免对已建立连接资源的持续占用;另一方面还可以避免该连接在长期等待过程中因异常中断,而导致无法再通过该连接返回查询结果的问题,提升了数据查询的稳定性。
需要注意的是,上述附图中所示的框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
此外,本发明还提供一种基于云的数据查询系统,包括如图9所示的数据查询装置70、客户端及至少一个第一云网络。
其中,客户端用于基于第一连接向数据查询装置发送第一数据查询请求,并当收到对应第一数据查询请求对应的标识号时,中断第一连接。
至少一个第一云网络,用于基于至少一条第二连接,接收第二数据查询请求及其对应的标识号,并在返回第二数据查询请求的请求确认后,中断至少一条第二连接。
在一些实施例中,至少一个第一云网络还用于基于第二数据查询请求进行数据查询,并获得数据查询结果;将第二数据查询请求的数据查询结果及对应的标识号,发送至数据查询装置。
在一些实施例中,客户端还用于向数据查询装置发送数据结果查询请求,数据结果查询请求包括:第一数据查询请求对应的标识号;及接收第一数据查询请求对应的数据查询结果。
图10是根据一示例性实施方式示出的一种电子设备的结构示意图。需要说明的是,图10示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图10所示,电子设备800以通用电子设备的形式表现。电子设备800的组件包括:至少一个中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序代码或者从至少一个存储单元808加载到随机访问存储器(RAM)803中的程序代码而执行各种适当的动作和处理。
特别地,根据本发明的实施例,所述程序代码可以被中央处理单元801执行,使得中央处理单元801执行本说明书上述方法实施例部分中描述的根据本发明各种示例性实施方式的步骤。例如,中央处理单元801可以执行如图3-图8中所示的步骤。
在RAM 803中,还存储有电子设备800操作所需的各种程序和数据。CPU 801、ROM802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入单元806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出单元807;包括硬盘等的存储单元808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信单元809。通信单元809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储单元808。
图11是根据一示例性实施方式示出的一种计算机可读存储介质的示意图。
参考图11所示,描述了根据本发明的实施方式的设置为实现上述方法的程序产品900,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如图3-图8中所示的功能。
以上具体地示出和描述了本发明的示例性实施方式。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (14)
1.一种数据查询方法,其特征在于,包括:
基于第一连接,获取客户端输入的第一数据查询请求;
为所述第一数据查询请求分配唯一的标识号;
将所述标识号返回至所述客户端,并通知所述客户端中断所述第一连接;
将所述第一数据查询请求加入至查询队列中;
从所述查询队列中获取第二数据查询请求;
基于至少一条第二连接,将所述第二数据查询请求及其对应的标识号,发送给对应的至少一个第一云网络;以及
接收所述至少一个第一云网络返回的请求确认,并中断所述至少一条第二连接。
2.根据权利要求1所述的方法,其特征在于,将所述第一数据查询请求加入至查询队列中之前,所述方法还包括:
判断缓存中是否存储有所述第一数据查询请求对应的数据查询结果;以及
当所述缓存中没有存储所述第一数据查询请求对应的数据查询结果时,将所述第一数据查询信息请求加入至所述查询队列中。
3.根据权利要求2所述的方法,其特征在于,判断缓存中是否存储有所述第一数据查询请求对应的数据查询结果包括:
判断缓存中存储的数据查询结果对应的数据查询请求与所述第一数据查询请求是否完全一致;
当存储的所述数据查询请求与所述第一数据查询请求完全一致时,判断缓存中是否存储有所述第一数据查询请求对应的数据查询结果;
当存储的所述数据查询请求与所述第一数据查询请求不完全一致时,判断存储的所述数据查询请求中的限制条件中的数量是否大于所述第一数据查询请求中的限制条件中的数量;以及
当存储的所述数据查询请求中的限制条件中的数量大于所述第一数据查询请求中的限制条件中的数量时,判断缓存中是否存储有所述第一数据查询请求对应的数据查询结果。
4.根据权利要求1所述的方法,其特征在于,还包括:
接收所述至少一个第一云网络发送的数据查询结果及其对应的标识号;以及
将所述数据查询结果及其对应的标识号加入缓存中。
5.根据权利要求4所述的方法,其特征在于,还包括:
接收客户端发送的数据结果查询请求,所述数据结果查询请求包括:所述第一数据查询请求对应的标识号;
基于所述标识号,在所述缓存中查找所述第一数据查询请求对应的数据查询结果;以及
当在所述缓存中查找到所述第一数据查询请求对应的数据查询结果时,将所述数据查询结果返回给所述客户端。
6.根据权利要求5所述的方法,其特征在于,接收客户端发送的数据结果查询请求包括:周期地接收客户端发送的数据结果查询请求。
7.根据权利要求1所述的方法,其特征在于,将所述第二数据查询请求及其对应的标识号,发送给对应的至少一个第一云网络包括:
当发送所述第二数据查询请求失败时,将所述第二数据查询请求加入至所述查询队列的队首位置,以重新发送所述第二数据查询请求;
当所述第二数据查询请求发送的次数超过预设次数时,记录所述第二数据查询请求发送失败。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述第一云网络为私有云网络。
9.一种数据查询装置,其特征在于,包括:
第一请求获取模块,用于基于第一连接,获取客户端输入的第一数据查询请求;
标识号分配模块,用于为所述第一数据查询请求分配唯一的标识号;
标识号返回模块,用于将所述标识号返回至所述客户端,并通知所述客户端中断所述第一连接;
第一请求加入模块,用于将所述第一数据查询请求加入至查询队列中;
第二请求获取模块,用于从所述查询队列中获取第二数据查询请求;
第二请求发送模块,用于基于至少一条第二连接,将所述第二数据查询请求及其对应的标识号,发送给对应的至少一个第一云网络;以及
确认接收模块,用于接收所述至少一个第一云网络返回的请求确认,并中断所述至少一条第二连接。
10.一种基于云的数据查询系统,其特征在于,包括:
根据权利要求9所述的数据查询装置;
客户端,用于基于第一连接向所述数据查询装置发送第一数据查询请求,并当收到对应所述第一数据查询请求对应的标识号时,中断所述第一连接;以及
至少一个第一云网络,用于基于至少一条第二连接,接收第二数据查询请求及其对应的标识号,并在返回所述第二数据查询请求的请求确认后,中断所述至少一条第二连接。
11.根据权利要求10所述的系统,其特征在于,所述至少一个第一云网络还用于基于所述第二数据查询请求进行数据查询,并获得数据查询结果;将所述第二数据查询请求的所述数据查询结果及对应的标识号,发送至所述数据查询装置。
12.根据权利要求10所述的系统,其特征在于,所述客户端还用于向所述数据查询装置发送数据结果查询请求,所述数据结果查询请求包括:所述第一数据查询请求对应的标识号;及接收所述第一数据查询请求对应的数据查询结果。
13.一种电子设备,包括:存储器、处理器及存储在所述存储器中并可在所述处理器中运行的可执行指令,其特征在于,所述处理器执行所述可执行指令时实现如权利要求1-8任一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机可执行指令,其特征在于,所述可执行指令被处理器执行时实现如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911290805.3A CN111046061B (zh) | 2019-12-13 | 2019-12-13 | 数据查询方法、装置、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911290805.3A CN111046061B (zh) | 2019-12-13 | 2019-12-13 | 数据查询方法、装置、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111046061A true CN111046061A (zh) | 2020-04-21 |
CN111046061B CN111046061B (zh) | 2023-08-25 |
Family
ID=70236596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911290805.3A Active CN111046061B (zh) | 2019-12-13 | 2019-12-13 | 数据查询方法、装置、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111046061B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9674108B1 (en) * | 2015-12-30 | 2017-06-06 | Accenture Global Solutions Limited | Hub-and-spoke connection architecture |
US20170214749A1 (en) * | 2016-01-27 | 2017-07-27 | Salesforce.Com, Inc. | Networked Database Connectivity |
US20180260125A1 (en) * | 2017-03-10 | 2018-09-13 | Pure Storage, Inc. | Synchronously replicating datasets and other managed objects to cloud-based storage systems |
CN109063140A (zh) * | 2018-08-03 | 2018-12-21 | 福州麦辽自动化设备有限公司 | 一种数据查询方法、中转服务器及计算机可读存储介质 |
CN109145020A (zh) * | 2018-07-23 | 2019-01-04 | 程之琴 | 信息查询方法、从服务器、客户端及计算机可读存储介质 |
CN109299348A (zh) * | 2018-11-28 | 2019-02-01 | 北京字节跳动网络技术有限公司 | 一种数据查询方法、装置、电子设备及存储介质 |
CN109637602A (zh) * | 2018-11-23 | 2019-04-16 | 金色熊猫有限公司 | 医疗数据存储和查询方法、装置、存储介质及电子设备 |
CN110070926A (zh) * | 2019-03-21 | 2019-07-30 | 深圳壹账通智能科技有限公司 | 基于区块链的数据查询方法、装置、设备及可读存储介质 |
CN110222116A (zh) * | 2019-05-07 | 2019-09-10 | 北京奇艺世纪科技有限公司 | 一种交易数据存储的控制方法、装置及存储介质 |
-
2019
- 2019-12-13 CN CN201911290805.3A patent/CN111046061B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9674108B1 (en) * | 2015-12-30 | 2017-06-06 | Accenture Global Solutions Limited | Hub-and-spoke connection architecture |
US20170214749A1 (en) * | 2016-01-27 | 2017-07-27 | Salesforce.Com, Inc. | Networked Database Connectivity |
US20180260125A1 (en) * | 2017-03-10 | 2018-09-13 | Pure Storage, Inc. | Synchronously replicating datasets and other managed objects to cloud-based storage systems |
CN109145020A (zh) * | 2018-07-23 | 2019-01-04 | 程之琴 | 信息查询方法、从服务器、客户端及计算机可读存储介质 |
CN109063140A (zh) * | 2018-08-03 | 2018-12-21 | 福州麦辽自动化设备有限公司 | 一种数据查询方法、中转服务器及计算机可读存储介质 |
CN109637602A (zh) * | 2018-11-23 | 2019-04-16 | 金色熊猫有限公司 | 医疗数据存储和查询方法、装置、存储介质及电子设备 |
CN109299348A (zh) * | 2018-11-28 | 2019-02-01 | 北京字节跳动网络技术有限公司 | 一种数据查询方法、装置、电子设备及存储介质 |
CN110070926A (zh) * | 2019-03-21 | 2019-07-30 | 深圳壹账通智能科技有限公司 | 基于区块链的数据查询方法、装置、设备及可读存储介质 |
CN110222116A (zh) * | 2019-05-07 | 2019-09-10 | 北京奇艺世纪科技有限公司 | 一种交易数据存储的控制方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111046061B (zh) | 2023-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3595355A1 (en) | Resource obtaining method, apparatus and system | |
EP3562096B1 (en) | Method and device for timeout monitoring | |
CN112134909B (zh) | 时序数据处理方法、装置、系统、服务器及可读存储介质 | |
CN110471749B (zh) | 任务处理方法、装置、计算机可读存储介质和计算机设备 | |
WO2022111313A1 (zh) | 一种请求处理方法及微服务系统 | |
US11243921B2 (en) | Database expansion system, equipment, and method of expanding database | |
CN112751847A (zh) | 接口调用请求的处理方法、装置、电子设备及存储介质 | |
CN111225010A (zh) | 数据处理方法、数据处理系统以及装置 | |
US9832268B2 (en) | System, method, and medium for managing priority in requests to in-memory data grid (IMDG) | |
CN111737564A (zh) | 一种信息查询方法、装置、设备及介质 | |
US10223407B2 (en) | Asynchronous processing time metrics | |
US20230269304A1 (en) | Method and apparatus for processing notification trigger message | |
WO2024037629A1 (zh) | 区块链的数据整合方法、装置、计算机设备及存储介质 | |
CN109660589B (zh) | 请求处理方法及装置、电子设备 | |
CN110019372B (zh) | 数据监控方法、装置、服务器及存储介质 | |
CN111046061A (zh) | 数据查询方法、装置、系统、设备及存储介质 | |
CN109327523A (zh) | 一种抗并发的数据处理方法、系统、装置及存储介质 | |
CN111638946A (zh) | 一种请求信息分级处理方法和装置 | |
CN112491066B (zh) | 负载均衡方法、装置、系统、目标负载均衡设备及介质 | |
CN113824675B (zh) | 管理登录态的方法和装置 | |
CN114356713A (zh) | 线程池监控方法、装置、电子设备及存储介质 | |
US10185729B2 (en) | Index creation method and system | |
CN115174665B (zh) | 登录状态确定方法、装置、设备及存储介质 | |
CN115604041B (zh) | 安全代理方法、系统、装置、计算机设备和存储介质 | |
CN116436855B (zh) | 数据信息处理方法、装置、电子设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |