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

一种非结构化数据库中历史数据的清理方法及终端与流程

2022-03-01 18:17:51 来源:中国专利 TAG:
1.本发明涉及数据库
技术领域
:,特别涉及一种非结构化数据库中历史数据的清理方法及终端。
背景技术
::2.在大数据时代,流行使用分布式非结构化数据库来存储海量数据,如hbase,cassandra和mongodb。分布式非结构化数据库进行更新操作的时候是重新插入一条新的数据来代替在原来数据上修改,而删除操作则是会插入一条一模一样的新的数据,但是该条数据会标记成delete状态。由于新的数据的写入时间会大于老的数据,这样读取的时候,判断时间戳就可以取出最新的数据了。正因为这样的删除和更新机制,如果后面没有一个对于过期数据处理的机制,会导致过期数据越来越大,因此后面的数据库会根据一定的策略自动触发压缩,压缩过程中的就顺便对于标记为删除的数据,直接删除。对于不同时间戳的多条数据,根据其保存的最大版本数据,这样可以在压缩过程中释放出部分磁盘空间。3.但是大部分业务在使用过程中并不知道数据该什么时候删除,随着时间的推移这类没有执行删除的数据会越来越多,需要一个手段把这类没有执行删除操作的数据及时清理掉。所以一般情况下,应用层为了便于归档过期数据,需要在数据模型上使用分表设计,这带来了性能上的开销,原本一次业务请求只需要一次查询,分表之后可能需要有两次或以上查询,增加了数据库的负载,同时也增加了业务复杂度。另一种方式是给数据设置过期时间,也就是给数据打一个墓碑,告诉系统该数据已过期可清理,但是如果墓碑过多,会造成应用查询的时候读取多个版本,造成严重的性能损耗。技术实现要素:4.本发明所要解决的技术问题是:提供一种非结构化数据库中历史数据的清理方法及终端,以灵活清理数据且不产生墓碑。5.为了解决上述技术问题,本发明采用的技术方案为:6.一种非结构化数据库中历史数据的清理方法及终端,包括:7.s1.接收并存储每一类待归档数据的有效生命周期;8.s2.接收待归档数据的压缩请求,根据所述待归档数据的写入时间判断所述待归档数据的有效生命周期是否过期,若是,删除所述待归档数据,并对未过期的待归档数据进行压缩归档。9.本发明的有益效果在于:一种非结构化数据库中历史数据的清理方法及终端,服务端接收并存储每一类待归档数据的有效生命周期,接收待归档数据的压缩请求,根据待归档数据的写入时间判断待归档数据的有效生命周期是否过期,若是,删除待归档数据,并对未过期的待归档数据进行压缩归档,由此,在数据合并过程中,利用非结构化数据库原本就存在的写入时间来删除过期数据,以灵活的根据设置的有效生命周期来清理数据,同时,无需对每个数据都打一个墓碑,以避免产生墓碑。附图说明10.图1为本发明实施例的一种非结构化数据库中历史数据的清理方法的主要流程图;11.图2为本发明实施例的一种非结构化数据库中历史数据的清理方法的具体流程图;12.图3为本发明一种非结构化数据库中历史数据的清理方终端的结构示意图;13.标号说明:14.1.一种非结构化数据库中历史数据的清理终端;2.存储器;3.处理器具体实施方式15.为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。16.如图1和图2所示,本发明提供一种非结构化数据库中历史数据的清理方法,包括:17.s1.接收并存储每一类待归档数据的有效生命周期;18.s2.接收待归档数据的压缩请求,根据所述待归档数据的写入时间判断所述待归档数据的有效生命周期是否过期,若是,则删除已过期的所述待归档数据,否则存储未过期的待归档数据。19.从上述描述可知,本发明的有益效果在于:服务端接收并存储每一类待归档数据的有效生命周期,接收待归档数据的压缩请求,根据待归档数据的写入时间判断待归档数据的有效生命周期是否过期,若是,删除待归档数据,并对未过期的待归档数据进行压缩归档,由此,在数据合并过程中,利用非结构化数据库原本就存在的写入时间来删除过期数据,以灵活的根据设置的有效生命周期来清理数据,同时,无需对每个数据都打一个墓碑,以避免产生墓碑。20.进一步地,所述步骤s1具体为:21.接收并存储每一个待归档文件的有效生命周期,所述待归档文件包括多行待归档数据;22.所述步骤s2具体为:23.接收待归档文件的压缩请求,根据所述待归档文件中每一行待归档数据的写入时间判断所述待归档数据的有效生命周期是否过期,若未过期,则将未过期的每一行待归档数据写入到有效数据文件中进行存储,直至所有待归档文件内的所有待归档数据均判断完毕,删除所述待归档文件。24.由上述描述可知,非结构化数据存储于文件当中,只需要对文件设置一个有效生命周期,而不需要对每一个数据设置一个有效生命周期,无需对每个数据都打一个墓碑,以避免产生墓碑。25.进一步地,所述步骤s2中接收待归档数据的压缩请求具体为:26.在当前处于业务低峰期时或是接收用户手动触发请求时,执行对待归档数据的压缩请求。27.由上述描述可知,在业务低峰期时或是接收用户手动触发请求进行对待归档数据的压缩操作,可以给系统运行减轻压力。28.进一步地,所述步骤s2中根据所述待归档数据的写入时间判断所述待归档数据的有效生命周期是否过期具体为:29.判断当前时间减去所述待归档数据的写入时间是否超过预先设置的有效生命周期。30.由上述描述可知,用判断当前时间减去所述待归档数据的写入时间来判断是否超过预先设置的有效生命周期的方法,来清除已超过有效生命周期的待归档数据,避免产生墓碑。31.进一步地,所述步骤s2中接收待归档数据的压缩请求之后还包括:32.删除已标记墓碑的待归档数据,合并内容相同的待归档数据。33.由上述描述可知,通过删除已标记墓碑的待归档数据,合并内容相同的待归档数据,从而释放出空间,让集群空间在一个稳定的水平不增长。34.如图3所示,本发明提供另一种一种非结构化数据库中历史数据的清理终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的第一计算机程序,所述处理器执行所述第一计算机程序时实现以下步骤:35.s1.接收并存储每一类待归档数据的有效生命周期;36.s2.接收待归档数据的压缩请求,根据所述待归档数据的写入时间判断所述待归档数据的有效生命周期是否过期,若是,则删除已过期的所述待归档数据,否则存储未过期的待归档数据。37.从上述描述可知,本发明的有益效果在于:服务端接收并存储每一类待归档数据的有效生命周期,接收待归档数据的压缩请求,根据待归档数据的写入时间判断待归档数据的有效生命周期是否过期,若是,删除待归档数据,并对未过期的待归档数据进行压缩归档,由此,在数据合并过程中,利用非结构化数据库原本就存在的写入时间来删除过期数据,以灵活的根据设置的有效生命周期来清理数据,同时,无需对每个数据都打一个墓碑,以避免产生墓碑。38.进一步地,所述步骤s1具体为:39.接收并存储每一个待归档文件的有效生命周期,所述待归档文件包括多行待归档数据;40.所述步骤s2具体为:41.接收待归档文件的压缩请求,根据所述待归档文件中每一行待归档数据的写入时间判断所述待归档数据的有效生命周期是否过期,若未过期,则将未过期的每一行待归档数据写入到有效数据文件中进行存储,直至所有待归档文件内的所有待归档数据均判断完毕,删除所述待归档文件。42.由上述描述可知,非结构化数据存储于文件当中,只需要对文件设置一个有效生命周期,而不需要对每一个数据设置一个有效生命周期,无需对每个数据都打一个墓碑,以避免产生墓碑。43.进一步地,所述步骤s2中接收待归档数据的压缩请求具体为:44.在当前处于业务低峰期时或是接收用户手动触发请求时,执行对待归档数据的压缩请求。45.由上述描述可知,在业务低峰期时或是接收用户手动触发请求进行对待归档数据的压缩操作,可以给系统运行减轻压力。46.进一步地,所述步骤s2中根据所述待归档数据的写入时间判断所述待归档数据的有效生命周期是否过期具体为:47.判断当前时间减去所述待归档数据的写入时间是否超过预先设置的有效生命周期。48.由上述描述可知,用判断当前时间减去所述待归档数据的写入时间来判断是否超过预先设置的有效生命周期的方法,来清除已超过有效生命周期的待归档数据,避免产生墓碑。49.进一步地,所述步骤s2中接收待归档数据的压缩请求之后还包括:50.删除已标记墓碑的待归档数据,合并内容相同的待归档数据。51.由上述描述可知,通过删除已标记墓碑的待归档数据,合并内容相同的待归档数据,从而释放出空间,让集群空间在一个稳定的水平不增长。52.请参照图1和2,本发明的实施例一为:53.一种非结构化数据库中历史数据的清理方法,包括:54.s1.接收并存储每一类待归档数据的有效生命周期;55.所述步骤s1具体为:56.接收并存储每一个待归档文件的有效生命周期,所述待归档文件包括多行待归档数据;57.非结构化数据库cassandra/hbase把所有操作都看成是添加的操作。不论是delete,update,add实际上都是添加一个新版本记录。因此,时间一长,就会有多个不同版本的row出现在不同的sstable中。那么在读的时候,就要读所有包含row的sstable,然后进行汇总。comapction操作就是在后台将这些sstable进行合并,从而消除重复的row,这样读操作时,读的ssatble就减少了,空间也释放了,从而提高读效率。58.在生产系统中,即时通信im、物联网iot习惯使用cassandra/hbase存储巨量的收件箱数据,但是收件箱的使用场景是只写不更新不删除,无法通过压缩的方式释放出来,时间久了,会产生巨大的数据块,从而使得cassandra/hbase服务器空间写满,按照目前的量,每3个月就要扩容一台2.4t的节点,每扩容一个节点需要1-2天的时间,扩容过程容易导致内网流量暴涨,从而影响集群的稳定性。现在生产集群已经从最初的3个节点扩容到9个节点,节点越多,运维难度越高。目前单个节点可以支持每秒2w/s的tps,按照现有的9个节点可以支撑18w/s,在计算能力上已经绰绰有余,因此无需增加节点造成计算能力浪费。59.为了节约服务器,避免扩容,可以考虑把旧的收件箱数据给清理掉,原本清理数据有两种方式。60.1:设置ttl,数据过期时间,但是会造成巨大的墓碑,导致集群负载偏高,运维难度增加,容易引发服务故障。61.2:分表,因为历史原因,im没有对收件箱进行分表,如果改造分表,需要投入巨大的开发量。62.在本实施例中,如图2所示,cassandra/hbase的column包含了一个写入时间(writetime),因此我们假设收件箱表包括有多个数据文件,例如为file1、file2和file3,并存储每一个数据文件的有效生命周期为2年。63.s2.接收待归档数据的压缩请求,根据所述待归档数据的写入时间判断所述待归档数据的有效生命周期是否过期,若是,则删除已过期的所述待归档数据,否则存储未过期的待归档数据。64.所述步骤s2具体为:65.接收待归档文件的压缩请求,根据所述待归档文件中每一行待归档数据的写入时间判断所述待归档数据的有效生命周期是否过期,若未过期,则将未过期的每一行待归档数据写入到有效数据文件中进行存储,直至所有待归档文件内的所有待归档数据均判断完毕,删除所述待归档文件。66.在本实施例中,所述步骤s2中接收待归档数据的压缩请求具体为:67.在当前处于业务低峰期时或是接收用户手动触发请求时,执行对待归档数据的压缩请求,删除已标记墓碑的待归档数据,合并内容相同的待归档数据,判断当前时间减去所述待归档数据的写入时间是否超过预先设置的有效生命周期,若未过期,则将未过期的每一行待归档数据写入到有效数据文件中进行存储,直至所有待归档文件内的所有待归档数据均判断完毕,删除所述待归档文件。68.即只需要在业务低峰期系统可以执行自动压缩操作,用户也可以随时进行手动压缩操作,这样在压缩合并多个文件块的过程中,把相同数据合并,把已标记墓碑数据删除,把超过有效生命周期的数据删除。在进行是否过期的判断中,判断数据文件file1、file2和file3内的每行数据的写入时间是否超过了预先给这些文件设置的有效生命周期2年,把没有超过2年的有效数据写入到有效数据文件file4,在所有待归档数据都判断完之后,将数据文件file1、file2和file3进行删除。69.由此,本实施例新增一种按照写入时间进行删除的压缩策略,这样既不会产生墓碑,又不需要分表就能完成历史无用数据的清理,只需要在业务低峰期执行下压缩操作,这样在压缩合并多个文件快的过程中就可以把指定时间的数据删除。从而释放出空间,让集群空间在一个稳定的水平不增长。70.本发明的实施例二为:71.一种非结构化数据库中历史数据的清理终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的第一计算机程序,所述处理器执行所述第一计算机程序时实现上述实施例一中的步骤。72.综上所述,本发明提供的一种非结构化数据库中历史数据的清理方法及终端,在数据合并过程中,利用非结构化数据库原本就存在的写入时间来和当前时间进行比对之后来判断是否删除过期数据,以灵活的根据设置的有效生命周期来清理数据,同时,只需要对一个数据文件设置一个有效生命周期,而不需要对每一个数据设置一个有效生命周期,以避免产生墓碑。另外,在业务低峰期时或是接收用户手动触发请求进行对待归档数据的压缩操作,可以给系统运行减轻压力;通过删除已标记墓碑的待归档数据,合并内容相同的待归档数据,从而释放出空间,让集群空间在一个稳定的水平不增长。73.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的
技术领域
:,均同理包括在本发明的专利保护范围内。当前第1页12当前第1页12
再多了解一些

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

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

相关文献