基于集群的数据库查询方法及系统、电子设备及存储介质与流程

文档序号:28318503发布日期:2022-01-04 20:55阅读:69来源:国知局
基于集群的数据库查询方法及系统、电子设备及存储介质与流程

1.本发明涉及数据库技术领域,尤其涉及一种基于集群的数据库查询方法及系统、电子设备及存储介质。


背景技术:

2.集群,即服务器集群,是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。
3.目前,不少企业搭建了集群平台。但是由于业务应用场景复杂多样,并不能保证实际用户端以及本地数据库都能够直接地接入集群,而对于普通的硬件环境下进行数据库查询,复杂的查询字段往往响应缓慢,造成用户的需求得不到快速反馈,降低了使用体验。


技术实现要素:

4.本发明要解决的技术问题是为了克服现有技术中普通应用环境下数据库查询速度缓慢,用户体验差的缺陷,提供一种基于集群的数据库查询方法及系统、电子设备及存储介质。
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.图1为本发明的实施例1的基于集群的数据库查询方法的流程示意图。
38.图2为本发明的实施例1的数据库、集群以及查询客户端的连接关系示意图。
39.图3为本发明的实施例1的数据库、集群以及同步服务的连接关系示意图。
40.图4为本发明的实施例2的基于集群的数据库查询系统的模块示意图。
41.图5为本发明的实施例3的电子设备的结构示意图。
具体实施方式
42.下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
43.实施例1
44.参见图1,本实施例具体提供了一种基于集群的数据库查询方法,集群根据数据库同步数据;查询方法包括如下步骤:
45.s1.解析第一查询指令,以生成用于查询集群的第二查询指令;
46.s2.根据第二查询指令查询集群,以获得中间查询结果;
47.s3.根据中间查询结果生成第三查询指令;
48.其中,第一查询指令和第三查询指令对数据库的查询结果相同。
49.本实施例中作为查询对象的数据库包括但不限于mssql、mysql、oracle等数据库;本实施例中的集群即由多个协调处理数据的节点组成的集群数据库,包括但不限于elasticsearch、solr等集群。集群和数据库连接,并根据数据库同步数据。图2示出了数据库和集群的连接关系示意图,
50.为了便于描述本实施例,参照图2进行具体解释。其中的查询客户端可提供给用户的可视化查询界面,由用户输入的内容自动生成对于数据库的查询指令。具体地,本实施例中的查询指令可以是针对不同的数据库或者集群的查询表达式和查询输入值,查询表达式即包括不同组合的查询条件,往往基于数据库的字段而生成,查询输入值通常是对于目标查询数据的明确赋值。结合查询表达式和查询输入值,可以从数据库中获得若干条数据记录。
51.本领域技术人员可知,上述的设备部署及连接方式,或是设定的用户应用场景,均只是一种具体的实现方式,其并不构成对本发明数据库查询方法的任何限定。
52.步骤s1解析第一查询指令,以生成用于查询集群的第二查询指令。第一查询指令用于查询数据库,例如用户在可视化查询界面中输入内容后,生成第一查询指令。随着当前各种业务的复杂、细化程度不断增加,查询项目往往较多,多种查询输入项组合成的第一查询指令往往较为复杂。并且,当今业务数据增长可达pb(peta bytes,拍字节)级别,容易导致查询超时。因此本实施例在获取到第一查询指令后,并不直接据其对数据库进行查询,而是根据第一查询指令生成第二查询指令。
53.第二查询指令是用来查询集群的查询指令,本领域技术人员可知,集群和普通数据库对应的数据库查询语法有所区别,因此第一查询指令无法直接用于查询集群。
54.在一种较佳的实施方式中,步骤s1包括:
55.s11.解析第一查询指令,获取查询表达式和查询输入值;
56.s12.根据查询表达式、查询输入值和集群的类型,生成第二查询指令。
57.步骤s11和s12具体可以用于根据第一查询指令生成第二查询指令。其中,步骤s11对第一查询指令进行解析。具体地,可以确定数据库类型,例如是sql server数据库;则根据与该数据库对应的数据库查询语法,结合文本解析技术,拆分出第一查询指令中的查询表达式以及查询输入值,步骤s12根据得到的查询表达式以及查询输入值,根据集群的类型确定对应的查询集群的数据库查询语法,即可生成第二查询指令。
58.在得到第二查询指令的基础上,步骤s2根据第二查询指令查询集群,以获得中间查询结果。由于集群数据会根据数据库进行相应的数据同步,因此第二查询指令可以在集群中得到完整的查询结果。同时,由于集群的数据查询处理速度远超过普通数据库查询速度,因此即使是根据上述多种查询输入项组合成的第一查询指令得到的第二查询指令,也能很快地在集群中得到中间查询结果。本领域技术人员可知,中间查询结果是若干数据记录的集合。
59.步骤s3根据中间查询结果生成第三查询指令,从而能够用于查询数据库并反馈给
例如终端应用系统,乃至查询用户。步骤s3的实现原理在于根据上述中间查询结果的数据记录,能够在对整个数据库的数据范围限缩的前提下,针对确定的数据集合重生成数据查询指令,使查询逻辑简化。当然,经过逻辑简化后的第三查询指令对数据库进行查询得到的结果和第一查询指令进行查询得到的结果相同。
60.作为一种较佳的实施方式,步骤s3包括:
61.s31.提取中间查询结果中的标识符信息;
62.s32.根据标识符信息生成第三查询指令的查询表达式和查询输入值。
63.本实施方式提供了一种具体的利用中间查询结果来简化查询逻辑的方法。具体地,步骤s31的标识符可以是数据库的主键,即主关键字(primary key),其值能够用于唯一标识数据库中的某一条记录。根据上述中间查询结果的数据记录,得到每条数据记录的主键,并根据得到的主键生成的第三查询指令。当然,第三查询指令同样是用于针对数据库进行查询,生成第三查询指令时也要基于数据库的类型确定其对应的数据库查询语法。由于第三查询指令基于主键生成,从而查询条件大为简化,能极大地缩短查询耗时。例如,能够从原先的查询超时缩短至33毫秒,极大提高了查询效率。
64.作为较佳的实施方式,本实施例的数据库查询方法还包括:
65.根据与数据库对应的查询指令集合,将数据库的数据同步至所述集群;查询指令集合包括第一查询指令。
66.本实施方式中的查询指令集合是包括第一查询指令在内的,针对数据库进行查询的各种查询表达式的组合。例如,可参照图3的方式通过同步服务根据查询指令集合,以增量更新等方式将数据库的数据同步到集群中。从而在上述步骤s2中,基于生成的第二查询指令对于集群进行的查询能够获得数据完整性和实时性。具体地,可以通过建立数据库索引等方式实现,由于是本领域的常规技术手段,因此对于具体的同步方式不作赘述。
67.本实施例的基于集群的数据库查询方法在不改变客户端调用的前提下,通过转换查询字符串,利用了高性能的集群服务进行查询,获得最终的查询字符串后再传入数据库进行查询,能够提升整体查询效率,极大地改善了用户体验,并能应用于多种场景。
68.实施例2
69.参见图4,本实施例具体提供了一种基于集群的数据库查询系统,集群根据数据库同步数据;查询系统包括:
70.解析模块1,用于解析第一查询指令,以生成用于查询集群的第二查询指令;
71.查询模块2,用于根据第二查询指令查询集群,以获得中间查询结果;
72.生成模块3,用于根据中间查询结果生成第三查询指令;
73.其中,第一查询指令和第三查询指令对数据库的查询结果相同。
74.本实施例中作为查询对象的数据库包括但不限于mssql、mysql、oracle等数据库;本实施例中的集群即由多个协调处理数据的节点组成的集群数据库,包括但不限于elasticsearch、solr等集群。集群和数据库连接,并根据数据库同步数据。
75.为了便于描述本实施例,参照图2进行具体解释。其中的查询客户端可提供给用户一个可视化查询界面,由用户输入的内容自动生成对于数据库的查询指令。具体地,本实施例中的查询指令可以是针对不同的数据库或者集群的查询表达式和查询输入值,查询表达式即包括不同组合的查询条件,往往基于数据库的字段而生成,查询输入值通常是对于目
标查询数据的明确赋值。结合查询表达式和查询输入值,可以从数据库中获得若干条数据记录。
76.本领域技术人员可知,上述的设备部署及连接方式,或是设定的用户应用场景,均只是一种具体的实现方式,其并不构成对本发明数据库查询方法的任何限定。
77.解析模块1解析第一查询指令,以生成用于查询集群的第二查询指令。第一查询指令用于查询数据库,例如用户在上述可视化查询界面中输入内容后,生成第一查询指令。随着当前各种业务的复杂、细化程度不断增加,查询项目往往较多,多种查询输入项组合成的第一查询指令往往较为复杂。并且,当今业务数据增长可达pb级别,容易导致查询超时。因此本实施例在获取到第一查询指令后,并不直接据其对数据库进行查询,而是根据第一查询指令生成第二查询指令。
78.第二查询指令是用来查询集群的查询指令,本领域技术人员可知,集群和普通数据库对应的数据库查询语法有所区别,因此第一查询指令无法直接用于查询集群。
79.在一种较佳的实施方式中,解析模块1包括:
80.解析单元11,用于解析第一查询指令,获取查询表达式和查询输入值;
81.第一生成单元12,用于根据查询表达式、查询输入值和集群的类型,生成第二查询指令。
82.解析单元11和第一生成单元12具体可以用于根据第一查询指令生成第二查询指令。其中,解析单元11对第一查询指令进行解析。具体地,可以确定数据库类型,例如是sql server数据库;则根据与该数据库对应的数据库查询语法,结合文本解析技术,拆分出第一查询指令中的查询表达式以及查询输入值,第一生成单元12根据得到的查询表达式以及查询输入值,根据集群的类型确定对应的查询集群的数据库查询语法,即可生成第二查询指令。
83.在得到第二查询指令的基础上,第一生成单元12根据第二查询指令查询集群,以获得中间查询结果。由于集群数据会根据数据库进行相应的数据同步,因此第二查询指令可以在集群中得到完整的查询结果。同时,由于集群的数据查询处理速度远超过普通数据库查询速度,因此即使是根据上述多种查询输入项组合成的第一查询指令得到的第二查询指令,也能很快地在集群中得到中间查询结果。本领域技术人员可知,中间查询结果是若干数据记录的集合。
84.生成模块3根据中间查询结果生成第三查询指令,从而能够用于查询数据库并反馈给例如终端应用系统,乃至查询用户。生成模块3的实现原理在于根据上述中间查询结果的数据记录,能够在对整个数据库的数据范围限缩的前提下,针对确定的数据集合重生成数据查询指令,使查询逻辑简化。当然,经过逻辑简化后的第三查询指令对数据库进行查询得到的结果和第一查询指令进行查询得到的结果相同。
85.作为一种较佳的实施方式,生成模块3包括:
86.提取单元31,用于提取中间查询结果中的标识符信息;
87.第二生成单元32,用于根据标识符信息生成第三查询指令的查询表达式和查询输入值。
88.本实施方式提供了一种具体的利用中间查询结果来简化查询逻辑的方法。具体地,提取单元31的标识符可以是数据库的主键,即主关键字(primary key),其值能够用于
唯一标识数据库中的某一条记录。根据上述中间查询结果的数据记录,得到每条数据记录的主键,并根据得到的主键生成的第三查询指令。当然,第三查询指令同样是用于针对数据库进行查询,第二生成单元32生成第三查询指令时也要基于数据库的类型确定其对应的数据库查询语法。由于第三查询指令基于主键生成,从而查询条件大为简化,能极大地缩短查询耗时。例如,能够从原先的查询超时缩短至33毫秒,极大提高了查询效率。
89.作为较佳的实施方式,本实施例的数据库查询系统还包括:
90.同步模块4,用于根据与数据库对应的查询指令集合,将数据库的数据同步至所述集群;查询指令集合包括第一查询指令。
91.本实施方式中的查询指令集合是包括第一查询指令在内的,针对数据库进行查询的各种查询表达式的组合。例如,同步模块4具体可参照图3的方式通过同步服务根据查询指令集合,以增量更新等方式将数据库的数据同步到集群中。从而基于生成的第二查询指令对于集群进行的查询能够获得数据完整性和实时性。具体地,可以通过建立数据库索引等方式实现,由于是本领域的常规技术手段,因此对于具体的同步方式不作赘述。
92.本实施例的基于集群的数据库查询系统在不改变客户端调用的前提下,通过转换查询字符串,利用了高性能的集群服务进行查询,获得最终的查询字符串后再传入数据库进行查询,能够提升整体查询效率,极大地改善了用户体验,并能应用于多种场景。
93.实施例3
94.参见图5所示,本实施例提供了一种信息处理装置30,包括处理器31以及与其连接的存储器32,处理器31执行存储在存储器32上的计算机程序时实现如实施例1中的基于集群的数据库查询方法。图5显示的电子设备30仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
95.电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
96.总线33包括数据总线、地址总线和控制总线。
97.存储器32可以包括易失性存储器,例如随机存取存储器(ram)321和/或高速缓存存储器322,还可以进一步包括只读存储器(rom)323。
98.存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
99.处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1中的投屏系统切换方法。
100.电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器36通过总线33与模型生成的设备30的其它模块通信。可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
101.应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模
块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
102.实施例4
103.本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现实施例1中的基于集群的数据库查询方法中的步骤。
104.其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
105.在可能的实施方式中,本公开还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行实现实施例1中的基于集群的数据库查询方法中的步骤。
106.其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开的程序代码,程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
107.虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1