一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据查询方法、装置和设备与流程

2022-09-15 04:47:09 来源:中国专利 TAG:


1.本发明涉及数据查询技术领域,尤其涉及一种数据查询方法、装置和设备。


背景技术:

2.数据存储于数据库。为了避免数据库(主数据库)中的数据丢失无法被找回,一般会建立备份数据库,也即备份数据库存储的数据是主数据库存储的数据的备份数据。虽然备份数据库能够保证数据的安全性,但会造成备份数据库的资源浪费。
3.为了提高备份数据库的资源利用率,客户端可以向备份数据库以及主数据库查询数据,使得备份数据库分摊主数据库的压力,从而达到负载均衡的效果。
4.示例性技术,客户端从主数据库以及备份数据库获取所需查询数据的lsn(log sequence number,日志序列号),再通过两个lsn的比对结果决定从主数据库还是从备份数据库获取查询的数据。但数据库中数据的任何更改都会导致lsn变化,使得客户端在每次查询数据时,均需要从主数据库以及备份数据库获取lsn,从而增大了主数据库以及备份数据库的性能损耗,导致负载均衡的效果无法达到预期效果。


技术实现要素:

5.本发明提供一种数据查询方法、装置和设备,用以解决负载均衡的效果无法达到预期效果的问题。
6.一方面,本发明提供一种数据查询方法,包括:
7.获取查询任务以及所述查询任务请求查询的第一数据的第一标识;
8.判断预设表中是否包含所述第一标识得到判断结果,所述预设表中存储有多个第二数据的第二标识,所述第二数据存储于主数据库以及备份数据库;
9.根据所述判断结果在所述主数据库以及所述备份数据库中确定目标数据库,并将所述查询任务发送至目标数据库。
10.在一实施例中,所述根据所述判断结果在所述主数据库以及所述备份数据库中确定目标数据库包括:
11.在所述判断结果是所述预设表包含所述第一标识时,获取所述第一标识在所述预设表中所对应的第一日志序列号以及第二日志序列号,所述第一日志序列号是所述第一数据在所述主数据库中的日志序列号,所述第二日志序列号是所述第一数据在所述备份数据库中的日志序列号;
12.比对所述第一日志序列号与所述第二日志序列号得到比对结果;
13.根据所述比对结果在所述主数据库以及所述备份数据库中确定目标数据库。
14.在一实施例中,所述根据所述比对结果在所述主数据库以及所述备份数据库中确定目标数据库包括:
15.在所述比对结果是所述第一日志序列号与所述第二日志序列号不同时,将所述主数据库确定为目标数据库;
16.在所述比对结果是所述第一日志序列号与所述第二日志序列号相同时,将所述备份数据库确定为目标数据库。
17.在一实施例中,所述根据所述判断结果在所述主数据库以及所述备份数据库中确定目标数据库包括:
18.在所述判断结果是所述预设表不包含所述第一标识时,将所述备份数据库确定为目标数据库。
19.在一实施例中,所述判断预设表中是否包含所述第一标识得到判断结果步骤之前,还包括:
20.建立与所述主数据库以及所述备份数据库的通信连接;
21.获取各个第二数据,并在所述主数据库读取所述第二数据的第二标识,所述第二数据是使用频次大于预设使用频次的数据;
22.根据各个所述第二标识构建所述预设表。
23.在一实施例中,所述根据各个所述第二标识构建所述预设表的步骤包括:
24.在所述主数据库读取各个所述第二数据的第三日志序列号,且在所述备份数据库读取各个所述第二数据的第四日志序列号;
25.根据各个所述第二数据对应的第二标识、所述第三日志序列号以及所述第四日志序列号,构建所述预设表。
26.在一实施例中,所述根据各个所述第二数据对应的第二标识、所述第三日志序列号以及所述第四日志序列号,构建所述预设表的步骤之后,还包括:
27.接收服务器发送的数据的更新信息,确定所述更新信息对应的数据的第三标识,所述第三标识是所述预设表中任意的第二标识;
28.根据所述更新信息更新所述第三标识在所述预设表中对应的第三日志序列号,或,根据所述更新信息更新所述第三标识在所述预设表中对应的第三日志序列号以及第四日志序列号。
29.在一实施例中,所述接收服务器发送的数据的更新信息的步骤之前,还包括:
30.根据所述预设表向所述服务器发送通知服务的注册请求,所述通知服务用于通知预设表中的各个所述第二标识对应的第三序列号以及第四序列号进行更新,所述服务器与所述主数据库以及所述备份数据库通信连接;
31.接收所述服务器反馈的注册成功的提示信息。
32.另一方面,本发明还提供一种数据查询装置,包括:
33.获取模块,用于获取查询任务以及所述查询任务请求查询的第一数据的第一标识;
34.确定模块,用于判断预设表中是否包含所述第一标识得到判断结果,所述预设表中存储有多个第二数据的第二标识,所述第二数据存储于主数据库以及备份数据库;
35.所述确定模块,还用于判断预设表中是否包含所述第一标识得到判断结果,所述预设表中存储有多个第二数据的第二标识,所述第二数据存储于主数据库以及备份数据库。
36.另一方面,本发明还提供一种数据查询设备,包括:存储器和处理器;
37.所述存储器存储计算机执行指令;
38.所述处理器执行存储器存储的计算机执行指令,使得数据查询设备执行如上所述的数据查询方法。
39.本发明提供的数据查询方法、装置和设备,获取查询任务以及查询任务请求查询的数据的第一标识,并判断预设表中是否包含第一标识得到判断结果,从而根据判断结果确定目标数据库,再将查询任务发送至目标数据库。本发明中,基于预设表即可确定从主数据库或者备份数据库中获取查询,无需基于数据的lsn确定查询的数据从主数据库还是从备份数据库获取,也即不需要从主数据库以及备份数据库中获取lsn,避免主数据库以及备份数据库的性能损耗,确保了主数据库以及备份数据库的负载均衡的能够预期效果。
附图说明
40.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
41.图1为本发明实现数据查询方法的系统构架图;
42.图2为本发明数据查询方法第一实施例的流程示意图;
43.图3为本发明数据查询方法第二实施例的流程示意图;
44.图4为本发明数据查询方法第三实施例的流程示意图;
45.图5为本发明数据查询装置的功能模块示意图;
46.图6为本发明数据查询设备的硬件结构示意图。
47.通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
48.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
49.本发明提供一种数据查询方法,可以通过图1所示的系统构架图实现。如图1所示,数据查询装置100与主数据库200以及备份数据库300通信连接。数据查询装置100可以为任意具备数据处理能力的设备,例如,数据查询装置100为计算机。数据查询装置100中设有预设表,预设表中包含多个数据的标识。
50.数据查询装置100中装载有多个应用,在某个应用发起数据的查询任务时,基于查询任务提取请求查询的数据的标识,若是该标识未存储于预设表中,数据查询装置100则将查询任务发送至备份数据库300。若是查询任务请求查询的数据的标识位于预设表,数据查询装置100则将查询任务发送至主数据库200,由主数据库200将数据反馈至数据查询装置100。
51.下面以具体地实施例对本发明的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
52.参照图2,图2为本发明数据查询方法的第一实施例,数据查询方法包括以下步骤:
53.步骤s201,获取查询任务以及查询任务请求查询的第一数据的第一标识。
54.在本实施例中,执行主体是数据查询装置100。数据查询装置100可以是作为应用的客户端,也可以是装载有应有的终端。为了便于描述,以下采用装置指代数据查询装置。
55.装置在收到其他应用发送的查询任务时,解析查询任务,也即解析查询任务的sql中的语句,从而提取得到查询任务所请求查询的数据的标识,该数据定义为第一数据,且该标识定义为第一标识。
56.在本实施例中,数据可以是表格的存储形式存储于备份数据库以及主数据库中,且数据在备份数据库以及主数据库具有相同的表名,数据的表名即为数据的标识。
57.步骤s202,判断预设表中是否包含第一标识得到判断结果,预设表中存储有多个第二数据的第二标识,第二数据存储于主数据库以及备份数据库。
58.装置中存储有预设表,预设表是预先配置的。预设表中存储有多个数据的标识,且预设表中的数据定义为第二数据。第二数据可以是装置所关注数据。例如,第二数据是装置常使用的数据,也即第二数据是使用频次大于预设使用频次的数据。预设使用频次可以是任意合适的数值。使用频次指的是单位时间内的使用次数,或者使用频次是使用频率。预设表中的各个第二数据存储于主数据库以及备份数据库。
59.装置在获得查询任务请求查询的数据的第一标识后,判断预设表中是否包含第一标识从而得到判断结果。
60.步骤s203,根据判断结果在主数据库以及备份数据库中确定目标数据库,并将查询任务发送至目标数据库。
61.装置在得到判断结果后,即可基于判断结果在主数据库以及备份数据库中确定目标数据库,再将查询任务发送至目标数据库。例如,在当判断结果是预设表不包含第一标识时,也即查询任务所请求查询的数据不是装置所关心的数据,装置则将备份数据库确定目标数据库。
62.目标数据库接收到查询任务后,解析查询任务得到第一标识,再从存储的数据中确定第一标识所对应的数据,最后第一标识所对应的数据发送至装置,装置则输出该数据,从而完成装置对数据的查询。装置输出数据可以是显示数据,也可以是向发送查询任务的应用或终端发送数据。
63.在本实施例中,获取查询任务以及查询任务请求查询的数据的第一标识,并判断预设表中是否包含第一标识得到判断结果,从而根据判断结果确定目标数据库,再将查询任务发送至目标数据库。本发明中,基于预设表即可确定从主数据库或者备份数据库中获取查询,无需基于数据的lsn确定查询的数据从主数据库还是从备份数据库获取,也即不需要从主数据库以及备份数据库中获取lsn,避免主数据库以及备份数据库的性能损耗,确保了主数据库以及备份数据库的负载均衡的能够预期效果。
64.参照图3,图3是本发明数据查询方法第二实施例的流程示意图,基于第一实施例,步骤s203包括:
65.步骤s301,在判断结果是预设表包含第一标识时,获取第一标识在预设表中所对应的第一日志序列号以及第二日志序列号,第一日志序列号是第一数据在主数据库中的日志序列号,第二日志序列号是第一数据在备份数据库中的日志序列号。
66.在本实施例中,备份数据库是灾备数据库,灾备数据库与主数据库需要保持一定的数据,使得主数据库与备份数据库之间的数据同步存在一定的延迟差异,也即主数据库采用异步方式将数据同步至备份数据库。
67.数据在主数据库以及备份数据库具有lsn(log sequence number,日志序列号),lsn可以理解为一个数字编号。数据存储的主数据库以及备份数据库时,数据在两个数据库中的lsn是相同的,而在当数据变化时,主数据库先进行数据的更新,该数据在主数据库中的lsn以及在备份数据库的lsn进行同步的更新,且数据在主数据库以及备份数据库中的更新后的lsn也是相同的,例如,主数据库以及备份数据库中的某个数据每更新一次,主数据库以及备份数据库中的该数据的lsn增大或减小一个预设的数值,预设的数值例如为1。由于主数据库采用异步方式将数据同步至备份数据库,因而备份数据库存在未及时更新数据的情况,也即数据在主数据库的lsn与在备份数据库中的lsn存在不同的情况。
68.在本实施例中,预设表中存储有第二数据、第二数据在主数据库的第三日志序列号以及第一数据在备份数据库的第四日志序列号。若是备份数据库有多个,则预设表中存储有第二数据在所有备份数据库的日志序列号。日志序列号即为数值编号的lsn。
69.在当判断结果是预设表包含第一标识时,装置还需要基于数据在主数据库以及备份数据库中的日志序列号确定查询任务查询的最新版本的数据是否已经更新至备份数据库。对此,装置获取第一标识在预设表中所对应的第一日志序列号以及第二日志序列号,第一日志序列号即为第一数据在主数据库中的日志序列号,第二日志序列号是第一数据在备份数据库中的日志序列号。
70.步骤s302,比对第一日志序列号与第二日志序列号得到比对结果。
71.装置比对第一日志序列号以及第二日志序列号得到比对结果。比对结果可以是第一日志序列号与第二日志序列号相同,或者是第一日志序列号与第二日志序列号不同。
72.步骤s303,根据比对结果在主数据库以及备份数据库中确定目标数据库。
73.装置根据比对结果在主数据库以及备份数据库中确定目标数据库。具体的,在当比对结果是第一日志序列号与第二日志序列号不同时,即可确定备份数据库中未存储查询任务所请求查询的最新版本的数据,也即确定主数据未将第一标识对应的数据的增量数据备份至备份数据库。装置则将主主数据库确定为目标数据库,也即将查询任务发送至主数据库,以获得主数据库反馈的数据。
74.在当第一日志序列号与第二日志序列号相同,即可确定主数据库将第一标识对应的增量数据备份至备份数据库,装置则将备份数据库确定为目标数据库,也即将查询任务发送至备份数据库,从而得到备份数据库发送的第一标识对应的数据。
75.需要说明的是,在存在多个备份数据库时,装置需要确定第一日志序列号与各个第二日志序列号是否不同得到比对结果。若是比对结果是第一日志序列号与各个第二日志序列号均不相同,装置则将主数据库确定为目标数据库。若比对数据库存在与第一日志序列号相同的一个或多个第二日志序列号,则将与第一日志序列号相同的第二日志序列号所对应的备份数据库确定为目标数据库。
76.在本实施例中,通过数据在主数据库的日志序列号以及在备份数据库的日志序列号,确定查询任务请求的数据在备份数据库是否为最新的数据,确保装置获得的数据是最近更新的数据。
77.参照图4,图4为本发明数据查询方法第三实施例,基于第一或第二实施例,步骤s202之前,还包括:
78.步骤s401,建立与主数据库以及备份数据库的通信连接。
79.在本实施例中,装置需要预先配置预设表。对此,装置先与主数据库以及备份数据库建立通信连接。
80.步骤s402,获取各个第二数据,并在主数据库读取第二数据的第二标识,第二数据是使用频次大于预设使用频次的数据。
81.在装置与主数据库以及备份数据库建立通信连接后,装置确定各个第二数据,第二数据可以是使用频次大于预设使用频次的数据,第二数据也可以是用户所选定的数据。
82.步骤s403,根据各个第二标识构建预设表。
83.装置在得到各个第二数据后,在从主数据库或备份数据库中读取第二数据所对应的第二标识,从而根据各个第二标识构建预设表。
84.进一步,为了确保装置从数据中获取查询任务所需查询的最新版本的数据,预设表中需要存储第二标识对应的数据在主数据库以及备份数据库的日志序列号。对此,装置向主数据库发送第二标识对应的数据的日志序列号的查询请求,从而从主数据库读取第二数据在主数据库中的第三日志序列号。装置再向备份数据库发送第二标识对应的数据的日志序列号的查询请求,从而从备份数据库读取第二数据在备份数据库中的第四日志序列号。
85.装置基于各个第二数据对应的第二标识、第三日志序列号以及第三日志序列号构建预设表。具体的,装置将第二数据的第二标识、第二数据对应的第三日志序列号以及第四日志序列号进行关联,得到第二数据对应的关联信息,也即关联信息中包括有第二数据的标识、第三日志序列号以及第四日志序列号。装置再将各个第二数据存储于空白表格中,即可得到预设表。
86.在本实施例中,装置构建预设表,便于装置基于预设表从主数据库以及备份数据库中获取查询任务所需查询的数据。
87.在一实施例中,在根据各个第二数据对应的第二标识、第三日志序列号以及第四日志序列号,构建预设表的步骤之后,还包括:
88.a、接收服务器发送的数据的更新信息,确定更新信息对应的数据的第三标识,第三标识是预设表中任意的第二标识。
89.在本实施例中,服务器中存储有装置的预设表,且服务器中设置有触发器。服务器的触发器在检测到预设表中的标识所对应的数据发生变更操作(变更操作例如为增加、删除或者改动)时,即可标识所对应的数据在主数据库的日志序列号发生了变化,对此,装置会向装置发送数据的更新信息。装置接收到服务器发送的数据的更新信息,确定更新信息所对应的数据的标识,该标识定义为第三标识。
90.b、根据更新信息更新第三标识在预设表中对应的第三日志序列号,或,根据更新信息更新第三标识在预设表中对应的第三日志序列号以及第四日志序列号。
91.由于服务器也存储有预设表,则第三标识是预设表中的任意标识。装置基于更新信息更新第三标识在预设表中的第三日志序列号,或者,基于更新信息更新第三标识在预设表中的第三日志序列号以及第四日志序列号。
92.具体的,更新信息包括预设表中的更新的数据所对应的标识、更新的数据在主数据库中的第三日志序列号。此外,若是主数据库将更新的数据同步至备份数据库,则更新信息包括预设表中的更新的数据所对应的标识、更新的数据在主数据库中的第三日志序列号以及更新的数据在备份数据库中的第四日志序列号。也即装置基于更新信息,同步更新预设表中的第三日志序列号、或者基于更新信息更新预设表中的第三日志序列号以及第四日志序列号。
93.进一步,装置在接收到更新信息之前,装置需要向服务器进行通知服务的注册。具体的,装置基于预设表向服务器发送通知服务的注册请求。注册请求中携带有预设表。服务器为装置创建对应的触发器,触发器用于检测预设表中的数据是否发生变更。服务器在完成对装置的通知服务的注册后,向装置发送注册成功的提示信息,也即装置接收到服务器反馈的注册成功的提示信息。可以理解的是,通知服务用于通知预设表中的各个第二标识对应的第三序列日志号以及第四日志序列号进行更新。
94.此外,服务器是与主数据库以及备份数据库通信连接,使得触发器能够检测到主数据库以及备份数据库对数据的更新。另外,服务器中存储的预设表包括需要通知服务需要用到的频道名,且频道名与装置的标识进行关联存储。在检测到预设表中的数据变更,服务器通过频道名向装置反馈数据的更新信息。
95.在本实施例中,装置通过服务器发送的更新信息更新预设表中的日志序列号,从而确定装置能够获取查询任务所需查询的最新版本的数据。
96.本发明还提供一种数据查询装置,参照图5,数据查询装置500包括:
97.获取模块510,用于获取查询任务以及查询任务请求查询的第一数据的第一标识;
98.判断模块520,用于判断预设表中是否包含第一标识得到判断结果,预设表中存储有多个第二数据的第二标识,第二数据存储于主数据库以及备份数据库;
99.确定模块530,用于根据判断结果在主数据库以及备份数据库中确定目标数据库,并将查询任务发送至目标数据库。
100.在一实施例中,数据查询装置500包括:
101.获取模块510,用于在判断结果是预设表包含第一标识时,获取第一标识在预设表中所对应的第一日志序列号以及第二日志序列号,第一日志序列号是第一数据在主数据库中的日志序列号,第二日志序列号是第一数据在备份数据库中的日志序列号;
102.比对模块,用于比对第一日志序列号与第二日志序列号得到比对结果;
103.确定模块530,用于根据比对结果在主数据库以及备份数据库中确定目标数据库。
104.在一实施例中,数据查询装置500包括:
105.确定模块530,用于在比对结果是第一日志序列号与第二日志序列号不同时,将主数据库确定为目标数据库;
106.确定模块530,用于在比对结果是第一日志序列号与第二日志序列号相同时,将备份数据库确定为目标数据库。
107.在一实施例中,数据查询装置500包括:
108.确定模块530,用于在判断结果是预设表不包含第一标识时,将备份数据库确定为目标数据库。
109.在一实施例中,数据查询装置500包括:
110.建立模块,用于建立与主数据库以及备份数据库的通信连接;
111.获取模块510,用于获取各个第二数据,并在主数据库读取第二数据的第二标识,第二数据是使用频次大于预设使用频次的数据;
112.建立模块,用于根据各个第二标识构建预设表。
113.在一实施例中,数据查询装置500包括:
114.读取模块,用于在主数据库读取各个第二数据的第三日志序列号,且在备份数据库读取各个第二数据的第四日志序列号;
115.建立模块,用于根据各个第二数据对应的第二标识、第三日志序列号以及第四日志序列号,构建预设表。
116.在一实施例中,数据查询装置500包括:
117.接收模块,用于接收服务器发送的数据的更新信息,确定更新信息对应的数据的第三标识,第三标识是预设表中任意的第二标识;
118.更新模块,用于根据更新信息更新第三标识在预设表中对应的第三日志序列号,或,根据更新信息更新第三标识在预设表中对应的第三日志序列号以及第四日志序列号。
119.在一实施例中,数据查询装置500包括:
120.发送模块,用于根据预设表向服务器发送通知服务的注册请求,通知服务用于通知预设表中的各个第二标识对应的第三序列号以及第四序列号进行更新,服务器与主数据库以及备份数据库通信连接;
121.接收模块,用于接收服务器反馈的注册成功的提示信息。
122.图6是根据一示例性实施例示出的一种数据查询设备的硬件结构示意图。
123.交互装置600可以包括:处理器601,例如cpu,存储器602、收发器603。本领域技术人员可以理解,图6中示出的结构并不构成对数据查询设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。存储器602可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
124.处理器601可以调用存储器602内存储的计算机程序,以完成上述的数据查询方法的全部或部分步骤。
125.收发器603用于接收外部设备发送的信息以及向外部设备发送信息。
126.一种非临时性计算机可读存储介质,当该存储介质中的指令由数据查询设备的处理器执行时,使得数据查询设备能够执行上述数据查询方法。
127.一种计算机程序产品,包括计算机程序,当该计算机程序由数据查询设备的处理器执行时,使得数据查询设备能够执行上述数据查询方法。
128.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
129.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并
且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献