数据库管理方法及系统与流程
- 国知局
- 2024-10-21 14:54:08
本技术涉及数据库,特别涉及一种数据库管理方法及系统。
背景技术:
1、随着大数据时代的到来,数据的使用量成倍增长,通过数据库对数据进行管理是一种有效的数据管理方式。例如,通过数据库对数据的管理包括:通过数据库记录数据、基于数据库提供数据的查询服务等。
2、通常地,数据库通过数据库分片(shard)记录数据。不同的数据库分片用于存储具有不同属性的数据。例如,对于采用分布式实现的时序数据库,该时序数据库包括多个分区节点,每个分区节点包括多个数据库分片,同一分区节点中的多个数据库分片用于记录在不同时间范围内产生的数据。在每个数据库分片中,还记录有该数据库分片记录的数据的索引信息。
3、当索引信息指示用于产生数据的数据源时,由于不同数据库分片记录的数据可能来自相同的数据源,导致索引信息重复,造成磁盘和内存空间的浪费。
技术实现思路
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、可选地,第二时间范围的时长基于数据库的数据源的变化幅度确定。
38、可选地,记录目标数据的索引信息的索引分区,基于目标数据的产生时间确定。
39、可选地,数据库包括多个分区节点,每个分区节点包括多个数据分区,任一分区节点中多个数据分区的时间范围不同。
40、可选地,多个分区节点具有第一时间范围相同的数据分区。
41、可选地,分区节点还用于在其数据分区中数据的存储时长超过第一时长阈值时,对数据分区中的数据执行过期操作。
42、可选地,分区节点还用于在其索引分区中索引信息的存储时长超过第二时长阈值时,对索引分区中的索引信息执行过期操作。
43、可选地,数据分区包括多个数据文件,数据分区使用数据文件记录数据,分区节点还用于:当任一数据分区中两个或两个以上数据文件满足第一触发条件时,预估将两个或两个以上数据文件合并后的预估容量;当预估容量小于容量阈值时,将两个或两个以上数据文件合并。
44、可选地,数据文件记录指定时间范围内产生的数据,第一触发条件包括以下一个或多个:记录任一时间范围内产生的数据的数据文件的总数大于第一个数阈值;记录任一时间范围内产生的数据的数据文件未被写入数据的第一时长大于第三时长阈值;记录任意两个相邻时间范围内产生的数据的数据文件的总数小于第二个数阈值。
45、可选地,第一触发条件还包括:两个或两个以上数据文件均没有正在参与合并。
46、可选地,将两个或两个以上数据文件合并,包括:在任一数据分区中,新建一个数据文件;将两个或两个以上数据文件记录的数据,写入新建的数据文件中。
47、可选地,分区节点还用于:当共用任一索引分区的两个或两个以上数据分区满足第二触发条件时,将两个或两个以上数据分区合并。
48、可选地,第二触发条件包括以下一个或多个:两个或两个以上数据分区中至少一个未被写入数据的第二时长大于第四时长阈值;两个或两个以上数据分区中数据文件的总数小于第三个数阈值。
49、可选地,第二触发条件还包括:两个或两个以上数据分区均没有正在参与合并。
50、可选地,将两个或两个以上数据分区合并,包括:将两个或两个以上数据分区中一个数据分区的索引路径,作为合并后的数据分区的索引路径;将两个或两个以上数据分区中其他数据分区中的数据文件,移动至一个数据分区中,并将其他数据分区的索引路径修改为一个数据分区的索引路径。
51、可选地,分区节点包括一个或多个主分区,每个主分区包括多个数据分区和多个索引分区,任一索引分区用于记录任一主分区中多个数据分区中部分记录的数据的索引信息,分区节点还用于:当任一主分区中两个或两个以上索引分区满足第三触发条件时,将两个或两个以上索引分区合并。
52、可选地,第三触发条件包括以下一个或多个:索引数据记录在两个或两个以上索引分区中的数据分区的总数小于第四个数阈值;共用两个或两个以上索引分区中至少一个的数据分区已经过合并。
53、可选地,第三触发条件还包括:两个或两个以上索引分区均没有正在参与合并。
54、可选地,将两个或两个以上索引分区合并,包括:在两个或两个以上索引分区中的任一索引分区中,新建一个索引文件;将两个或两个以上索引分区合并前的索引文件记录的索引信息,写入新建的索引文件中,并在存在重复的索引信息时,去除重复的索引信息。
55、第三方面,本技术提供了一种计算设备,包括存储器和处理器,存储器存储有程序指令,处理器运行程序指令以执行本技术第一方面以及其任一种可能的实现方式中提供的方法。
56、第四方面,本技术提供了一种计算设备集群,包括多个计算设备,多个计算设备包括多个处理器和多个存储器,多个存储器中存储有程序指令,多个处理器运行程序指令,使得计算设备集群执行本技术第一方面以及其任一种可能的实现方式中提供的方法。
57、第五方面,本技术提供了一种计算机可读存储介质,该计算机可读存储介质为非易失性计算机可读存储介质,该计算机可读存储介质包括程序指令,当程序指令在计算设备上运行时,使得计算设备执行本技术第一方面以及其任一种可能的实现方式中提供的方法。
58、第六方面,本技术提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行本技术第一方面以及其任一种可能的实现方式中提供的方法。
本文地址:https://www.jishuxx.com/zhuanli/20241021/319714.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表