买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】数据库自动分区扩容的方法及装置_平安银行股份有限公司_201910440428.0 

申请/专利权人:平安银行股份有限公司

申请日:2019-05-24

公开(公告)日:2024-03-19

公开(公告)号:CN110321334B

主分类号:G06F16/21

分类号:G06F16/21

优先权:

专利状态码:有效-授权

法律状态:2024.03.19#授权;2021.02.23#实质审查的生效;2019.10.11#公开

摘要:本发明提供一种数据库自动分区扩容的方法及装置,其中该方法包括:在管理周期内,检测到当前分区所存入的数据量达到预设的阈值之后;获取当前分区对应的数据时间段和当前数据容量;筛选出与所述数据时间段对应的历史时间段的历史分区数据量;利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量;若所述预测数据量大于所述当前数据容量,对所述当前分区进行扩容。本发明数据库自动分区扩容的方法,采用预先建立的预测模型对当前分区的数据量进行提前预测,有利于得到准确的待预测数据量,并对当前分区进行针对性扩容。

主权项:1.一种数据库自动分区扩容的方法,其特征在于,所述方法包括:在管理周期内,检测到当前分区所存入的数据量达到预设的阈值之后;获取当前分区对应的数据时间段和当前数据容量;筛选出与所述数据时间段对应的历史时间段的历史分区数据量;利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量,包括:根据回归方程预测方法,对所述历史分区数据量进行拟合,确定拟合函数;将所述拟合函数作为分区数据量预测模型,将所述历史分区数据量输入所述分区数据量预测模型中,计算出所述当前分区对应的预测数据量;将所述当前分区的实际数据量输入所述分区数据量预测模型中,根据所述实际数据量修正所述分区数据量预测模型的拟合函数;根据加权移动平均法,基于所述历史分区数据量以及所述数据时间段的前一时间段的分区数据量,对所述预测数据量进行校正;所述加权移动平均法采用如下公式对所述预测数据量SJ_ST进行校正:SJ_ST=Ct+d×Ct-Ct-1+b×Cy1_t-Cy1_t-1+p×Cy2_t-Cy2_t-1;其中,Ct为当前分区的数据时间段t的预测数据量,Ct-1为数据时间段t的前一时间段t-1对应的分区数据量,Cy1_t为数据时间段t对应的前一年的同一时间段y1_t对应的分区数据量,Cy1_t-1为y1_t时间段的前一时间段y1_t-1对应的分区数据量,Cy2_t为数据时间段t的前两年的同一时间段y2_t对应的分区数据量,Cy2_t-1为y2_t时间段的前一时间段y2_t-1对应的分区数据量,d、b和p均为节假日因素校正因子,且d+b+p=1,d、b和p的权重根据节假日数量的多少自动进行调整,节假日数量越多,权重越大;当Ct=Ct-1=0、Cy1_t=Cy1_t-1≠0、Cy2_t=Cy2_t-1≠0时,采用下列公式计算当前时间段t的预测数据量SJ_SA:SJ_SA=Ct+d×Ct-1+b×Cy1_t+p×Cy2_t;当Ct=Ct-1=0、Cy1_t=Cy1_t-1≠0、Cy2_t=Cy2_t-1≠0时,也可采用下列公式计算当前时间段t的预测数据SJ_STA:SJ=SJ_STA=Ct=m×SJ_ST+n×SJ_SA;其中,m和n为综合折中算法中的加权系数,且m+n=1;若所述预测数据量大于所述当前数据容量,对所述当前分区进行扩容。

