一种数据持久化方法、系统、设备以及介质与流程

文档序号:24121394发布日期:2021-03-02 11:40阅读:60来源:国知局
一种数据持久化方法、系统、设备以及介质与流程

[0001]
本发明涉及数据存储领域,具体涉及一种数据持久化方法、系统、设备以及存储介质。


背景技术:

[0002]
如图1所示,通常的性能数据采集和存储架构分为两种角色:master节点和agent节点,agent节点采集本节点性能数据,发送给master节点,master节点接收agent节点发来的数据,存储到内存数据库中。随着agent节点越来越多,master节点接收的数据越来越多,所有数据都存储在内存数据库中,会占用大量内存资源。同时master节点在单位时间内需要持久化的数据量越大,可能会超过数据库处理能力,造成数据持久化阻塞或数据丢失。
[0003]
如何实现大量数据的持久化成为一个急需解决的问题。


技术实现要素:

[0004]
有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种数据持久化方法,包括以下步骤:
[0005]
创建数据库,并将多个节点上报的数据写入所述数据库中;
[0006]
判断利用创建的所述数据库存储所述数据是否达到预设条件;
[0007]
响应于达到预设条件,创建新的数据库并将所述数据写入所述新的数据库中,并返回判断利用创建的所述数据库存储所述数据是否达到预设条件;
[0008]
响应于触发数据合并,将当前已创建的所有数据库中的数据合并到磁盘。
[0009]
在一些实施例中,还包括:
[0010]
响应于数据合并完成,删除所述当前已创建的所有数据库,并返回创建数据库的步骤。
[0011]
在一些实施例中,响应于达到预设条件,创建新的数据库并将所述数据写入所述新的数据库中,进一步包括:
[0012]
响应于当前用于存储数据的数据库持续存储数据的时长达到时长阈值,创建新的数据库并将所述数据写入所述新的数据库中。
[0013]
在一些实施例中,还包括:
[0014]
响应于接收到数据读取请求,确定待读取的数据的产生时间;
[0015]
根据所述产生时间确定所述待读取的数据对应的数据库;
[0016]
在所述对应的数据库中获取所述待读取的数据并反馈。
[0017]
在一些实施例中,响应于触发数据合并,将当前已创建的所有数据库中的数据合并到磁盘,进一步包括:
[0018]
响应于当前已创建的数据库的数量达到数量阈值且最后一个创建的数据库持续存储数据的时长达到时长阈值,触发数据合并。
[0019]
在一些实施例中,将当前已创建的所有数据库中的数据合并到磁盘,进一步包括:
[0020]
对当前已创建的所有数据库中的数据进行筛选、过滤以及压缩处理后保存到所述磁盘中。
[0021]
在一些实施例中,创建数据库,进一步包括:
[0022]
在内存中创建数据库。
[0023]
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种数据持久化系统,包括:
[0024]
创建模块,所述创建模块配置为创建数据库,并将多个节点上报的数据写入所述数据库中;
[0025]
判断模块,所述判断模块配置为判断利用创建的所述数据库存储所述数据是否达到预设条件;
[0026]
循环模块,所述循环模块配置为响应于达到预设条件,创建新的数据库并将所述数据写入所述新的数据库中,并返回判断利用创建的所述数据库存储所述数据是否达到预设条件;
[0027]
合并模块,所述合并模块配置为响应于触发数据合并,将当前已创建的所有数据库中的数据合并到磁盘。
[0028]
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:
[0029]
至少一个处理器;以及
[0030]
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种数据持久化方法的步骤。
[0031]
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种数据持久化方法的步骤。
[0032]
本发明具有以下有益技术效果之一:本发明提出的方案通过依次创建数据库来存储数据,不仅能够使得每一个数据库存储的数据少,进而提高数据库的读写速率,相比一个数据库也能减少进行数据合并的次数。
附图说明
[0033]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0034]
图1为现有技术中的数据持久化的流程框图;
[0035]
图2为本发明的实施例提供的数据持久化方法的流程示意图;
[0036]
图3为本发明的实施例提供的的数据持久化的流程框图;
[0037]
图4为本发明的实施例提供的数据持久化系统的结构示意图;
[0038]
图5为本发明的实施例提供的计算机设备的结构示意图;
[0039]
图6为本发明的实施例提供的计算机可读存储介质的结构示意图。
具体实施方式
[0040]
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
[0041]
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
[0042]
根据本发明的一个方面,本发明的实施例提出一种数据持久化方法,如图1所示,其可以包括步骤:
[0043]
s1,创建数据库,并将多个节点上报的数据写入所述数据库中;
[0044]
s2,判断利用创建的所述数据库存储所述数据是否达到预设条件;
[0045]
s3,响应于达到预设条件,创建新的数据库并将所述数据写入所述新的数据库中,并返回判断利用创建的所述数据库存储所述数据是否达到预设条件;
[0046]
s4,响应于触发数据合并,将当前已创建的所有数据库中的数据合并到磁盘。
[0047]
本发明提出的方案通过依次创建数据库来存储数据,不仅能够使得每一个数据库存储的数据少,进而提高数据库的读写速率,相比一个数据库也能减少进行数据合并的次数。
[0048]
在一些实施例中,步骤s1创建数据库,并将多个节点上报的数据写入所述数据库中,进一步包括:
[0049]
在内存中创建数据库。
[0050]
具体的,通常的性能数据采集和存储架构分为两种角色:master节点和agent节点,agent节点采集本节点性能数据,发送给master节点,master节点接收agent节点发来的数据,存储到在内存中创建的数据库中。
[0051]
在一些实施例中,响应于达到预设条件,创建新的数据库并将所述数据写入所述新的数据库中,进一步包括:
[0052]
响应于当前用于存储数据的数据库持续存储数据的时长达到时长阈值,创建新的数据库并将所述数据写入所述新的数据库中。
[0053]
具体的,当创建完数据库后,利用数据库存储agent向master上报的数据,若当前用于存储数据的数据库持续存储数据的时长达到时长阈值,例如达到1小时,则创建新的数据库并将接收到的数据利用新创建的数据库进行存储,之前的数据库停止存储数据。同样的,如果新创建的数据库持续存储数据的时长达到时长阈值,则再次创建新的数据库并将接收到的数据利用再次新创建的数据库进行存储,之前的数据库停止存储数据。例如,如图3所示,当master接收到数据后,存入内存数据库db1,并且此后直到下一小时开始,接收到的数据都存入db1。当新的一小时开始,master接收到的数据存入内存数据库db2,数据库db1不再存储数据。当又一新的一小时开始,master接收到的数据存入内存数据库db3,数据库db2不再存储数据。
[0054]
在一些实施例中,响应于触发数据合并,将当前已创建的所有数据库中的数据合并到磁盘,进一步包括:
[0055]
响应于当前已创建的数据库的数量达到数量阈值且最后一个创建的数据库持续存储数据的时长达到时长阈值,触发数据合并。
[0056]
在一些实施例中,还包括:
[0057]
响应于数据合并完成,删除所述当前已创建的所有数据库,并返回创建数据库的步骤。
[0058]
具体的,如果当前创建的数据库的数量达到设置的数量阈值,例如3个,且最后一个创建的数据库持续存储数据的时长达到时长阈值,也即此时总时长达到数量阈值*时长阈值,则触发数据合并。例如,maste可以每隔3小时将db1、db2、db3合并为一个数据库db,保存在磁盘上,同时将db1、db2、db3删除。
[0059]
需要说明的是,已创建的数据库可以执行清空操作而不是删除,但是由于清空已创建的数据库中的表相较于重新创建数据库而言较为繁琐,因此优先对已创建的数据库进行删除,并重新创建数据库以存储接收到的数据。
[0060]
在一些实施例中,还包括:
[0061]
响应于接收到数据读取请求,确定待读取的数据的产生时间;
[0062]
根据所述产生时间确定所述待读取的数据对应的数据库;
[0063]
在所述对应的数据库中获取所述待读取的数据并反馈。
[0064]
具体的,当接收到读取数据的请求,若数据此时还存储在当前已创建的多个数据库的其中一个数据库中,由于每一段时长均对应一个数据库,则可以根据该数据产生的时间,确定该数据位于哪个数据库,然后在该数据库中读取到该数据库以进行反馈。
[0065]
在一些实施例中,将当前已创建的所有数据库中的数据合并到磁盘,进一步包括:
[0066]
对当前已创建的所有数据库中的数据进行筛选、过滤以及压缩处理后保存到所述磁盘中。
[0067]
具体的,在进行数据合并的时,可以将每一个数据库中的数据进行筛选、压缩、过滤等处理,这样,最终得到的合并后的数据的大小可以小于每一个数据库中的数据相加的大小,进一步节约存储空间。
[0068]
本发明提出的方案,内存中只保存了预设时长的数据,极大减少内存占用。由于每个数据库较小,读写速度更快,单位时间内存储的数据更多,解决了由于数据过多导致的数据持久化阻塞或丢失问题。
[0069]
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种数据持久化系统400,如图4所示,包括:
[0070]
创建模块401,所述创建模块401配置为创建数据库,并将多个节点上报的数据写入所述数据库中;
[0071]
判断模块402,所述判断模块402配置为判断利用创建的所述数据库存储所述数据是否达到预设条件;
[0072]
循环模块403,所述循环模块403配置为响应于达到预设条件,创建新的数据库并将所述数据写入所述新的数据库中,并返回判断利用创建的所述数据库存储所述数据是否达到预设条件;
[0073]
合并模块404,所述合并模块404配置为响应于触发数据合并,将当前已创建的所有数据库中的数据合并到磁盘。
[0074]
在一些实施例中,还包括删除模块,所述删除模块配置为:
[0075]
响应于数据合并完成,删除所述当前已创建的所有数据库,并返回创建数据库的
步骤。
[0076]
在一些实施例中,所述循环模块403配置为:
[0077]
响应于当前用于存储数据的数据库持续存储数据的时长达到时长阈值,创建新的数据库并将所述数据写入所述新的数据库中。
[0078]
在一些实施例中,还包括数据读取模块,所述数据读取模块配置为:
[0079]
响应于接收到数据读取请求,确定待读取的数据的产生时间;
[0080]
根据所述产生时间确定所述待读取的数据对应的数据库;
[0081]
在所述对应的数据库中获取所述待读取的数据并反馈。
[0082]
在一些实施例中,所述合并模块404还配置为:
[0083]
响应于当前已创建的数据库的数量达到数量阈值且最后一个创建的数据库持续存储数据的时长达到时长阈值,触发数据合并。
[0084]
在一些实施例中,所述合并模块404还配置为:对当前已创建的所有数据库中的数据进行筛选、过滤以及压缩处理后保存到所述磁盘中。
[0085]
本发明提出的方案,内存中只保存了预设时长的数据,极大减少内存占用。由于每个数据库较小,读写速度更快,单位时间内存储的数据更多,解决了由于数据过多导致的数据持久化阻塞或丢失问题。
[0086]
基于同一发明构思,根据本发明的另一个方面,如图5所示,本发明的实施例还提供了一种计算机设备501,包括:
[0087]
至少一个处理器520;以及
[0088]
存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行如上的任一种数据持久化方法的步骤。
[0089]
基于同一发明构思,根据本发明的另一个方面,如图6所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序指令610,计算机程序指令610被处理器执行时执行如上的任一种数据持久化方法的步骤。
[0090]
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
[0091]
此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。
[0092]
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
[0093]
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
[0094]
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
[0095]
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0096]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0097]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1