数据归档的方法、装置和计算机可读存储介质制造方法及图纸

技术编号:23431810 阅读:25 留言:0更新日期:2020-02-25 13:09
本公开涉及一种数据归档的方法、装置和计算机可读存储介质,涉及数据库技术领域。本公开的方法包括:获取用户输入的归档规则,归档规则包括:待归档数据的地址信息和待归档数据的范围,范围包括时间范围或标识范围;将归档规则划分为多个子规则;根据每个子规则创建对应的归档任务,并将归档任务放入任务队列中;从任务队列中取出至少一个的归档任务,并执行取出的归档任务,以便对待归档数据进行归档。

Methods, devices and computer readable storage media for data archiving

【技术实现步骤摘要】
数据归档的方法、装置和计算机可读存储介质
本公开涉及数据库
,特别涉及一种数据归档的方法、装置和计算机可读存储介质。
技术介绍
随着互联网企业的快速发展,其后端数据库存储的数据和占据的磁盘空间越来越大。因此为了保证线上服务的高可用,需要及时清理冷数据(暂时不用的历史数据),从而释放线上数据库服务器的磁盘空间。目前,实现释放线上数据库的磁盘空间的做法基本就是靠DBA(DatabaseAdministrator,DBA)手动地把数据从线上数据库归档到线下数据库。
技术实现思路
专利技术人发现:目前数据归档方案是由DBA手动编写脚本执行的,而且每隔一段时间就需要重新编写和执行,归档效率低。本公开所要解决的一个技术问题是:提出一种自动化的数据归档方案,提高归档效率。根据本公开的一些实施例,提供的一种数据归档的方法,包括:获取用户输入的归档规则,归档规则包括:待归档数据的地址信息和待归档数据的范围,范围包括时间范围或标识范围;将归档规则划分为多个子规则;根据每个子规则创建对应的归档任务,并将归档任务放入任务队列中;从任务队列中取出至少一个的归档任务,并执行取出的归档任务,以便对待归档数据进行归档。在一些实施例中,将归档规则划分为多个子规则包括:根据归档规则创建规则划分任务,将规则划分任务放入任务队列中;从任务队列中取出规则划分任务,根据规则划分任务将归档规则划分为多个子规则;其中,在归档规则包括待归档数据的时间范围的情况下,按照预设时间长度,将待归档数据的时间范围划分为多个时间子范围,在归档规则包括待归档数据的标识范围的情况下,按照预设标识范围长度,将待归档数据的标识范围划分为多个标识子范围,以便形成子规则。在一些实施例中,归档任务包括:待归档数据的地址信息和待归档数据的子范围,子范围包括:时间子范围或标识子范围;从任务队列中取出至少一个的归档任务,并执行取出的归档任务包括:由至少两个任务执行单元分别从任务队列中取出一个归档任务,针对每个归档任务,根据待归档数据的地址信息从源数据库,获取与待归档数据的子范围相对应的待归档数据;在目标数据库中创建目标表,将获取的待归档数据存储到目标表中;将已存储到目标表中待归档数据对应的源数据库中的数据删除。在一些实施例中,获取与待归档数据的子范围相对应的待归档数据包括:每次根据源数据库的当前性能,确定本次待获取的待归档数据的数量;当前性能包括当前每秒处理事务数,当前CPU利用率,当前每秒内I/O操作的时间占比中至少一项;根据本次待获取的待归档数据的数量,获取相应数量的属于子范围的待归档数据。在一些实施例中,每次根据源数据库的当前性能,确定本次待获取的待归档数据的数量包括:将当前每秒处理事务数,当前CPU利用率,当前每秒内I/O操作的时间占比进行加权得到加权值;根据加权值与预设数量,确定本次待获取的待归档数据的数量。在一些实施例中,在目标数据库中创建目标表,将获取的待归档数据存储到目标表中包括:根据源数据库的标识、源表的标识以及欲存储的待归档数据的范围,确定目标表的标识;欲存储的待归档数据的范围包括:欲存储的待归档数据的时间范围或标识范围;根据欲存储的待归档数据的范围,将对应的获取的待归档数据存储到目标表中。在一些实施例中,将归档任务放入任务队列中包括:根据归档任务对应的子规则的状态标志位判断子规则对应的归档任务是否在被执行,如果未被执行,则将归档任务放入任务队列中;如果在被执行,则放弃将所述归档任务放入任务队列中。在一些实施例中,将归档任务放入任务队列中包括:根据预设调度速率和并行度将归档任务放入任务队列中;其中,并行度表示每次并行放入任务队列中的归档任务的数量。在一些实施例中,该方法还包括:确定任务队列中的未执行的归档任务的数量;在未执行的归档任务的数量超过阈值的情况下,降低创建归档任务和放入任务队列速率,或者,提高从任务队列中取出归档任务并执行的速率。在一些实施例中,该方法还包括:根据待归档数据的地址信息对应的源数据库的负载信息,调整并行度。在一些实施例中,将获取的待归档数据存储到目标表中包括:每次将获取的待归档数据存储到目标表之前,比对目标表与待归档数据的源表的结构,如果结构不一致,则根据源表的结构更新目标表的结构,再将获取的待归档数据存储到更新后的目标表。在一些实施例中,该方法还包括:显示归档规则,已归档的待归档数据的数量,归档速率中至少一项信息。根据本公开的另一些实施例,提供的一种数据归档的装置,包括:输入模块,用于获取用户输入的归档规则,归档规则包括:待归档数据的地址信息和待归档数据的范围,范围包括时间范围或标识范围;规则划分模块,用于将归档规则划分为多个子规则;任务管理模块,用于根据每个子规则创建对应的归档任务,并将归档任务放入任务队列中;归档模块,用于从任务队列中取出至少一个的归档任务,并执行取出的归档任务,以便对待归档数据进行归档。在一些实施例中,规则划分模块用于根据归档规则创建规则划分任务,将规则划分任务放入任务队列中;从任务队列中取出规则划分任务,根据规则划分任务将归档规则划分为多个子规则;其中,在归档规则包括待归档数据的时间范围的情况下,按照预设时间长度,将待归档数据的时间范围划分为多个时间子范围,在归档规则包括待归档数据的标识范围的情况下,按照预设标识范围长度,将待归档数据的标识范围划分为多个标识子范围,以便形成子规则。在一些实施例中,归档任务包括:待归档数据的地址信息和待归档数据的子范围,子范围包括:时间子范围或标识子范围;归档模块用于由至少两个任务执行单元分别从任务队列中取出一个归档任务,针对每个归档任务,根据待归档数据的地址信息从源数据库,获取与待归档数据的子范围相对应的待归档数据;在目标数据库中创建目标表,将获取的待归档数据存储到目标表中;将已存储到目标表中待归档数据对应的源数据库中的数据删除。在一些实施例中,归档模块用于每次根据源数据库的当前性能,确定本次待获取的待归档数据的数量;当前性能包括当前每秒处理事务数,当前CPU利用率,当前每秒内I/O操作的时间占比中至少一项;根据本次待获取的待归档数据的数量,获取相应数量的属于子范围的待归档数据。在一些实施例中,归档模块用于将当前每秒处理事务数,当前CPU利用率,当前每秒内I/O操作的时间占比进行加权得到加权值;根据加权值与预设数量,确定本次待获取的待归档数据的数量在一些实施例中,归档模块用于根据源数据库的标识、源表的标识以及欲存储的待归档数据的范围,确定目标表的标识;欲存储的待归档数据的范围包括:欲存储的待归档数据的时间范围或标识范围;根据欲存储的待归档数据的范围,将对应的获取的待归档数据存储到目标表中。在一些实施例中,任务管理模块用于根据归档任务对应的子规则的状态标志位判断子规则对应的归档任务是否在被执行,如果未被执行,则将归档任务放入任务队列中;如果在被执行,则放弃将所述归档任务放入任务队列中。在一些实施例中,任务管理模块用于根据预设调度速率和本文档来自技高网...