全文数据:数据库自动分区扩容的方法及装置技术领域本发明涉及数据库领域,尤其涉及一种数据库自动分区扩容的方法及装置。背景技术随着经济高速发展,数据的产生和更新加快,以账单表为例,账单表中的数据量,也随着消费的增长而增长。如今消费的影响因素多种多样,比如双11等大型购物节日,容易导致银行账单数量呈爆发式增长,从而影响数据库的稳定。因此,有必要对数据库分区的数据量进行提前预测,再通过预扩容的方式,缓解数据库的压力。发明内容为解决上述问题,特别是现有技术中无法对数据库分区的数据量进行提前预测的问题,本发明采用如下各方面的技术方案:第一方面,本发明提供一种数据库自动分区扩容的方法,所述方法包括:在管理周期内,检测到当前分区所存入的数据量达到预设的阈值之后;获取当前分区对应的数据时间段和当前数据容量;筛选出与所述数据时间段对应的历史时间段的历史分区数据量;利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量;若所述预测数据量大于所述当前数据容量,对所述当前分区进行扩容。优选地,所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量,包括:根据回归方程预测方法,对所述历史分区数据量进行拟合,确定拟合函数;将所述拟合函数作为分区数据量预测模型,将所述历史分区数据量输入所述分区数据量预测模型中,计算出所述当前分区对应的预测数据量。优选地,所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量之后,还包括:将所述当前分区的实际数据量输入所述分区数据量预测模型中,根据所述实际数据量修正所述分区数据量预测模型的拟合函数。优选地,所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量之后,还包括:根据加权移动平均法,基于所述历史分区数据量以及所述数据时间段的前一时间段的分区数据量,对所述预测数据量进行校正。优选地,所述加权移动平均法采用如下公式对所述预测数据量SJ_ST进行校正:SJ_ST=Ct+d×Ct-Ct-1+b×Cy1_t-Cy1_t-1+p×Cy2_t-Cy2_t-1;其中,Ct为当前分区的数据时间段t的预测数据量,Ct-1为数据时间段t的前一时间段t-1对应的分区数据量,Cy1_t为数据时间段t对应的前一年的同一时间段y1_t对应的分区数据量,Cy1_t-1为y1_t时间段的前一时间段y1_t-1对应的分区数据量,Cy2_t为数据时间段t的前两年的同一时间段y2_t对应的分区数据量,Cy2_t-1为y2_t时间段的前一时间段y2_t-1对应的分区数据量,d、b和p均为节假日因素校正因子,且d+b+p=1。优选地,所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量之后,还包括:若所述当前分区对应的预测数据量与所述当前分区的实际数据量之间的差值大于预设差值,对所述当前分区进行缩容。优选地,所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量之后,还包括:若所述预测数据量大于预设的当前分区最大容量,建立所述当前分区的附属分区,所述附属分区的容量根据所述预测数据量与所述当前分区最大容量的差值确定。第二方面,本发明提供一种数据库自动分区扩容的装置,所述装置包括:检测模块,用于在管理周期内,检测到当前分区所存入的数据量达到预设的阈值之后;获取模块,用于获取当前分区对应的数据时间段和当前数据容量;筛选模块,用于筛选出与所述数据时间段对应的历史时间段的历史分区数据量;测算模块,用于利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量;扩容模块,用于在所述预测数据量大于所述当前数据容量时,对所述当前分区进行扩容。第三方面,本发明提供一种计算机设备,包括存储介质和处理器,所述存储介质中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如上述第一方面所述数据库自动分区扩容的方法的步骤。第四方面,本发明提供一种计算机可读存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述第一方面所述的数据库自动分区扩容的方法的步骤。相对于现有技术,本发明的技术方案至少具备如下优点:1.本发明数据库自动分区扩容的方法,通过预先判断当前分区的数据量情况,并基于历史时间段的历史分区数据量,采用预先建立的预测模型对当前分区的数据量进行提前预测,有利于得到准确的待预测数据量,并对当前分区进行针对性扩容。2.本发明数据库自动分区扩容的方法,通过所述实际数据量修正所述分区数据量预测模型的拟合函数,从而建立了预测模型的自主学习过程,有利于保证预测模型的准确性。3.本发明数据库自动分区扩容的方法,还采用加权移动平均法,基于所述历史分区数据量以及所述数据时间段的前一时间段的分区数据量,对所述预测数据量进行校正,使得预测数据量更接近实际数据量。本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明图1为本发明数据库自动分区扩容方法的一种实施例流程框图;图2本发明数据库自动分区扩容装置一种实施例流程框图;图3为本发明一个实施例中计算机设备的内部结构框图。本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如S11、S12等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。本领域普通技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。本领域普通技术人员可以理解,除非另外定义,这里使用的所有术语包括技术术语和科学术语,具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参阅图1,本发明所提供的一种数据库自动分区扩容的方法,其中,具体的一种实施方式中,包括如下步骤:S11、在管理周期内,检测到当前分区所存入的数据量达到预设的阈值之后;S12、获取当前分区对应的数据时间段和当前数据容量;本发明实施例以账单表为例,一般为了方便管理,账单表数据按月分区,账单表包含了根据时间顺序生成的交易记录。预先建立数据库表的管理周期,管理周期以月份计为例,每月月初拉起定时任务,检测所述当前分区存入的数据量是否大于等于预设的阈值。此外还可以实时监测所述当前分区存入的数据量,一旦所述当前分区所存入的数据量达到预设的阈值之后,再进行后续步骤,对此可以根据从月初到月末的不同时间阶段设置一系列不同的预设阈值,以满足实时监测的要求。具体地,所述数据量包含所述当前分区的索引和数据。具体地,按月分区的账单表,对应的数据时间段为月份,也可以为星期、天等更短的时间段。当前数据容量为所述当前分区目前所能容纳的最大数据量。S13、筛选出与所述数据时间段对应的历史时间段的历史分区数据量;优选地,筛选出所述数据时间段对应的至少两个历史时间段的历史分区数据量。每个历史时间段的颗粒度均相同,比如,颗粒度为1个月。以数据时间段为2019年11月为例,筛选出的与所述数据时间段对应的历史时间段为2018年11月、2017年11月,以此类推。此外,该历史时间段可以根据实际需求进行选择,如当前数据时间段为某一天,则对应的历史时间段也为某一天。例如对应当前数据时间段为2019年11月11日,筛选出的与所述数据时间段对应的历史时间段为2018年11月11日、2017年11月11日,以此类推。本发明数据库自动分区扩容的方法,通过对历史时间段比如,去年、前年甚至更早年的历史分区数据量进行分析,预测当前分区所对应数据时间段的账单数据量可能达到的值,从而提前对分区进行扩容,有利于合理利用分区容量,并能够避免因数据量骤增给数据库带来压力的情况。S14、利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量;所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量,包括:根据回归方程预测方法,对所述历史分区数据量进行拟合,确定拟合函数;将所述拟合函数作为分区数据量预测模型,将所述历史分区数据量输入所述分区数据量预测模型中,计算出所述当前分区对应的预测数据量。具体地,预先设定多种回归方程,根据所述历史分区数据量确定出最符合所述历史分区数据量的目标回归方程,作为拟合函数。其中,所述预先设定的回归方程包括但不限于1次项、2次项、3次项、指数项等。进一步地,不同的数据时间段,对应不同的拟合函数。简单来说,不同月份有对应的拟合函数,比如针对11月份,有11月份的拟合函数。根据不同的数据时间段选择对应的拟合函数对预测数据量进行预测,从而得到更准确的待预测数据量。具体地,所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量之后,还包括:将所述当前分区的实际数据量输入所述分区数据量预测模型中,根据所述实际数据量修正所述分区数据量预测模型的拟合函数。优选地,在统计到当前分区实际数据量之后,将所述当前分区的实际数据量输入所述分区数据量预测模型中,对所述拟合函数进行修正,从而建立预测模型的自主学习过程,有利于保证预测模型的准确性。在每个数据时间段的实际数据量统计出来以后,及时更新该数据时间段对应的拟合函数,以便用于下一数据时间段的数据量预测。所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量之后,还包括:根据加权移动平均法,基于所述历史分区数据量以及所述数据时间段的前一时间段的分区数据量,对所述预测数据量进行校正。具体地,所述加权移动法采用如下公式I对所述预测数据量SJ_ST进行校正,校正后的预测数据量为SJ_ST:SJ_ST=Ct+d×Ct-Ct-1+b×Cy1_t-Cy1_t-1+p×Cy2_t-Cy2_t-1公式I;其中,Ct为当前分区的数据时间段t的预测数据量,Ct-1为数据时间段t的前一时间段t-1对应的分区数据量,Cy1_t为数据时间段t对应的前一年的同一时间段y1_t对应的分区数据量,Cy1_t-1为y1_t时间段的前一时间段y1_t-1对应的分区数据量,Cy2_t为数据时间段t的前两年的同一时间段y2_t对应的分区数据量,Cy2_t-1为y2_t时间段的前一时间段y2_t-1对应的分区数据量,d、b和p均为节假日因素校正因子,且d+b+p=1。其中d、b和p的权重根据节假日数量的多少自动进行调整,节假日数量越多,权重越大。同时,当有重要的节日在周末时,权重也相应增加。具体地,下面以校正2018年11月份的某账单表的预测数据量为例,基于2018年10月、2017年11月、2017年10月、2016年11月和2016年10月的历史数据量,以及采用上述分区数据量预测模型测算得到的2018年11月预测数据量,对2018年11月预测数据量进行校正,具体历史数据量、预测数据量如下表所示:*表示采用上述分区数据量预测模型测算得到的2018年11月预测数据量,并非实际数据量。基于上述数据,结合2018年、2017年、2016年的节假日因素校正因子,分别为0.4、0.4、0.2,采用公式I对所述预测数据量SJ_ST进行校正,得到校正后的预测数据量为104.4,与校正前的预测数据量105相比,更加接近实际数据量104。由上可以说明,本发明实施例提供的加权移动平均法能够对所述预测数据量进行有效校正。进一步地,当出现下述情况,即Ct=Ct-1=0、Cy1_t=Cy1_t-1≠0、Cy2_t=Cy2_t-1≠0时,如果采用上述的加权移动法所计算的SJ值将为0,此种情况可能导致系统不提供服务,因此,此时系统将采用下列公式II计算当前时间段t的预测数据量SJ_SA:SJ_SA=Ct+d×Ct-1+b×Cy1_t+p×Cy2_t公式II;其中,Ct为当前分区的数据时间段t的预测数据量,Ct-1为数据时间段t的前一时间段t-1对应的分区数据量,Cy1_t为数据时间段t对应的前一年的同一时间段y1_t对应的分区数据量,Cy2_t为数据时间段t的前两年的同一时间段y2_t对应的分区数据量,d、b和p的调整同上。当出现下述情况,即Ct=Ct-1=0、Cy1_t=Cy1_t-1≠0、Cy2_t=Cy2_t-1≠0时,也可采用公式I和公式II的综合折中算法计算当前时间段t的预测数据SJ_STA,见公式III:SJ=SJ_STA=Ct=m×SJ_ST+n×SJ_SA公式III;其中,m和n为加权系数,且m+n=1。综上所述,可根据实际情况选择相应的预测算法,这样SJ值既有效反应了影响预测数据量的因素作用的规律性,又可反应了外部环境变化带来的变化,使得预测数据量更接近实际数据量。优选地,所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量之后,还包括:若所述当前分区对应的预测数据量与所述当前分区的实际数据量之间的差值大于预设差值,对所述当前分区进行缩容,随分区实际数据量进行缩容,有效降低了数据库的运维成本,所节省的空间能够用于建立更多新的分区,提高了数据库的利用率。优选地,所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量之后,还包括:若所述预测数据量大于预设的当前分区最大容量,建立所述当前分区的附属分区,所述附属分区的容量根据所述预测数据量与所述当前分区最大容量的差值确定。由于预先设定分区最大容量有利于保证数据库的稳定性,防止数据库无限制扩容导致查询缓慢,因此,当所述预测数据量大于预设的当前分区最大容量,建立所述当前分区的附属分区,所述附属分区与所述当前分区之间既有各自的局部索引,从而保持彼此的独立。在建立起当前分区的附属分区后,重新建立当前分区的全局索引,从而保证当前分区与从属分区之间的数据的统一性。S15、若所述预测数据量大于所述当前数据容量,对所述当前分区进行扩容。通过统计往年同一时间段账单表的数据量的实际情况,预测当前时间段账单表可能达到的预测数据量,如果预测数据量超过当前分区能容纳数据量的最大值,即当前数据容量,则通过对当前分区进行提前扩容的方法缓解当前分区的压力。进一步地,在扩容之后,还可以执行分区使用率查询语句得出扩容后的结果,从而判断分区是否扩容成功。比如通过语句查询表空间大小M、空闲空间M等。具体地,查询分区空间的总容量可以通过以下语句实现:selecttablespace_name,sumbytes10241024asMBfromdba_data_filesgroupbytablespace_name.进一步地,在扩容之后,对当前分区的索引进行重建。在扩容之后,分区的全局索引失效,因此需重新创建全局索引。请参考图2,本发明的实施例还提供一种数据库自动分区扩容的装置,包括检测模块11、获取模块12、筛选模块13、测算模块14和扩容模块15,其中:检测模块11,用于在管理周期内,检测到当前分区所存入的数据量达到预设的阈值之后;本发明实施例以账单表为例,一般为了方便管理,账单表数据按月分区,账单表包含了根据时间顺序生成的交易记录。预先建立数据库表的管理周期,管理周期以月份计为例,每月月初拉起定时任务,检测所述当前分区存入的数据量是否大于等于预设的阈值。此外还可以实时监测所述当前分区存入的数据量,一旦所述当前分区所存入的数据量达到预设的阈值之后,再进行后续步骤,对此可以根据从月初到月末的不同时间阶段设置一系列不同的预设阈值,以满足实时监测的要求。具体地,所述数据量包含所述当前分区的索引和数据。获取模块12,用于获取当前分区对应的数据时间段和当前数据容量;具体地,按月分区的账单表,对应的数据时间段为月份,也可以为星期、天等更短的时间段。当前数据容量为所述当前分区目前所能容纳的最大数据量。筛选模块13,用于筛选出与所述数据时间段对应的历史时间段的历史分区数据量;优选地,筛选出所述数据时间段对应的至少两个历史时间段的历史分区数据量。每个历史时间段的颗粒度均相同,比如,颗粒度为1个月。以数据时间段为2019年11月为例,筛选出的与所述数据时间段对应的历史时间段为2018年11月、2017年11月,以此类推。此外,该历史时间段可以根据实际需求进行选择,如当前数据时间段为某一天,则对应的历史时间段也为某一天。例如对应当前数据时间段为2019年11月11日,筛选出的与所述数据时间段对应的历史时间段为2018年11月11日、2017年11月11日,以此类推。本发明数据库自动分区扩容的方法,通过对历史时间段比如,去年、前年甚至更早年的历史分区数据量进行分析,预测当前分区所对应数据时间段的账单数据量可能达到的值,从而提前对分区进行扩容,有利于合理利用分区容量,并能够避免因数据量骤增给数据库带来压力的情况。测算模块14,用于利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量;所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量,包括:根据回归方程预测方法,对所述历史分区数据量进行拟合,确定拟合函数;将所述拟合函数作为分区数据量预测模型,将所述历史分区数据量输入所述分区数据量预测模型中,计算出所述当前分区对应的预测数据量。具体地,预先设定多种回归方程,根据所述历史分区数据量确定出最符合所述历史分区数据量的目标回归方程,作为拟合函数。其中,所述预先设定的回归方程包括但不限于1次项、2次项、3次项、指数项等。进一步地,不同的数据时间段,对应不同的拟合函数。简单来说,不同月份有对应的拟合函数,比如针对11月份,有11月份的拟合函数。根据不同的数据时间段选择对应的拟合函数对预测数据量进行预测,从而得到更准确的待预测数据量。具体地,所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量之后,还包括:将所述当前分区的实际数据量输入所述分区数据量预测模型中,根据所述实际数据量修正所述分区数据量预测模型的拟合函数。优选地,在统计到当前分区实际数据量之后,将所述当前分区的实际数据量输入所述分区数据量预测模型中,对所述拟合函数进行修正,从而建立预测模型的自主学习过程,有利于保证预测模型的准确性。在每个数据时间段的实际数据量统计出来以后,及时更新该数据时间段对应的拟合函数,以便用于下一数据时间段的数据量预测。所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量之后,还包括:根据加权移动平均法,基于所述历史分区数据量以及所述数据时间段的前一时间段的分区数据量,对所述预测数据量进行校正。具体地,所述加权移动法采用如下公式I对所述预测数据量SJ_ST进行校正,校正后的预测数据量为SJ_ST:SJ_ST=Ct+d×Ct-Ct-1+b×Cy1_t-Cy1_t-1+p×Cy2_t-Cy2_t-1公式I;其中,Ct为当前分区的数据时间段t的预测数据量,Ct-1为数据时间段t的前一时间段t-1对应的分区数据量,Cy1_t为数据时间段t对应的前一年的同一时间段y1_t对应的分区数据量,Cy1_t-1为y1_t时间段的前一时间段y1_t-1对应的分区数据量,Cy2_t为数据时间段t的前两年的同一时间段y2_t对应的分区数据量,Cy2_t-1为y2_t时间段的前一时间段y2_t-1对应的分区数据量,d、b和p均为节假日因素校正因子,且d+b+p=1。其中d、b和p的权重根据节假日数量的多少自动进行调整,节假日数量越多,权重越大。同时,当有重要的节日在周末时,权重也相应增加。具体地,下面以校正2018年11月份的某账单表的预测数据量为例,基于2018年10月、2017年11月、2017年10月、2016年11月和2016年10月的历史数据量,以及采用上述分区数据量预测模型测算得到的2018年11月预测数据量,对2018年11月预测数据量进行校正,具体历史数据量、预测数据量如下表所示:*表示采用上述分区数据量预测模型测算得到的2018年11月预测数据量,并非实际数据量。基于上述数据,结合2018年、2017年、2016年的节假日因素校正因子,分别为0.4、0.4、0.2,采用公式I对所述预测数据量SJ_ST进行校正,得到校正后的预测数据量为104.4,与校正前的预测数据量105相比,更加接近实际数据量104。由上可以说明,本发明实施例提供的加权移动平均法能够对所述预测数据量进行有效校正。进一步地,当出现下述情况,即Ct=Ct-1=0、Cy1_t=Cy1_t-1≠0、Cy2_t=Cy2_t-1≠0时,如果采用上述的加权移动法所计算的SJ值将为0,此种情况可能导致系统不提供服务,因此,此时系统将采用下列公式II计算当前时间段t的预测数据量SJ_SA:SJ_SA=Ct+d×Ct-1+b×Cy1_t+p×Cy2_t公式II;其中,Ct为当前分区的数据时间段t的预测数据量,Ct-1为数据时间段t的前一时间段t-1对应的分区数据量,Cy1_t为数据时间段t对应的前一年的同一时间段y1_t对应的分区数据量,Cy2_t为数据时间段t的前两年的同一时间段y2_t对应的分区数据量,d、b和p的调整同上。当出现下述情况,即Ct=Ct-1=0、Cy1_t=Cy1_t-1≠0、Cy2_t=Cy2_t-1≠0时,也可采用公式I和公式II的综合折中算法计算当前时间段t的预测数据SJ_STA,见公式III:SJ=SJ_STA=Ct=m×SJ_ST+n×SJ_SA公式III;其中,m和n为加权系数,且m+n=1。综上所述,可根据实际情况选择相应的预测算法,这样SJ值既有效反应了影响预测数据量的因素作用的规律性,又可反应了外部环境变化带来的变化,使得预测数据量更接近实际数据量。优选地,所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量之后,还包括:若所述当前分区对应的预测数据量与所述当前分区的实际数据量之间的差值大于预设差值,对所述当前分区进行缩容,随分区实际数据量进行缩容,有效降低了数据库的运维成本,所节省的空间能够用于建立更多新的分区,提高了数据库的利用率。优选地,所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量之后,还包括:若所述预测数据量大于预设的当前分区最大容量,建立所述当前分区的附属分区,所述附属分区的容量根据所述预测数据量与所述当前分区最大容量的差值确定。由于预先设定分区最大容量有利于保证数据库的稳定性,防止数据库无限制扩容导致查询缓慢,因此,当所述预测数据量大于预设的当前分区最大容量,建立所述当前分区的附属分区,所述附属分区与所述当前分区之间既有各自的局部索引,从而保持彼此的独立。在建立起当前分区的附属分区后,重新建立当前分区的全局索引,从而保证当前分区与从属分区之间的数据的统一性。扩容模块15,用于在所述预测数据量大于所述当前数据容量时,对所述当前分区进行扩容。通过统计往年同一时间段账单表的数据量的实际情况,预测当前时间段账单表可能达到的预测数据量,如果预测数据量超过当前分区能容纳数据量的最大值,即当前数据容量,则通过对当前分区进行提前扩容的方法缓解当前分区的压力。进一步地,在扩容之后,还可以执行分区使用率查询语句得出扩容后的结果,从而判断分区是否扩容成功。比如通过语句查询表空间大小M、空闲空间M等。具体地,查询分区空间的总容量可以通过以下语句实现:selecttablespace_name,sumbytes10241024asMBfromdba_data_filesgroupbytablespace_name.进一步地,在扩容之后,对当前分区的索引进行重建。在扩容之后,分区的全局索引失效,因此需重新创建全局索引。在一个实施例中,本发明还提出了一种计算机设备,所述计算机设备包括存储介质、处理器及存储在所述存储介质上并可在所述处理介质上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:在管理周期内,检测到当前分区所存入的数据量达到预设的阈值之后;获取当前分区对应的数据时间段和当前数据容量;筛选出与所述数据时间段对应的历史时间段的历史分区数据量;利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量;若所述预测数据量大于所述当前数据容量,对所述当前分区进行扩容。在一个实施例中,处理器执行计算机可读指令时还执行以下步骤:根据加权移动平均法,基于所述历史分区数据量以及所述数据时间段的前一时间段的分区数据量,对所述预测数据量进行校正。在一个实施例中,处理器执行计算机可读指令时还执行以下步骤:若所述当前分区对应的预测数据量与所述当前分区的实际数据量之间的差值大于预设差值,对所述当前分区进行缩容。在一个实施例中,处理器执行计算机可读指令时还执行以下步骤:若所述预测数据量大于预设的当前分区最大容量,建立所述当前分区的附属分区,所述附属分区的容量根据所述预测数据量与所述当前分区最大容量的差值确定。请参考图3,图3为一个实施例中计算机设备的内部结构示意图。如图3所示,该计算机设备包括通过系统总线连接的处理器1、存储介质2、存储器3和网络接口4。其中,该计算机设备的存储介质2存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器1执行时,可使得处理器1实现一种数据库自动分区扩容的方法,处理器1能实现图2所示实施例中的一种数据库自动分区扩容的装置中的检测模块11、获取模块12、筛选模块13、测算模块14和扩容模块15的功能。该计算机设备的处理器1用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器3中可存储有计算机可读指令,该计算机可读指令被处理器1执行时,可使得处理器1执行一种数据库自动分区扩容的方法。该计算机设备的网络接口4用于与终端连接通信。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。此外,本发明还提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:在管理周期内,检测到当前分区所存入的数据量达到预设的阈值之后;获取当前分区对应的数据时间段和当前数据容量;筛选出与所述数据时间段对应的历史时间段的历史分区数据量;利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量;若所述预测数据量大于所述当前数据容量,对所述当前分区进行扩容。一个或多个处理器能实现图2所示实施例中的在数据库自动分区扩容的装置中的检测模块11、获取模块12、筛选模块13、测算模块14和扩容模块15的功能。在一个实施例中,处理器执行计算机可读指令时还执行以下步骤:若所述当前分区对应的预测数据量与所述当前分区的实际数据量之间的差值大于预设差值,对所述当前分区进行缩容。在一个实施例中,处理器执行计算机可读指令时还执行以下步骤:若所述预测数据量大于预设的当前分区最大容量,建立所述当前分区的附属分区,所述附属分区的容量根据所述预测数据量与所述当前分区最大容量的差值确定。综合上述实施例可知,本发明最大的有益效果在于:通过预先判断当前分区的数据量情况,并基于历史时间段的历史分区数据量,采用预先建立的预测模型对当前分区的数据量进行提前预测,有利于得到准确的待预测数据量,并对当前分区进行针对性扩容。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体Read-OnlyMemory,ROM等非易失性存储介质,或随机存储记忆体RandomAccessMemory,RAM等。以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

