数据库表的区域切分方法、装置及存储介质与流程

文档序号:20617644发布日期:2020-05-06 20:21阅读:176来源:国知局
数据库表的区域切分方法、装置及存储介质与流程
本发明实施例涉及数据库
技术领域
,特别涉及一种数据库表的区域切分方法、装置及存储介质。
背景技术
:数据库表一般是以区域为单位进行数据存储。在使用数据库表存储数据的业务场景中,随着时间的增加,数据库表也会逐渐增长,为了减小数据库的存储压力,通常需要对数据库表进行区域切分。目前,数据库自身提供有数据库表的切分策略,该切分策略可以自动对数据库表进行区域切分,其具体实现包括:数据库表的区域通常涉及多个存储区间,每个存储区间对应有区间标号,该切分策略一般以区间标号的中间值为切分点进行区域切分。譬如,某区域内的区间标号包括1至100,此时可以以区间标号50为切分点,将区域切分成第一区域和第二区域,其中,第一区域内存储区间的区间标号包括1至50,第二区域内存储区间的区间标号包括51至100。然而,由于数据库表中区域的存储大小是有限的,因此,在上述提供的数据库表的区域切分方式中,如果数据分布不均匀,则存储数据时可能需要进行数据迁移。譬如,当数据集中在第一区域内时,可能需要将第一区域内的数据从一个存储设备迁移至另一个存储设备中,如此降低了数据库的存储性能。技术实现要素:本发明实施例提供了一种数据库表的区域切分方法、装置及存储介质,可以解决相关技术中由于可能涉及数据迁移而导致存储性能下降的问题。所述技术方案如下:第一方面,提供了一种数据库表的区域切分方法,所述方法包括:确定数据库表在第一时间周期内的第一数据量和在第二时间周期内的第二数据量,所述第一时间周期和所述第二时间周期在待存储数据对应的目标时间周期之前;调用目标网络模型,将所述第一数据量和所述第二数据量输入至所述目标网络模型中,输出所述目标时间周期内的第三数据量,所述目标网络模型用于基于上一时间周期和当前时间周期内的数据量对下一时间周期的数据量进行预测;基于所述目标时间周期内的第三数据量,确定目标区域个数,基于所述目标区域个数对所述数据库表中用于存储所述待存储数据的区域进行切分。可选地,所述第一时间周期和所述第二时间周期为相邻时间周期,且所述第一时间周期为所述目标时间周期的上一个时间周期。可选地,所述确定数据库表在第一时间周期内的第一数据量和在第二时间周期内的第二数据量之前,还包括:基于所述数据库表中数据的时间戳,按照预设周期长度,对所述数据库表中的数据进行预切分处理,得到多组数据;相应地,所述确定数据库表在第一时间周期内的第一数据量和在第二时间周期内的第二数据量,包括:从所述多组数据中,对所述第一时间周期内的数据量进行统计,以及对所述第二时间周期内的数据量进行统计,得到所述数据库表在所述第一时间周期内的第一数据量以及所述数据库表在所述第二时间周期内的第二数据量。可选地,所述基于所述目标时间周期内的第三数据量,确定目标区域个数,包括:基于所述目标时间周期内的第三数据量,通过公式一,确定所述目标区域个数,所述公式一为:其中,所述k为所述目标区域个数,所述n为所述目标时间周期内的第三数据量,所述m用于指示单个区域的最大存储量。可选地,所述目标网络模型是基于多个时间周期内的数据量以及所述多个时间周期中每个时间周期之后的一个时间周期内的数据量,对待训练的神经网络模型进行训练得到的。第二方面,提供了一种数据库表的区域切分装置,所述装置包括:确定模块,用于确定数据库表在第一时间周期内的第一数据量和在第二时间周期内的第二数据量,所述第一时间周期和所述第二时间周期在待存储数据对应的目标时间周期之前;调用模块,用于调用目标网络模型,将所述第一数据量和所述第二数据量输入至所述目标网络模型中,输出所述目标时间周期内的第三数据量,所述目标网络模型用于基于上一时间周期和当前时间周期内的数据量对下一时间周期的数据量进行预测;切分模块,用于基于所述目标时间周期内的第三数据量,确定目标区域个数,基于所述目标区域个数对所述数据库表中用于存储所述待存储数据的区域进行切分。可选地,所述第一时间周期和所述第二时间周期为相邻时间周期,且所述第一时间周期为所述目标时间周期的上一个时间周期。可选地,所述装置还包括:预切分模块,用于基于所述数据库表中数据的时间戳,按照预设周期长度,对所述数据库表中的数据进行预切分处理,得到多组数据;所述确定模块,用于从所述多组数据中,对所述第一时间周期内的数据量进行统计,以及对所述第二时间周期内的数据量进行统计,得到所述数据库表在所述第一时间周期内的第一数据量以及所述数据库表在所述第二时间周期内的第二数据量。可选地,所述切分模块用于:基于所述目标时间周期内的第三数据量,通过公式一,确定所述目标区域个数,所述公式一为:其中,所述k为所述目标区域个数,所述n为所述目标时间周期内的第三数据量,所述m用于指示单个区域的最大存储量。可选地,所述目标网络模型是基于多个时间周期内的数据量以及所述多个时间周期中每个时间周期之后的一个时间周期内的数据量,对待训练的神经网络模型进行训练得到的。第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述第一方面所述的数据库表的区域切分方法。第四方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的数据库表的区域切分方法。本发明实施例提供的技术方案带来的有益效果是:确定数据库表在第一时间周期内的第一数据量和在第二时间周期内的第二数据量,该第一时间周期和第二时间周期在待存储数据对应的目标时间周期之前。将该第一数据量和第二数据量输入至目标网络模型中,输出该目标时间周期内的第三数据量,即通过该目标网络模型对目标时间周期内的数据量进行预测,如此,即可基于预测的第三数据量确定目标区域个数,并基于该目标区域个数对数据库表中用于存储待存储数据的区域进行切分。也即是,在数据存储之前预测待存储数据的数据量,从而根据所预测的数据量进行区域切分,避免出现由于数据分布不均匀导致需要数据迁移的问题,提高了数据存储性能。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是根据一示例性实施例示出的一种lstm网络模型的结构示意图;图2是根据一示例性实施例示出的一种数据库表的区域切分方法的流程图;图3是根据另一示例性实施例示出的一种数据对比示意图;图4是根据一示例性实施例示出的一种数据库表的区域切分装置的结构示意图;图5是根据另一示例性实施例示出的一种数据库表的区域切分装置的结构示意图;图6是根据一示例性实施例示出的一种计算机设备的结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。在对本发明实施例进行详细介绍之前,先对本发明实施例涉及的名词、应用场景和实施环境进行简单介绍。首先,对本发明实施例涉及的名词进行简单介绍。three-sigma:一种剔除误差数据的方法,又可以称为拉依达准则。lstm(longshort-termmemory,长短期记忆)网络模型:是一种时间递归神经网络,其本质是门限rnn(recurrentneuralnetwork,循环神经网络),通过增加输入门限、遗忘门限和输出门限,使得自循环的权重发生变化,从而解决rnn无法和距离较远的时间序列产生联系的问题。lstm内部通过单元状态来传递信息,通过门来控制信息的丢弃或者新增,首先构建由一个sigmoid函数,接收上一个单元的输出和本单元的输入的遗忘门,遗忘门会产生[0,1]范围内的值,用来控制上一个单元状态被遗忘的程度,其次构建输入门,通过tanh函数生成[0,1]范围内的值用来控制信息的加入程度,最后构建输出门控制当前单元状态被过滤的程度,使用tanh函数控制输出在[0,1]范围内。lstm网络模型的结构通常包括多层,每层包括至少一个节点。请参考图1,图1是根据一示例性实施例示出的一种lstm网络模型的结构示意图,该lstm网络模型的结构包括有输入层、隐藏层和输出层,在该lstm网络模型的结构中,该输入层包括节点x1,隐藏层包括节点h1、h2和h3,输出层包括节点y1。在每个时间步骤中,可以通过该网络模型结构中的各层对输入的数据进行处理。该lstm网络模型可以基于上一时间周期内的数据和当前时间周期内的数据,对下一时间周期内的数据进行预测。其次,对本发明实施例涉及的应用场景进行简单介绍。在数据库表的一些使用场景中,通常需要进行区域切分,以避免使用单个区域存储数据给数据库带来巨大的存储压力。目前,诸如hbase之类的数据库本身提供有多套切分策略,然而,采用该多套切分策略对数据库表进行区域切分后,可能需要数据迁移,从而影响了性能。并且,该多套切分策略与时间因素无关,导致切分后的数据不能在某一时间段内集聚,从而使得后续对数据的查询和删除等其他操作效率大大降低。为此,本发明实施例提供了一种数据库表的区域切分方法,该方法可以解决数据库本身提供的切分策略存在的问题,其具体实现过程请参见如下图2所示实施例。最后,对本发明实施例涉及的实施环境进行简单介绍。本发明实施例提供的数据库表的区域切分方法可以由计算机设备来执行,该计算机设备可以用于管理数据库表,譬如,可以用于对数据库表进行区域切分,以及将切分后得到的各个区域分配至数据库的各个存储节点中等。在一些实施例中,该计算机设备可以为平板电脑、台式计算机、笔记本电脑、便携式计算机等等,本发明实施例对此不做限定。在介绍完本发明实施例涉及的名词、应用场景和实施环境后,接下来,将结合附图对本发明实施例提供数据库表的区域切分方法进行详细介绍。请参考图2,图2是根据一示例性实施例示出的一种数据库表的区域切分方法的流程图,该数据库表的区域切分方法可以由计算机设备来执行,该方法可以包括如下几个实现步骤:步骤201:基于该数据库表中数据的时间戳,按照预设周期长度,对该数据库表中的数据进行预切分处理,得到多组数据。在本发明实施例中,可以根据数据库表中已存储的数据,对该数据库表中用于存储待存储数据的区域进行切分。由于该数据库表中的数据均对应有时间戳,所以,这里可以按照预设周期时长,对数据库表中的数据进行预切分处理,还可以理解为对数据库表的区域进行预切分处理,得到多组数据,每组数据对应一个预切分区域,且每组数据对应一个时间周期。其中,该预设周期时长可以由用户根据实际需求自定义设置,也可以由计算机设备默认设置,譬如,该预设周期时长可以为几天、几周或者几个月等,本发明实施例对此不做限定。为了便于理解,这里以该预设周期时长为一周为例进行举例说明,由于数据库表中的数据通常均有时间戳,因此,可以以一周为时间周期,将该数据表中的数据切分成多组,每组数据存储至一个预切分区域中,此时,每个预切分区域对应一个时间周期。譬如,预切分处理后得到的预切分区域的时间范围可以为20180601~20180607、20180608~20180614、20180615~20180621等。以20180601为例进行说明,该2018代表年份,该0601代表6月1日,进一步地,20180601~20180607对应的预切分区域用于存储数据库表中时间戳处于该时间周期内的数据。值得一提的是,这里对该数据库表中的数据按照时间粒度进行预切分处理,如此,待后续需要对该数据库中的数据进行查询、删除等操作时,可以根据待操作数据所处的时间周期,快速从对应的预切分区域中获取到某个时间段内的数据,提高了数据操作效率。进一步地,考虑到热点问题,即当一个区域的数据存储在一个存储节点上是,在读取数据时只能从该一个存储节点中读取,负载均衡效果较差。为此,在进行预切分处理得到多个预切分区域的数据之后,还可以对每个预切分区域进行再次切分。具体地,可以根据数据库中存储节点的个数,对该每个预切分区域进行再次切分,譬如,当数据库中存储节点的个数为三个时,可以将经过上述切分处理后得到的每个区域再次切分成三个子区域,该三个子区域中的每个子区域分别分布至三个存储节点的每个存储节点中。如此,当后续需要读取该每个预切分区域中的数据时,可以分别从三个存储节点中读取,从而保证负载均衡。进一步地,为了区分经过再次切分后得到的各个子区域,可以在每个预切分区域对应的时间周期的尾部添加散列值。譬如,对20180601~20180607时间周期对应的预切分区域再次切分后得到的三个子区域可以记为20180601~2018060101、2018060101~2018060102以及2018060102~20180607。步骤202:确定数据库表在第一时间周期内的第一数据量和在第二时间周期内的第二数据量,该第一时间周期和该第二时间周期在待存储数据对应的目标时间周期之前。在一些实施例中,该计算机设备可以在确定当前时间将达到该目标时间周期时,执行确定数据库表在第一时间周期内的第一数据量和在第二时间周期内的第二数据量的操作。譬如,假设该目标时间周期为2018年9月1日至2018年9月7日,则该计算机设备可以在2018年8月31日执行上述操作。在一种可能的实现方式中,该第一时间周期和该第二时间周期为相邻时间周期,且该第一时间周期为目标时间周期的上一个时间周期。譬如,假设该目标时间周期对应的时间序列为t+1,则该第一时间周期对应的时间序列为t,该第二时间周期对应的时间序列为t-1。如此,可以保证后续预测目标时间周期内第三数据量的准确性。进一步地,上述确定数据库表在第一时间周期内的第一数据量和在第二时间周期内的第二数据量的具体实现可以包括:从多组数据中,对该第一时间周期内的数据量进行统计,以及对该第二时间周期内的数据量进行统计,得到数据库表在第一时间周期内的第一数据量以及该数据库表在第二时间周期内的第二数据量。譬如,假设目标时间周期为20180901~20180907,即待存储数据为2018年9月1日至2018年9月7日的数据,则第一时间周期可以为20180825~20180831,第二时间周期可以为2010818~20180824,即计算机设备可以对该数据库表中2018年8月25日至2018年8月31日的数据量进行统计,得到第一数据量,以及对该数据库表中2018年8月18日至2018年8月24日的数据量进行统计,得到第二数据量。当然,这里是以该第一时间周期和第二时间周期为相邻时间周期且该第一时间周期为目标时间周期的上一个时间周期为例进行说明,在另一实施例中,该第一时间周期和第二时间周期也可以不是相邻的时间周期,或者,该第一时间周期也可以不是该目标时间周期的上一个时间周期。譬如,继续以上述例子为例,假设目标时间周期为20180901~20180907,该第一时间周期可以选为2018060101~2018060102,第二时间周期可以选为20180607~20180613。步骤203:调用目标网络模型,将该第一数据量和该第二数据量输入至该目标网络模型中,输出该目标时间周期内的第三数据量,该目标网络模型用于基于上一时间周期和当前时间周期内的数据量对下一时间周期的数据量进行预测。譬如,该目标网络模型的模型结构如图1所示,则将该第一数据量和该第二数据量输入至该目标网络模型中,依次由输入层、隐藏层和输出层进行处理,输出该第三数据量,该第三数据量即是预测存储数据的数据量。进一步地,该目标网络模型是基于多个时间周期内的数据量以及该多个时间周期中每个时间周期之后的一个时间周期内的数据量,对待训练的神经网络模型进行训练得到的。也即是,在调用目标网络模型之前,一般需要通过训练的方式来得到该目标网络模型。在训练过程中,可以获取多个时间周期内的数据量以及该多个时间周期中每个时间周期之后的一个时间周期内的数据量,之后,基于多个时间周期内的数据量以及该多个时间周期中每个时间周期之后的一个时间周期内的数据量,对待训练的神经网络模型进行训练,得到该目标网络模型。接下来对训练过程进行介绍。计算机设备获取多个数据,根据数据的时间戳和预设周期时长对多个数据进行分组,统计每组数据的数据量,得到多个时间周期内的数据量,以及该多个时间周期中每个时间周期之后的一个时间周期内的数据量。对获取的数据量进行转换、数据预处理,将处理后的数据输入至待训练的神经网络模型中进行迭代训练,得到该目标网络模型。其中,在获取数据时,可以选择业务类型相似、数据结构相似、且在时间的分布上也类似的数据,譬如,选择的数据如表1所示:表1日期数据大小2016.7.11.3g2016.7.21.4g2016.7.31.2g2016.7.40.8g2016.7.51.5g2016.7.61.3g2016.7.71.2g2016.7.81.0g2016.7.90.6g2016.7.100.8g2016.7.111.7g2016.7.121.7g2016.7.131.6g2016.7.141.5g...…如果数据库采用压缩存储,那么数据大小应该是压缩后的大小。之后可以采用three-sigma规则对误差进行检测,剔除不良数据,使得数据分布在(u-3a,u+3a)的范围内,即将分布在该范围外的数据剔除。其中,该u代表数据均值,该a代表数据的标准差。进一步地,计算机设备以预设周期时长,对获取到的数据进行统计,譬如,该预设周期时长为一周,则统计后的数据如下表2所示:表2进一步地,为了便于后续训练神经网络模型,在统计完之后,还可以对上述表2中的数据进行转换处理,譬如,可以将上述表3中的数据转化为特征数据和标签数据,时间周期t的数据作为输入神经网络的特征数据,时间周期t+1的数据作为和神经网络模型输出的预测值做对比用的标签数据,转化后的数据如下表3所示:表3特征数据标签数据12.6g12.7g12.7g………进一步地,可以将该表格3转换为矩阵的形式:其中,bt表示时间周期t的数据量,矩阵a标识了训练数据的行列结构,可以按照矩阵a的数据结构将表格3中的数据保存至目标文件中,譬如,该目标文件可以为csv格式的文件,该csv文件的数据如表4所示:表4进一步地,还可以对上述目标文件中存储的数据进行加载,并进行数据预处理,即对数据进行标准化处理,以将数据转化至相同的数据范围内,防止值过大或过小时,导致神经网络中的神经元产生过高或过低的值,例如,当神经元采用sigmoid函数作为激活函数时,过高或过低的值将导致神经元的导数接近零,从而影响训练结果。数据预处理可以将数据标准化在0至1之间,可以采用如下公式(2)进行数据预处理:其中,x为待处理的数据,xmin和xmax分别为最大值和最小值,xnormal表示经过标准化后的数据。之后,需要构建神经网络模型,在一种可能的实现方式中,构建神经网络模型的实现可以包括:首先采用随机的方式生成一组较小的随机数作为神经网络模型的初始权重,采用随机梯度下降方式来优化代价函数,并以此进行误差反向传递,不断调整神经网络模型中的权重和阈值。权重的初始策略可以选择xavier策略,并选择合适的权重更新器,该权重更新器中学习率表示每次迭代时对于权重的调整幅度,动量表示影响权重调整的方向,寻找合适的参数可以有效改善收敛性,防止神经网络模型陷入局部极小值。进一步地,由于在本发明实施例中,神经网络模型的影响因子只有数据量这一个因素,因此,可以构建三层神经网络,如图1所示:第一层为输入层,用于接收输入数据并传递给下一层,该层可以用单一的节点接收输入数据;第二层为隐藏层,用于构建lstm网络,隐藏层的节点个数可以通过kolmogorov定理确定,该定理包括:s=2*n+1,其中,s表示隐藏节点数,n表示输入层的节点数;第三层为输出层,由单一节点输出预测值,其中,网络神经模型中的损失函数可以采用回归中常见的均方误差函数,激活函数可以选用identity函数。构建神经网络模型后,需要加载预处理后的数据至该神经网络模型中,以对该神经网络模型进行训练,得到目标网络模型。需要说明的是,由于lstm神经网络需要有时间序列的信息,因此,需要对预处理后的数据增加一个时间维度,譬如,可以将表4中的序号作为输入神经网络模型的时间序列。将该时间序列和预处理后得到的数据输入至神经网络模型之后,输出预测值,根据该预测值与实际值的误差,调整该神经网络模型的权重,并重复上述输入数据的步骤,直到整个数据样本集的误差不超过规定范围时,结束训练,得到目标网络模型。进一步地,得到目标网络模型后,还可以对该目标网络模型进行验证,譬如,假设测试数据如表5所示,该测试数据也包括特征数据和标签数据,将该测试数据输入至该目标网络模型中,输出预测值,将该预测值与标签数据进行比较,以验证该目标网络模型的预测能力是否符合预期效果。表5111.2,11.21711.5,11.63313.2,13.34913.4,13.66515.1,15.38117.7,17.8211.2,11.11811.6,11.73413.3,13.55013.6,13.76615.3,15.48217.8,18.0311.1,11.01911.7,11.83513.5,13.65113.7,13.86715.4,15.58318.0,18.2411.0,10.92011.8,11.93613.6,13.75213.8,13.86815.5,15.78418.2,18.4510.9,10.92111.9,12.03713.7,13.75313.8,13.96915.7,15.88518.4,18.5610.9,10.82212.0,12.23813.7,13.65413.9,14.17015.8,16.08618.5,18.7710.8,10.72312.2,12.33913.6,13.55514.1,14.07116.0,16.28718.7,18.9810.7,10.72412.3,12.44013.5,13.75614.0,14.07216.2,16.38818.9,19.1910.7,10.72512.4,12.54113.7,13.65714.0,14.17316.3,16.58919.1,18.71010.7,10.82612.5,12.44213.6,13.55814.1,14.27416.5,16.69018.7,18.61110.8,11.02712.4,12.64313.5,13.75914.2,14.47516.6,16.89118.6,18.81211.0,11.12812.6,12.74413.7,13.46014.4,14.57616.8,17.09218.8,19.01311.1,11.22912.7,12.84513.4,13.36114.5,14.67717.0,17.29319.0,19.11411.2,11.33012.8,13.04613.3,13.36214.6,14.87817.2,17.39419.1,18.71511.3,11.43113.0,13.14713.3,13.46314.8,15.07917.3,17.59518.7,18.81611.4,11.53213.1,13.24813.4,13.46415.0,15.18017.5,17.79618.8,18.6将目标网络模型输出的预测值与测试数据中标签数据进行比较,通过描点法得到对比图如图3所示,其中,该图3中[1,86]时间周期范围内的数据量为用于训练神经网络模型的真实数据,在上述范围之外的时间周期内,曲线1对应的数据量为目标网络模型输出的预测值,曲线2对应的数据量为真实的数据量,或者说是测试数据中的标签数据,从图3中可以直观对比出预测值与测试数据中标签数据之间的差值。当两者较近时,可以确定该目标网络模型满足实际需求,即可以成功预测目标时间周期内的数据量。还需要说明的是,从图3中可以看出,预测值和标签数据在开始的时候还比较贴近,但是随着时间的增加,两者差别逐渐增加,这是由于在时间周期86之后的每个时间周期内,只是通过目标网络模型预测下一个时间周期的数据量,但未再基于时间周期86之后的时间周期的数据量对目标网络模型继续进行训练。也即是,目标网络模型一般能够对距离当前时间周期最近的下一时间周期的数据量进行准确预测,但对距离当前时间周期较远的时间周期内数据量的预测值与真实值之间具有一定的偏差。因此,为了保证目标网络模型预测的准确性,在每次进行数据量预测的同时,还可以基于目标时间周期的数据,对csv文件中的数据进行更新,并基于更新后的数据,继续对该目标网络模型进行训练,以使得该目标网络模型的预测能力更为精准。步骤204:基于该目标时间周期内的第三数据量,确定目标区域个数。在一种可能的实现方式中,基于该目标时间周期内的第三数据量,通过公式(1),确定该目标区域个数,该公式(1)为:其中,该k为该目标区域个数,该n为该目标时间周期内的第三数据量,该m用于指示单个区域的最大存储量。另外,该m可以根据实际需求进行设置,譬如,若单个区域的最优存储范围为[5g,10g],此时,可以选择10g作为单个区域的存储上限,即m的取值可以选取为10g。进一步地,假设经过上述目标网络模型确定该第三数据量n为100g,则可以确定目标区域个数为10。步骤205:基于该目标区域个数对该数据库表中用于存储该待存储数据的区域进行切分。继续以上述例子为例,用于存储该待存储数据的区域对应的时间周期为20180901~20180907,当该目标区域个数为10时,将20180901~20180907时间周期对应的区域切分为10个,也就是说,在存储20180901~20180907时间周期内的数据时,将数据分别存储至该10个区域内。如此,在对数据进行存储之前,先预测需要存储的数据量,并根据该数据量对数据库表中准备用于存储该待存储数据的区域进行切分,可以避免数据在写入数据库表中时进行昂贵的分裂,保证能够达到最优负载均衡的效果,使得存储系统的运行更加稳定。进一步地,该计算机设备对数据库表进行区域切分后,还可以判断是否需要继续对该数据库表中进行切分,当确定需要继续切分时,返回上述步骤202,并按照上述实现过程,继续对目标时间周期的下一个时间周期对应的区域进行切分。进一步地,判断是否需要继续对数据库表进行切分的实现可以包括:判断目标时间周期是否超过数据库表的绝限日期,该绝限日期用于指示该数据库表中存储数据的最后期限,当该目标时间周期超过该绝限日期时,确定不需要再继续切分。否则,当该目标时间周期未超过该绝限日期,则确定需要继续切分。也即是,数据库表一般配置绝限日期,譬如,该绝限日期为2019年1月1日,此时说明2019年1月1日以后的数据不再存储至该数据库表中。如果目标时间周期为20180901~20180907,则说明未超过绝限日期,此时确定需要继续切分。如果该目标时间周期为20190901~20190907,则说明已经超过绝限日期,此时确定不需要继续切分。在本发明实施例中,确定数据库表在第一时间周期内的第一数据量和在第二时间周期内的第二数据量,该第一时间周期和第二时间周期在待存储数据对应的目标时间周期之前。将该第一数据量和第二数据量输入至目标网络模型中,输出该目标时间周期内的第三数据量,即通过该目标网络模型对目标时间周期内的数据量进行预测,如此,即可基于预测的第三数据量确定目标区域个数,并基于该目标区域个数对数据库表中用于存储待存储数据的区域进行切分。也即是,在数据存储之前预测待存储数据的数据量,从而根据所预测的数据量进行区域切分,避免出现由于数据分布不均匀导致需要数据迁移的问题,提高了数据存储性能。图4是根据一示例性实施例示出的一种数据库表的区域切分装置的结构示意图,该数据库表的区域切分装置可以由软件、硬件或者两者的结合实现。该数据库表的区域切分装置可以包括:确定模块410,用于确定数据库表在第一时间周期内的第一数据量和在第二时间周期内的第二数据量,所述第一时间周期和所述第二时间周期在待存储数据对应的目标时间周期之前;调用模块420,用于调用目标网络模型,将所述第一数据量和所述第二数据量输入至所述目标网络模型中,输出所述目标时间周期内的第三数据量,所述目标网络模型用于基于上一时间周期和当前时间周期内的数据量对下一时间周期的数据量进行预测;切分模块430,用于基于所述目标时间周期内的第三数据量,确定目标区域个数,基于所述目标区域个数对所述数据库表中用于存储所述待存储数据的区域进行切分。可选地,所述第一时间周期和所述第二时间周期为相邻时间周期,且所述第一时间周期为所述目标时间周期的上一个时间周期。可选地,请参考图5,所述装置还包括:预切分模块440,用于基于所述数据库表中数据的时间戳,按照预设周期长度,对所述数据库表中的数据进行预切分处理,得到多组数据;所述确定模块410,用于从所述多组数据中,对所述第一时间周期内的数据量进行统计,以及对所述第二时间周期内的数据量进行统计,得到所述数据库表在所述第一时间周期内的第一数据量以及所述数据库表在所述第二时间周期内的第二数据量。可选地,所述切分模块430用于:基于所述目标时间周期内的第三数据量,通过公式一,确定所述目标区域个数,所述公式一为:其中,所述k为所述目标区域个数,所述n为所述目标时间周期内的第三数据量,所述m用于指示单个区域的最大存储量。可选地,所述目标网络模型是基于多个时间周期内的数据量以及所述多个时间周期中每个时间周期之后的一个时间周期内的数据量,对待训练的神经网络模型进行训练得到的。在本发明实施例中,确定数据库表在第一时间周期内的第一数据量和在第二时间周期内的第二数据量,该第一时间周期和第二时间周期在待存储数据对应的目标时间周期之前。将该第一数据量和第二数据量输入至目标网络模型中,输出该目标时间周期内的第三数据量,即通过该目标网络模型对目标时间周期内的数据量进行预测,如此,即可基于预测的第三数据量确定目标区域个数,并基于该目标区域个数对数据库表中用于存储待存储数据的区域进行切分。也即是,在数据存储之前预测待存储数据的数据量,从而根据所预测的数据量进行区域切分,避免出现由于数据分布不均匀导致需要数据迁移的问题,提高了数据存储性能。需要说明的是:上述实施例提供的数据库表的区域切分装置在实现数据库表的区域切分方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据库表的区域切分装置与数据库表的区域切分方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。图6是根据一示例性实施例示出的一种计算机设备的结构示意图。具体来讲:计算机设备600包括中央处理单元(cpu)601、包括随机存取存储器(ram)602和只读存储器(rom)603的系统存储器604,以及连接系统存储器604和中央处理单元601的系统总线605。计算机设备600还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(i/o系统)606,和用于存储操作系统613、应用程序614和其他程序模块615的大容量存储设备607。基本输入/输出系统606包括有用于显示信息的显示器608和用于用户输入信息的诸如鼠标、键盘之类的输入设备609。其中显示器608和输入设备609都通过连接到系统总线605的输入输出控制器610连接到中央处理单元601。基本输入/输出系统606还可以包括输入输出控制器610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器610还提供输出到显示屏、打印机或其他类型的输出设备。大容量存储设备607通过连接到系统总线605的大容量存储控制器(未示出)连接到中央处理单元601。大容量存储设备607及其相关联的计算机可读介质为计算机设备600提供非易失性存储。也就是说,大容量存储设备607可以包括诸如硬盘或者cd-rom驱动器之类的计算机可读介质(未示出)。不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、eprom、eeprom、闪存或其他固态存储其技术,cd-rom、dvd或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器604和大容量存储设备607可以统称为存储器。根据本申请的各种实施例,计算机设备600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备600可以通过连接在系统总线605上的网络接口单元611连接到网络612,或者说,也可以使用网络接口单元611来连接到其他类型的网络或远程计算机系统(未示出)。上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由cpu执行。所述一个或者一个以上程序包含用于进行本申请实施例提供的数据库表的区域切分方法。本申请实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由计算机设备的处理器执行时,使得计算机设备能够执行上述所示实施例提供的数据库表的区域切分方法。本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所示实施例提供的数据库表的区域切分方法。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1