【技术保护点】
1.一种数据归档的方法,包括:/n获取用户输入的归档规则,所述归档规则包括:待归档数据的地址信息和所述待归档数据的范围,所述范围包括时间范围或标识范围;/n将所述归档规则划分为多个子规则;/n根据每个子规则创建对应的归档任务,并将所述归档任务放入任务队列中;/n从所述任务队列中取出至少一个的归档任务,并执行取出的归档任务,以便对所述待归档数据进行归档。/n

【技术特征摘要】
1.一种数据归档的方法,包括:
获取用户输入的归档规则,所述归档规则包括:待归档数据的地址信息和所述待归档数据的范围,所述范围包括时间范围或标识范围;
将所述归档规则划分为多个子规则;
根据每个子规则创建对应的归档任务,并将所述归档任务放入任务队列中;
从所述任务队列中取出至少一个的归档任务,并执行取出的归档任务,以便对所述待归档数据进行归档。


2.根据权利要求1所述的方法,其中,
所述将所述归档规则划分为多个子规则包括:
根据所述归档规则创建规则划分任务,将所述规则划分任务放入任务队列中;
从所述任务队列中取出所述规则划分任务,根据所述规则划分任务将所述归档规则划分为多个子规则;
其中,在所述归档规则包括所述待归档数据的时间范围的情况下,按照预设时间长度,将所述待归档数据的时间范围划分为多个时间子范围,在所述归档规则包括所述待归档数据的标识范围的情况下,按照预设标识范围长度,将所述待归档数据的标识范围划分为多个标识子范围,以便形成所述子规则。


3.根据权利要求1所述的方法,其中,
所述归档任务包括:所述待归档数据的地址信息和所述待归档数据的子范围,所述子范围包括:时间子范围或标识子范围;
所述从所述任务队列中取出至少一个的归档任务,并执行取出的归档任务包括:
由至少两个任务执行单元分别从所述任务队列中取出一个归档任务,针对每个归档任务,根据待归档数据的地址信息从源数据库,获取与所述待归档数据的子范围相对应的待归档数据;
在目标数据库中创建目标表,将获取的待归档数据存储到所述目标表中;
将已存储到目标表中待归档数据对应的所述源数据库中的数据删除。


4.根据权利要求3所述的方法,其中,
所述获取与所述待归档数据的子范围相对应的待归档数据包括:
每次根据所述源数据库的当前性能,确定本次待获取的待归档数据的数量;所述当前性能包括当前每秒处理事务数,当前CPU利用率,当前每秒内I/O操作的时间占比中至少一项;
根据本次待获取的待归档数据的数量,获取相应数量的属于所述子范围的待归档数据。


5.根据权利要求4所述的方法,其中,
所述每次根据所述源数据库的当前性能,确定本次待获取的待归档数据的数量包括:
将当前每秒处理事务数,当前CPU利用率,当前每秒内I/O操作的时间占比进行加权得到加权值;
根据所述加权值与预设数量,确定本次待获取的待归档数据的数量。


6.根据权利要求3所述的方法,其中,
所述在目标数据库中创建目标表,将获取的待归档数据存储到所述目标表中包括:
根据源数据库的标识、源表的标识以及欲存储的待归档数据的范...

【专利技术属性】
技术研发人员:程鹏兴高新刚肖盛锋赵越郭声永
申请(专利权)人:京东数字科技控股有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1