权利要求:1.一种数据库自动分区扩容的方法,其特征在于,所述方法包括:在管理周期内,检测到当前分区所存入的数据量达到预设的阈值之后;获取当前分区对应的数据时间段和当前数据容量;筛选出与所述数据时间段对应的历史时间段的历史分区数据量;利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量;若所述预测数据量大于所述当前数据容量,对所述当前分区进行扩容。2.根据权利要求1所述数据库自动分区扩容的方法,其特征在于,所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量,包括:根据回归方程预测方法,对所述历史分区数据量进行拟合,确定拟合函数;将所述拟合函数作为分区数据量预测模型,将所述历史分区数据量输入所述分区数据量预测模型中,计算出所述当前分区对应的预测数据量。3.根据权利要求2所述数据库自动分区扩容的方法,其特征在于,所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量之后,还包括:将所述当前分区的实际数据量输入所述分区数据量预测模型中,根据所述实际数据量修正所述分区数据量预测模型的拟合函数。4.根据权利要求1所述数据库自动分区扩容的方法,其特征在于,所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量之后,还包括:根据加权移动平均法,基于所述历史分区数据量以及所述数据时间段的前一时间段的分区数据量,对所述预测数据量进行校正。5.根据权利要求4所述数据库自动分区扩容的方法,其特征在于,所述加权移动平均法采用如下公式对所述预测数据量SJ_ST进行校正:SJ_ST=Ct+d×Ct-Ct-1+b×Cy1_t-Cy1_t-1+p×Cy2_t-Cy2_t-1;其中,Ct为当前分区的数据时间段t的预测数据量,Ct-1为数据时间段t的前一时间段t-1对应的分区数据量,Cy1_t为数据时间段t对应的前一年的同一时间段y1_t对应的分区数据量,Cy1_t-1为y1_t时间段的前一时间段y1_t-1对应的分区数据量,Cy2_t为数据时间段t的前两年的同一时间段y2_t对应的分区数据量,Cy2_t-1为y2_t时间段的前一时间段y2_t-1对应的分区数据量,d、b和p均为节假日因素校正因子,且d+b+p=1。6.根据权利要求1所述数据库自动分区扩容的方法,其特征在于,所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量之后,还包括:若所述当前分区对应的预测数据量与所述当前分区的实际数据量之间的差值大于预设差值,对所述当前分区进行缩容。7.根据权利要求1所述数据库自动分区扩容的方法,其特征在于,所述利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量之后,还包括:若所述预测数据量大于预设的当前分区最大容量,建立所述当前分区的附属分区,所述附属分区的容量根据所述预测数据量与所述当前分区最大容量的差值确定。8.一种数据库自动分区扩容的装置,其特征在于,所述装置包括:检测模块,用于在管理周期内,检测到当前分区所存入的数据量达到预设的阈值之后;获取模块,用于获取当前分区对应的数据时间段和当前数据容量;筛选模块,用于筛选出与所述数据时间段对应的历史时间段的历史分区数据量;测算模块,用于利用预先建立的分区数据量预测模型,根据所述历史分区数据量测算出所述当前分区对应的预测数据量;扩容模块,用于在所述预测数据量大于所述当前数据容量时,对所述当前分区进行扩容。9.一种计算机设备,其特征在于,包括存储介质和处理器,所述存储介质中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述数据库自动分区扩容的方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项所述数据库自动分区扩容的方法的步骤。

百度查询: 平安银行股份有限公司 数据库自动分区扩容的方法及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。