数据库的分区表管理方法及装置与流程

文档序号:31663139发布日期:2022-09-27 23:26阅读:61来源:国知局
数据库的分区表管理方法及装置与流程

1.本发明涉及数据库技术领域,尤其涉及一种数据库的分区表管理方法及装置。


背景技术:

2.在现有技术中,数据仓库工具hive作为处理超大规模数据的利器,是基于数据库hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供结构化查询语言sql查询功能,能将sql语句转变成映射归约编程模型mapreduce任务来执行。
3.但是长时间的hive数据仓库建设及使用中,产生了大量的超过业务使用周期范围的过期数据,这些无价值的数据大量的占用着分布式存储系统hdfs的存储空间及mysql元数据的存储空间,造成了极大的浪费。


技术实现要素:

4.本发明实施例提供一种数据库的分区表管理方法及装置,以解决相关技术中数据库中存在着大量过期数据,导致数据库的存储空间浪费的问题。
5.为了解决上述技术问题,本发明是这样实现的:
6.第一方面,本发明实施例提供了一种数据库的分区表管理方法,所述方法包括:每隔第一预设周期对数据库中的分区表进行过期检测,其中,所述分区表对应一个或多个分区;若所述分区表中存在过期分区,则向所述分区表对应的管理员发送第一提示信息,并将所述过期分区写入至过期分区库,其中,所述过期分区的对应的日期与当前日期的差值大于第一预设期限;若所述过期分区写入至所述过期分区库的时间大于第二预设期限,则删除所述过期分区,并向所述管理员发送第二提示信息。
7.进一步地,在所述每隔第一预设周期对数据库中的分区表进行过期检测之前,还包括:在所述分区表启动生命周期管理的情况下,确定所述分区表的分区信息,其中,所述分区信息包括以下至少之一:所述分区表对应的所述第一预设期限、所述管理员以及所述管理员的联系方式;根据所述分区表信息建立所述分区表。
8.进一步地,所述若所述分区表中存在过期分区,则向所述分区表对应的管理员发送第一提示信息,并将所述过期分区写入至过期分区库,包括:若所述分区表中存在过期分区,则向所述分区表对应的管理员发送第一提示信息,其中,所述第一提示信息用于提示所述过期分区过期;将所述过期分区写入至所述过期分区库,将所述过期分区库中所述过期分区的状态设置为过期状态。
9.进一步地,在所述将所述过期分区写入至所述过期分区库,将所述过期分区库中所述过期分区的状态设置为过期状态之后,还包括:接收所述管理员发送的期限修改请求;将所述第一预设期限修改为第三预设期限,其中,所述第三预设期限大于所述第一预设期限;若所述过期分区对应的日期大于所述第三预设期限,则将所述过期分区库中所述过期
分区的状态设置为无效状态。
10.进一步地,在所述将所述过期分区写入至所述过期分区库,将所述过期分区库中所述过期分区的状态设置为过期状态之后,还包括:每隔第二预设周期对所述过期分区库中的过期分区进行检测;若所述过期分区库中过期分区的状态为过期状态,则将所述过期分区库中过期分区的状态设置为预清理状态,其中,所述预清理状态的过期分区无法被读写。
11.进一步地,若所述过期分区写入至所述过期分区库的时间大于第二预设期限,则删除所述过期分区,并向所述管理员发送第二提示信息,包括:若所述过期分区库中过期分区的状态为预清理状态,且所述过期分区写入至所述过期分区库的时间超过第二预设期限,则在所述数据库中删除所述过期分区;向所述管理员发送第二提示信息,其中,所述第二提示信息用于提示所述过期分区已被清理。
12.第二方面,本发明实施例另外提供了一种数据库的分区表管理装置,所述装置包括:检测模块,用于每隔第一预设周期对数据库中的分区表进行过期检测,其中,所述分区表对应一个或多个分区;第一处理模块,用于若所述分区表中存在过期分区,则向所述分区表对应的管理员发送第一提示信息,并将所述过期分区写入至过期分区库,其中,所述过期分区的对应的日期与当前日期的差值大于第一预设期限;第二处理模块,用于若所述过期分区写入至所述过期分区库的时间大于第二预设期限,则删除所述过期分区,并向所述管理员发送第二提示信息。
13.进一步地,所述第一处理模块包括:发送单元,用于若所述分区表中存在过期分区,则向所述分区表对应的管理员发送第一提示信息,其中,所述第一提示信息用于提示所述过期分区过期;第一处理单元,用于将所述过期分区写入至所述过期分区库,将所述过期分区库中所述过期分区的状态设置为过期状态。
14.进一步地,还包括:接收单元,用于在所述将所述过期分区写入至所述过期分区库,将所述过期分区库中所述过期分区的状态设置为过期状态之后,接收所述管理员发送的期限修改请求;第二处理单元,用于将所述第一预设期限修改为第三预设期限,其中,所述第三预设期限大于所述第一预设期限;第三处理单元,用于若所述过期分区对应的日期大于所述第三预设期限,则将所述过期分区库中所述过期分区的状态设置为无效状态。
15.进一步地,还包括:检测单元,用于在所述将所述过期分区写入至所述过期分区库,将所述过期分区库中所述过期分区的状态设置为过期状态之后,每隔第二预设周期对所述过期分区库中的过期分区进行检测;第四处理单元,用于若所述过期分区库中过期分区的状态为过期状态,则将所述过期分区库中过期分区的状态设置为预清理状态,其中,所述预清理状态的过期分区无法被读写。
16.第三方面,本发明实施例另外提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如前第一方面所述的数据库的分区表管理方法的步骤。
17.第四方面,本发明实施例另外提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前第一方面所述的数据库的分区表管理方法的步骤。
18.在本发明实施例中,每隔第一预设周期对数据库中的分区表进行过期检测,其中,
分区表对应一个或多个分区;若分区表中存在过期分区,则向分区表对应的管理员发送第一提示信息,并将过期分区写入至过期分区库,其中,过期分区的对应的日期与当前日期的差值大于第一预设期限;若过期分区写入至过期分区库的时间大于第二预设期限,则删除过期分区,并向管理员发送第二提示信息。每隔预设周期对数据库中的分区表进行过期检测,在存在过期分区时向管理员发送第一提示信息,并将过期分区写入至过期分区库,在过期分区写入至过期分区库大于第二预设期限的情况下,删除过期分区,实现了基于生命周期对数据库中分区表对应的分区进行管理,定时清理过期分区以避免数据库空间浪费。进而解决了相关技术中相关技术中数据库中存在着大量过期数据,导致数据库的存储空间浪费的问题。
19.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
20.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1是本发明实施例中的一种数据库的分区表管理方法的流程示意图;
22.图2是本发明实施例中的一种数据管理系统的示意图;
23.图3是本发明实施例中的又一种数据库的分区表管理方法的流程示意图;
24.图4是本发明实施例中的一种数据库的分区表管理装置的结构示意图。
具体实施方式
25.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
26.实施例一
27.根据本发明实施例,提供了一种数据库的分区表管理方法,如图1所示,该方法具体可以包括以下步骤:
28.s102,每隔第一预设周期对数据库中的分区表进行过期检测,其中,分区表对应一个或多个分区;
29.s104,若分区表中存在过期分区,则向分区表对应的管理员发送第一提示信息,并将过期分区写入至过期分区库,其中,过期分区的对应的日期与当前日期的差值大于第一预设期限;
30.s106,若过期分区写入至过期分区库的时间大于第二预设期限,则删除过期分区,并向管理员发送第二提示信息。
31.在本实施例中,数据库包括但不限于分布式数据库hdfs,本实施例中,不对数据库
的数据库系统以及规格进行限定。
32.在本实施例中,每个分区表对应一个或多个分区,分区表为数据库中数据的索引或目录,分区为数据库中部分数据的集合,每个分区存在着对应的日期,例如,分区的创建日期、写入日期等。
33.此外,每个分区表对应一个或多个管理员,且绑定有一个或多个管理员的联系方式,用于根据管理员的联系方式向管理员发送或推送提示信息。其中,联系方式包括但不限于管理员账号id、电子邮箱、电话号码以及社交账号等。
34.在本实施例中,每隔第一预设周期对数据库中的分区表进行过期检测,检测分区表对应的分区中是否存在过期分区,其中,若分区表对应的生命周期超过第一预设期限,则确定该分区为过期分区。第一预设周期可以根据实际需求进行设定,本实施例中对此不做限定。
35.在本实施例中,过期分区的日期包括但不限于分区的读写日期、存储日期等日期,其中,读写日期为对分区内数据进行读写后更新的日期,存储日期为分区写入至数据库中的日期。过期分区的日期具体可以根据实际经验进行设置,本实施例中对此不做限定。
36.在一个例子中,若分区表a的生命周期为第一预设期限,其中,第一预设期限为两年,当前日期为20200301,分区表a中分区b上一次被读写的读写日期为20170301,分区b的日期与当前日期的差值大于两年,则确定该分区b为过期分区。
37.在分区表中存在过期分区的情况下,向管理员发送第一提示信息,用于提示管理员分区表中存在过期分区。并且,将过期分区写入至过期分区库中。
38.在本实施例中,过期分区库中的分区均为过期分区,方便管理员或用户对其进行管理。当过期分区库中的过期分区的写入时间或存续时间大于第二预设期限的情况下,则删除过期分区以及过期分区中的过期数据,避免过期分区对数据库存储空间的占用浪费。
39.此外,本实施例中的第一预设期限以及第二预设期限可以根据实际经验进行设置,本实施例中对此不作限定。
40.在具体的应用场景中,通过数据管理系统实现对数据库中的过期数据的管理,如图2所示,数据管理系统20包括生命周期初始化系统210、生命周期巡检系统220、生命周期告警系统230、数据预清理系统240以及过期数据清理系统250。其中,生命周期初始化系统210用于建立分区表;生命周期巡检系统220用于对分区表中的分区以及过期分区库中的数据进行定期巡检;生命周期告警系统230用于向管理员告警,基于管理员的联系方式向管理员发送提示信息;数据预清理系统240用于对过期分区库中的过期分区以及过期数据进行限制或控制;过期数据清理系统250用于清理过期分区,删除过期数据。
41.需要说明的是,通过本实施例,每隔第一预设周期对数据库中的分区表进行过期检测,其中,分区表对应一个或多个分区;若分区表中存在过期分区,则向分区表对应的管理员发送第一提示信息,并将过期分区写入至过期分区库,其中,过期分区的对应的日期与当前日期的差值大于第一预设期限;若过期分区写入至过期分区库的时间大于第二预设期限,则删除过期分区,并向管理员发送第二提示信息。每隔预设周期对数据库中的分区表进行过期检测,在存在过期分区时向管理员发送第一提示信息,并将过期分区写入至过期分区库,在过期分区写入至过期分区库大于第二预设期限的情况下,删除过期分区,实现了基于生命周期对数据库中分区表对应的分区进行管理,定时清理过期分区以避免数据库空间
浪费。进而解决了相关技术中相关技术中数据库中存在着大量过期数据,导致数据库的存储空间浪费的问题。
42.可选地,在本实施例,在每隔第一预设周期对数据库中的分区表进行过期检测之前,还包括但不限于:在分区表启动生命周期管理的情况下,确定分区表的分区信息,其中,分区信息包括以下至少之一:分区表对应的第一预设期限、管理员以及管理员的联系方式;根据分区表信息建立分区表。
43.具体地,在本实施例中,首先确定分区表是否启动生命周期管理,其中,启动生命周期管理,表示可以根据分区的存储时间对分区表中的分区进行管理;若不启动生命周期管理,则认为分区表对应分区不需要根据时限进行管理。
44.接下来,获取建立分区表的管理员以及管理员的联系方式,生命周期(即第一预设期限)等,根据分区表信息生成分区的索引或目录,建立分区表。
45.在一个例子中,通过数据管理系统来实现对数据库中的过期数据的管理,具体地,数据管理系统包括数据生命周期初始化系统。通过数据生命周期初始化系统的统一建表页面进行分区表的建表,并在建表时填写相关必填信息,主要包含以下必填项:1.当前分区表是否启用生命周期管理;2.存储周期(单位精确到以天为单位);3.分区表的管理员;4.管理员邮箱等。此部分必填信息将会存入数据管理系统的预设数据库内,以便后续对数据进行检测。
46.通过上述实施例,在分区表启动生命周期管理的情况下,确定分区表的分区信息,根据分区表信息建立分区表,以实现根据生命周期对分区表中的分区进行管理,避免存储空间的浪费。
47.可选地,在本实施例,若分区表中存在过期分区,则向分区表对应的管理员发送第一提示信息,并将过期分区写入至过期分区库,包括但不限于:若分区表中存在过期分区,则向分区表对应的管理员发送第一提示信息,其中,第一提示信息用于提示过期分区过期;将过期分区写入至过期分区库,将过期分区库中过期分区的状态设置为过期状态。
48.当分区表对应的分区存在过期分区时,则分区表对应的管理员发送第一提示信息,该第一提示信息用于提示归属于管理员的分区表存在过期分区,以提示管理员对过期分区进行处理。并且,将过期分区写入职过期分区库,并将过期分区库中过期分区的状态设置为过期状态。
49.仍以上述示例的数据管理系统为例进行说明,通过数据管理系统来实现对数据库中的过期数据的管理,具体地,数据管理系统还包括生命周期巡检系统以及生命周期告警系统;生命周期巡检系统每月定时对hive库内的所有分区表进行扫描,当发现当前分区表启用生命周期管理,并且下属的日期分区中存在小于第一预设期限时,其中第一预设期限为当前日期减去生命周期库中指定的表存储周期后得到的日期值,则将此部分分区视为过期分区,分区内数据视为过期数据,并将当前表的这部分分区写入到过期分区库中,并设定分区状态为“过期”,并且通过生命周期告警系统,对过期分区所属表的归属人发出分区预清理的邮件通知。
50.通过上述示例,若分区表中存在过期分区,则向分区表对应的管理员发送第一提示信息,将过期分区写入至过期分区库,将过期分区库中过期分区的状态设置为过期状态,以实现通过提示信息及时对管理员进行提醒或告警。
51.可选地,在本实施例中,在将过期分区写入至过期分区库,将过期分区库中过期分区的状态设置为过期状态之后,还包括但不限于:接收管理员发送的期限修改请求;将第一预设期限修改为第三预设期限,其中,第三预设期限大于第一预设期限;若过期分区对应的日期大于第三预设期限,则将过期分区库中过期分区的状态设置为无效状态。
52.具体地,在本实施例中,在过期分区库中存在过期分区时,向管理员发送第一提示信息之后,管理员根据第一提示信息向数据库发送期限修改请求,将分区表对应的第一预设期限修改为第三预设期限,其中,第三预设期限是大于第一预设期限的。例如,若第一预设期限为2年,第二预设期限为3年。若此时过期分区对应的存续日期小宇第三预设期限,则将过期分区库中过期分区的状态设置为无效状态,即过期分区未过期。此时,仍在过期分区库中保留过期分区,不从过期分区库中删除过期分区,避免对过期分区库的频繁读写。
53.仍以上述示例的数据管理系统为例进行说明,通过数据管理系统来实现对数据库中的过期数据的管理,具体地,当存在过期数据或过期分区的分区表的管理员收到邮件通知后,确定无法通过调整数据使用范围来避免使用过期数据时,需要管理员到数据生命周期管理系统进行相关分区表的第一预设期限的修改。管理员进行生命周期更新后,会对过期分区库中该分区表下的过期分区库中过期分区的状态设定为无效状态。
54.通过上述示例,接收管理员发送的期限修改请求;将第一预设期限修改为第三预设期限,将过期分区库中过期分区的状态设置为无效状态,实现了管理员对过期分区的快捷管理。
55.可选地,在本实施例,在将过期分区写入至过期分区库,将过期分区库中过期分区的状态设置为过期状态之后,还包括但不限于:每隔第二预设周期对过期分区库中的过期分区进行检测;若过期分区库中过期分区的状态为过期状态,则将过期分区库中过期分区的状态设置为预清理状态,其中,预清理状态的过期分区无法被读写。
56.具体地,在本实施例中,每隔第二预设周期对过期分区库中的过期分区进行检测,在将过期分区写入职过期分区之后,对于管理员没有进行调整的过期分区,在预设周期的检测过程中,若过期分区库中过期分区的状态为过期状态,则将过期分区库中过期分区的状态设置为预清理状态,则将过期分区库中过期分区的状态设置为预清理状态。需要说明的是,第二预设周期可以根据实际经验进行设置,本实施例中对此不做限定。
57.仍以上述示例的数据管理系统为例进行说明,通过数据管理系统来实现对数据库中的过期数据的管理,具体地,数据管理系统还包括数据预清理系统。
58.具体地,对于不需要调整的过期分区,数据预清理系统会每月定时扫描过期分区库,当发现有新增的过期分区时且状态为“过期”时,会对新增的过期分区对应的分布式数据库hdfs目录进行限制读写权限的操作,对过期分区对应的hdfs目录限制读写的期限默认为1个月(此处可以根据实际需要进行延长或者缩短),此阶段为过期数据预清理阶段,预清理阶段会记录该分区预清理开始时间到过期分区库中,并更新过期分区状态为预清理状态。
59.在过期分区的预清理状态的限制读写期间,当在数据库hive中使用到此部分限制读写的过期分区时,将因读取或者写入数据时过期分区无法读写,而导致过期分区的读写任务快速失败,确保开发人员能够及时的发现过期分区的数据异常,并根据实际业务需要调整数据使用范围或者增大建表时指定的分区表存活周期。
60.在上述例子中,对预清理状态的过期分区在hdfs权限层面进行了限制,并未实际清除过期分区对应的数据文件,所以当需要进行过期分区恢复时,只需要进行对应hdfs目录权限的修改即可恢复分区的正常使用。此时如果开发人员发现有部分表分区需要恢复时,仍然可以通过数据生命周期管理系统提交对应表生命周期修改的期限修改请求,进行分区目录权限的恢复,并且将过期分区库中该表对应的分区状态更新为“无效”,此次预设周期的巡检将不对该表下的分区进行处理。
61.通过上述示例,每隔第二预设周期对过期分区库中的过期分区进行检测;若过期分区库中过期分区的状态为过期状态,则将过期分区库中过期分区的状态设置为预清理状态,确保开发人员能够及时的发现过期分区的数据异常,并且保存了过期分区对应的数据不被误删。
62.可选地,在本实施例,若过期分区写入至过期分区库的时间超过第二预设期限,则删除过期分区,并向管理员发送第二提示信息,包括但不限于:若过期分区库中过期分区的状态为预清理状态,且过期分区写入至过期分区库的时间大于第二预设期限,则在数据库中删除过期分区;向管理员发送第二提示信息,其中,第二提示信息用于提示过期分区已被清理。
63.具体地,在本实施例中,若过期分区库中过期分区的状态为预清理状态,且过期分区写入至过期分区库的时间超过第二预设期限,若此时仍未接收到管理员发送的期限修改请求,则表示该过期分区内的数据为过期的,没有进行业务应用,由此则在数据库中对过期分区对应的数据以及过期分区进行物理删除,避免对数据库存储空间的占用。然后,向管理员发送第二提示信息,该第二提示信息用于提示过期分区已经被清理,过期数据已经被删除,。
64.仍以上述示例的数据管理系统为例进行说明,通过数据管理系统来实现对数据库中的过期数据的管理,数据管理系统还包括过期数据清理系统。通过过期数据清理系统每月扫描过期分区库,将当前状态为预清理状态(即限制读写状态或无法读写状态),且预清理状态的开始时间距当前日期超过一个月的分区对应的分布式存储系统hdfs的目录进行物理删除,并同步删除hive中过期分区相关的元数据。过期分区清理操作完成后,过期数据被物理删除,存储空间被真正释放,被删除的数据将无法恢复,并且生命周期告警系统会向过期分区所属表的管理员发出分区删除确认通知。
65.通过上述示例,若过期分区库中过期分区的状态为预清理状态,且过期分区写入至过期分区库的时间超过第二预设期限,则在数据库中删除过期分区;向管理员发送第二提示信息,及时对过期数据进行清理,避免对存储空间的浪费。
66.在本发明实施例中,每隔第一预设周期对数据库中的分区表进行过期检测,其中,分区表对应一个或多个分区;若分区表中存在过期分区,则向分区表对应的管理员发送第一提示信息,并将过期分区写入至过期分区库,其中,过期分区的对应的日期与当前日期的差值大于第一预设期限;若过期分区写入至过期分区库的时间大于第二预设期限,则删除过期分区,并向管理员发送第二提示信息。每隔预设周期对数据库中的分区表进行过期检测,在存在过期分区时向管理员发送第一提示信息,并将过期分区写入至过期分区库,在过期分区写入至过期分区库大于第二预设期限的情况下,删除过期分区,实现了基于生命周期对数据库中分区表对应的分区进行管理,定时清理过期分区以避免数据库空间浪费。进
而解决了相关技术中相关技术中数据库中存在着大量过期数据,导致数据库的存储空间浪费的问题。
67.实施例二
68.在一个具体实施例中,详细介绍本发明实施例提供的一种数据库的分区表管理方法,如图3所示,该方法具体可以包括以下步骤:
69.s301,在数据库中创建分区表;
70.具体地,开发人员创建分区表时,通过生命周期初始化系统的统一建表页面,选取是否开启表生命周期的自动化管理,如果开启,则必须填写表的生命周期信息,例如新建分区表test表,与业务人员商定的业务使用周期最大范围为两年,则此时可以设定test表的第一预设期限为730(单位:天)。如果不开启,则无需填写表的第一预设期限。建立分区表表时,还需要明确表管理员,管理员邮箱等信息。这些表的基础信息将被存储到生命周期管理系统的生命周期库中。
71.s302,每隔预设周期对分区表进行过期检测;
72.具体地,生命周期巡检系统每月定时扫描生命周期库。
73.s303,判断分区表是否存在过期分区;
74.具体地,若分区表中存在过期分区,跳转至s304,;若不存在过期分区,则每隔预设周期执行s302。
75.s304,将过期分区写入至过期分区库中;
76.具体地,在一个例子中,假设存在分区表tbl1,表下共有3个分区,分别为20200101,20210101,20220101,生命周期巡检系统扫描到test表下存在早于当前日期(假定为20220201)减去建表时指定表的生命周期730天之前(即20200202分区)的分区20200101,则生命周期巡检系统将tbl1表的20200101分区视为过期分区,生命周期巡检系统会将tbl1表的20200101分区写入过期分区库,并将tbl1表的20200101分区在过期分区库中的状态设定为“过期”,并且记录过期分区数据的写入时间。
77.s305,向管理员发送告警邮件;
78.具体地,巡检完成后,会启动邮件告警系统向tbl1表的管理员b发送告警邮件,通知管理员b,由管理员b来决定进行tbl1表的使用范围的修改。
79.s306,是否接收到管理员的期限修改请求;
80.具体地,若接收管理员发送的期限修改请求,跳转至s307;否则,跳转至s308。
81.s307,根据期限修改请求更新分区表的生命周期范围;
82.具体地,接收管理员的期限修改请求,通过生命周期管理系统进行tbl1表的生命周期范围的修改。其中,通过生命周期管理系统进行tbl1表的生命周期范围修改时,例如将第一预设期限修改为第三预设期限,并且,会设定过期分区库中tbl1表的状态为失效状态,本次巡检后续将不再对tbl1表下的分区进行处理。然后,跳转至s302。
83.s308,将过期分区库中的过期分区修改为预清理状态;
84.具体地,如果tbl1表不需要进行生命周期范围的修改,则过期分区预清理系统会扫描过期分区库,将状态为“过期”的分区(即tbl1表的20200101分区)对应的hdfs目录进行读写权限的限制,并且记录下预清理的开始时间,且更新分区状态为预清理状态。预清理状态维持时间默认为1个月,此状态相当于逻辑删除状态,当开发人员在hive中使用到此部分
限制读写的过期分区时,将因读取或者写入数据时分区权限不足导致任务失败,确保用到此部分过期分区的数据开发人员能够快速及时的发现异常并根据业务实际需要调整数据使用范围或者增大建表时指定的分区表存活周期。1个月后如果没有问题,过期分区清理系统会对预清理状态的分区进行物理清除。
85.s309,对过期分区库中预处理状态的过期分区库进行清理;
86.具体地,过期分区清理系统每月定时对过期分区库中的状态为“预处理”且预清理状态的开始时间距今超过一个月的分区进行处理,即如果tbl1表的20200101分区的预清理开始时间距今超过一个月,则本次清理系统会进行物理清理。清理主要包括两部分:1.对要清理的过期分区应的hdfs目录进行物理删除,进行hdfs空间的真正释放。2.删除hive中过期分区相关的元数据信息,进行hive元数据空间的释放。清理完成后,将此次过期分区库中的这部分清理完成的分区状态更新为完成状态。
87.s310,向管理员发送清理完成邮件。
88.具体地,过期分区清理系统完成清理后,会调用生命周期告警系统,对最终实际进行清除的表及分区进行通告,并且将此次操作记录进行归档保存,便于以后出现数据问题的溯源。
89.通过上述示例,每隔第一预设周期对数据库中的分区表进行过期检测,其中,分区表对应一个或多个分区;若分区表中存在过期分区,则向分区表对应的管理员发送第一提示信息,并将过期分区写入至过期分区库,其中,过期分区的对应的日期与当前日期的差值大于第一预设期限;若过期分区写入至过期分区库的时间大于第二预设期限,则删除过期分区,并向管理员发送第二提示信息。每隔预设周期对数据库中的分区表进行过期检测,在存在过期分区时向管理员发送第一提示信息,并将过期分区写入至过期分区库,在过期分区写入至过期分区库大于第二预设期限的情况下,删除过期分区,实现了基于生命周期对数据库中分区表对应的分区进行管理,定时清理过期分区以避免数据库空间浪费。进而解决了相关技术中相关技术中数据库中存在着大量过期数据,导致数据库的存储空间浪费的问题。
90.实施例三
91.详细介绍本发明实施例提供的一种数据库的分区表管理装置。
92.参照图4,示出了本发明实施例中一种数据库的分区表管理装置的结构示意图。
93.本发明实施例的数据库的分区表管理装置包括:检测模块40,第一处理模块42以及第二处理模块44。
94.下面分别详细介绍各模块的功能以及各模块之间的交互关系。
95.检测模块40,用于每隔第一预设周期对数据库中的分区表进行过期检测,其中,所述分区表对应一个或多个分区;
96.第一处理模块42,用于若所述分区表中存在过期分区,则向所述分区表对应的管理员发送第一提示信息,并将所述过期分区写入至过期分区库,其中,所述过期分区的对应的日期与当前日期的差值大于第一预设期限;
97.第二处理模块44,用于若所述过期分区写入至所述过期分区库的时间大于第二预设期限,则删除所述过期分区,并向所述管理员发送第二提示信息。
98.可选地,在本实施例中,所述第一处理模块42包括:
99.发送单元,用于若所述分区表中存在过期分区,则向所述分区表对应的管理员发送第一提示信息,其中,所述第一提示信息用于提示所述过期分区过期;
100.第一处理单元,用于将所述过期分区写入至所述过期分区库,将所述过期分区库中所述过期分区的状态设置为过期状态。
101.可选地,在本实施例中,还包括:
102.接收单元,用于在所述将所述过期分区写入至所述过期分区库,将所述过期分区库中所述过期分区的状态设置为过期状态之后,接收所述管理员发送的期限修改请求;
103.第二处理单元,用于将所述第一预设期限修改为第三预设期限,其中,所述第三预设期限大于所述第一预设期限;
104.第三处理单元,用于若所述过期分区对应的日期大于所述第三预设期限,则将所述过期分区库中所述过期分区的状态设置为无效状态。
105.可选地,在本实施例中,还包括:
106.检测单元,用于在所述将所述过期分区写入至所述过期分区库,将所述过期分区库中所述过期分区的状态设置为过期状态之后,每隔第二预设周期对所述过期分区库中的过期分区进行检测;
107.第四处理单元,用于若所述过期分区库中过期分区的状态为过期状态,则将所述过期分区库中过期分区的状态设置为预清理状态,其中,所述预清理状态的过期分区无法被读写。
108.而且,在本发明实施例中,每隔第一预设周期对数据库中的分区表进行过期检测,其中,分区表对应一个或多个分区;若分区表中存在过期分区,则向分区表对应的管理员发送第一提示信息,并将过期分区写入至过期分区库,其中,过期分区的对应的日期与当前日期的差值大于第一预设期限;若过期分区写入至过期分区库的时间大于第二预设期限,则删除过期分区,并向管理员发送第二提示信息。每隔预设周期对数据库中的分区表进行过期检测,在存在过期分区时向管理员发送第一提示信息,并将过期分区写入至过期分区库,在过期分区写入至过期分区库大于第二预设期限的情况下,删除过期分区,实现了基于生命周期对数据库中分区表对应的分区进行管理,定时清理过期分区以避免数据库空间浪费。进而解决了相关技术中相关技术中数据库中存在着大量过期数据,导致数据库的存储空间浪费的问题。
109.实施例四
110.优选的,本发明实施例还提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的数据库的分区表管理方法的步骤。
111.可选地,在本实施例中,存储器被设置为存储用于执行以下步骤的程序代码:
112.s1,每隔第一预设周期对数据库中的分区表进行过期检测,其中,所述分区表对应一个或多个分区;
113.s2,若所述分区表中存在过期分区,则向所述分区表对应的管理员发送第一提示信息,并将所述过期分区写入至过期分区库,其中,所述过期分区的对应的日期与当前日期的差值大于第一预设期限;
114.s3,若所述过期分区写入至所述过期分区库的时间大于第二预设期限,则删除所
述过期分区,并向所述管理员发送第二提示信息。
115.可选地,本实施例中的具体示例可以参考上述实施例1中所描述的示例,本实施例在此不再赘述。
116.实施例五
117.本发明的实施例还提供了一种可读存储介质。可选地,在本实施例中,上述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如实施例1所述的数据库的分区表管理方法步骤。
118.可选地,在本实施例中,可读存储介质被设置为存储用于执行以下步骤的程序代码:
119.s1,每隔第一预设周期对数据库中的分区表进行过期检测,其中,所述分区表对应一个或多个分区;
120.s2,若所述分区表中存在过期分区,则向所述分区表对应的管理员发送第一提示信息,并将所述过期分区写入至过期分区库,其中,所述过期分区的对应的日期与当前日期的差值大于第一预设期限;
121.s3,若所述过期分区写入至所述过期分区库的时间大于第二预设期限,则删除所述过期分区,并向所述管理员发送第二提示信息。
122.可选地,可读存储介质还被设置为存储用于执行上述实施例1中的方法中所包括的步骤的程序代码,本实施例中对此不再赘述。
123.可选地,在本实施例中,上述可读存储介质可以包括但不限于:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
124.可选地,本实施例中的具体示例可以参考上述实施例1中所描述的示例,本实施例在此不再赘述。
125.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
126.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
127.上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
128.本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各
示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
129.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
130.在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
131.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
132.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
133.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
134.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1