一种数据处理方法及服务器转让专利

申请号 : CN201510446778.X

文献号 : CN106407191B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王凤

申请人 : 中国移动通信集团公司

摘要 :

本发明公开了一种数据处理方法及服务器,其中,所述方法包括:基于存储空间维度将存储空间划分为M个数据分区,其中,M为大于等于二的正整数;基于至少二个时间维度,确定至少二个时间维度对应的参考时间段;获取到数据信息;分别基于所述至少二个时间维度,确定所述数据信息对应的至少二个参考时间段;基于所述至少二个参考时间段,从所述M个数据分区中选取所述数据信息对应的数据分区;将所述数据信息存储至所述数据分区。

权利要求 :

1.一种数据处理方法,其特征在于,所述方法包括:

基于存储空间维度将存储空间划分为M个数据分区,其中,M为大于等于二的正整数;

基于至少二个时间维度,确定至少二个时间维度对应的参考时间段;

获取到数据信息;

分别基于所述至少二个时间维度,确定所述数据信息对应的至少二个参考时间段;

基于所述至少二个参考时间段,从所述M个数据分区中选取所述数据信息对应的数据分区;

将所述数据信息存储至所述数据分区,以使得所述M个数据分区中均衡存储数据信息;

其中,所述基于至少二个时间维度,确定所述数据信息对应的至少二个参考时间段,包括:分别基于第一时间维度以及第二时间维度,确定所述数据信息对应的第一参考时间段、以及第二参考时间段;根据所述第二参考时间段确定对应的热度窗口;

其中,所述基于所述至少二个参考时间段,从所述M个数据分区中选取所述数据信息对应的数据分区,包括:利用热度窗口与数据分区的个数进行哈希计算,得到第一计算结果;

当所述第一计算结果不等于零时,利用第一参考时间段与所述热度窗口进行乘法计算,将乘法计算得到的结果与第二参考时间段相加得到第二计算结果,利用第二计算结果与数据分区的个数进行哈希计算得到所述数据信息在所述M个数据分区中对应的数据分区的编号;

当所述第一计算结果等于零时,将热度窗口的数值减一得到调整的热度窗口,利用调整的热度窗口与第一参考时间段进行乘法计算,将乘法计算得到的结果与第二参考时间段相加得到第三计算结果,利用第三计算结果与数据分区的个数进行哈希计算得到所述数据信息在所述M个数据分区中对应的数据分区的编号。

2.根据权利要求1所述的方法,其特征在于,所述基于至少二个时间维度,确定所述数据信息对应的至少二个参考时间段,包括:分别基于第一时间维度以及第二时间维度,确定所述数据信息对应的第一参考时间段、以及第二参考时间段;

相应的,所述基于所述至少二个参考时间段,从所述M个数据分区中选取所述数据信息对应的数据分区,包括:基于所述M个数据分区、所述第一参考时间段、第二参考时间段进行哈希计算,根据哈希计算得到的结果确定所述数据信息对应的数据分区。

3.根据权利要求1所述的方法,其特征在于,所述基于至少二个时间维度,确定所述数据信息对应的至少二个参考时间段,包括:分别基于第一时间维度,确定数据信息对应的第一参考时间段;

基于第二时间维度,确定数据信息对应的第二参考时间段,并确定第二参考时间段对应的第一热度窗口;

基于第三时间维度,确定数据信息对应的第三参考时间段,并确定所述第三参考时间段对应的第二热度窗口;

基于第四时间维度,确定数据信息对应的第四参考时间段,并确定所述第四参考时间段对应的第三热度窗口。

4.根据权利要求3所述的方法,其特征在于,所述基于所述至少二个参考时间段,从所述M个数据分区中选取所述数据信息对应的数据分区,包括:利用第一参考时间段与第一热度窗口相乘得到第一子参数,利用第二参考时间段与第二热度窗口相乘得到第二子参数,利用第三参考时间段与第三热度窗口相乘得到第三子参数;

将第一子参数、第二子参数、第三子参数以及第四参考时间段相加得到的计算结果与数据分区的个数M进行哈希计算,得到所述数据信息在所述M个数据分区中对应的数据分区的编号。

5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:检测到数据查询指令;

解析所述数据查询指令,得到所述数据查询指令的时间参数;

基于所述M个数据分区以及所述时间参数,确定所述数据查询指令对应的数据信息所在的数据分区;

从所述数据分区获取到所述数据信息。

6.一种服务器,其特征在于,包括:

设置单元,用于基于存储空间维度将存储空间划分为M个数据分区,其中,M为大于等于二的正整数;基于至少二个时间维度,确定至少二个时间维度对应的参考时间段;

处理单元,用于获取到数据信息;分别基于所述至少二个时间维度,确定所述数据信息对应的至少二个参考时间段;基于所述至少二个参考时间段,从所述M个数据分区中选取所述数据信息对应的数据分区;将所述数据信息存储至所述数据分区;

所述处理单元,还用于分别基于第一时间维度以及第二时间维度,确定所述数据信息对应的第一参考时间段、以及第二参考时间段;根据所述第二参考时间段确定对应的热度窗口;

所述处理单元,具体用于利用热度窗口与数据分区的个数进行哈希计算,得到第一计算结果;

当所述第一计算结果不等于零时,利用第一参考时间段与所述热度窗口进行乘法计算,将乘法计算得到的结果与第二参考时间段相加得到第二计算结果,利用第二计算结果与数据分区的个数进行哈希计算得到所述数据信息在所述M个数据分区中对应的数据分区的编号;

当所述第一计算结果等于零时,将热度窗口的数值减一得到调整的热度窗口,利用调整的热度窗口与第一参考时间段进行乘法计算,将乘法计算得到的结果与第二参考时间段相加得到第三计算结果,利用第三计算结果与数据分区的个数进行哈希计算得到所述数据信息在所述M个数据分区中对应的数据分区的编号。

7.根据权利要求6所述的服务器,其特征在于,所述处理单元,还用于分别基于第一时间维度以及第二时间维度,确定所述数据信息对应的第一参考时间段、以及第二参考时间段;基于所述M个数据分区、所述第一参考时间段、第二参考时间段进行哈希计算,根据哈希计算得到的结果确定所述数据信息对应的数据分区。

8.根据权利要求6所述的服务器,其特征在于,所述处理单元,具体用于分别基于第一时间维度,确定数据信息对应的第一参考时间段;基于第二时间维度,确定数据信息对应的第二参考时间段,并确定第二参考时间段对应的第一热度窗口;基于第三时间维度,确定数据信息对应的第三参考时间段,并确定所述第三参考时间段对应的第二热度窗口;基于第四时间维度,确定数据信息对应的第四参考时间段,并确定所述第四参考时间段对应的第三热度窗口。

9.根据权利要求8所述的服务器,其特征在于,所述处理单元,具体用于利用第一参考时间段与第一热度窗口相乘得到第一子参数,利用第二参考时间段与第二热度窗口相乘得到第二子参数,利用第三参考时间段与第三热度窗口相乘得到第三子参数;将第一子参数、第二子参数、第三子参数以及第四参考时间段相加得到的计算结果与数据分区的个数M进行哈希计算,得到所述数据信息在所述M个数据分区中对应的数据分区的编号。

10.根据权利要求6-9任一项所述的服务器,其特征在于,所述处理单元,还用于检测到数据查询指令;解析所述数据查询指令,得到所述数据查询指令的时间参数;基于所述M个数据分区以及所述时间参数,确定所述数据查询指令对应的数据信息所在的数据分区;从所述数据分区获取到所述数据信息。

说明书 :

一种数据处理方法及服务器

技术领域

[0001] 本发明涉及无线通信领域的数据库管理技术,尤其涉及一种数据处理方法及服务器。

背景技术

[0002] 随着移动用户越来越多,当数据库被装载以后,随着用户数据业务的不断扩大,数据量也不断膨胀,为了提高查询的效率,数据库分区技术应用而生。在扫描操作中,数据库存储或读取数据信息时,需要从对应的数据分区获取,但是,现有技术中无法保证数据存数的均衡性,从而就会给读取数据带来性能较低的问题。

发明内容

[0003] 有鉴于此,本发明的目的在于提供一种调度方法及基站,能至少解决现有技术中存在的上述问题。
[0004] 为达到上述目的,本发明的技术方案是这样实现的:
[0005] 本发明实施例提供了一种数据处理方法,所述方法包括:
[0006] 基于存储空间维度将存储空间划分为M个数据分区,其中,M为大于等于二的正整数;
[0007] 基于至少二个时间维度,确定至少二个时间维度对应的参考时间段;
[0008] 获取到数据信息;
[0009] 分别基于所述至少二个时间维度,确定所述数据信息对应的至少二个参考时间段;
[0010] 基于所述至少二个参考时间段,从所述M个数据分区中选取所述数据信息对应的数据分区;
[0011] 将所述数据信息存储至所述数据分区。
[0012] 本发明实施例还提供了一种服务器,包括:
[0013] 设置单元,用于基于存储空间维度将存储空间划分为M个数据分区,其中,M为大于等于二的正整数;基于至少二个时间维度,确定至少二个时间维度对应的参考时间段;
[0014] 处理单元,用于获取到数据信息;分别基于所述至少二个时间维度,确定所述数据信息对应的至少二个参考时间段;基于所述至少二个参考时间段,从所述M个数据分区中选取所述数据信息对应的数据分区;将所述数据信息存储至所述数据分区。
[0015] 本发明所提供的数据处理方法及服务器,在获取到数据信息的时候,基于划分好的M个数据分区以及所述数据信息对应的至少二个参考时间段,为所述数据信息选取数据分区;将所述数据信息存储至所述数据分区。通过设置数据存储对应的多个时间参考维度选取数据分区的方法,保证了数据的存储均衡性,进一步能够保证在读取数据时,读取接口的分布不会过于集中,提升了系统性能。

附图说明

[0016] 图1为本发明实施例数据处理方法流程示意图;
[0017] 图2为本发明实施例场景示意图一;
[0018] 图3为本发明实施例场景示意图二;
[0019] 图4为本发明实施例场景示意图三;
[0020] 图5为本发明实施例场景示意图四;
[0021] 图6为本发明实施例服务器组成结构示意图。

具体实施方式

[0022] 下面结合附图及具体实施例对本发明再作进一步详细的说明。
[0023] 实施例一、
[0024] 本发明实施例提供了一种数据处理方法,如图1所示,所述方法包括:
[0025] 步骤101:基于存储空间维度将存储空间划分为M个数据分区,其中,M为大于等于二的正整数;
[0026] 步骤102:基于至少二个时间维度,确定至少二个时间维度对应的参考时间段;
[0027] 步骤103:获取到数据信息;
[0028] 步骤104:分别基于所述至少二个时间维度,确定所述数据信息对应的至少二个参考时间段;
[0029] 步骤105:基于所述至少二个参考时间段,从所述M个数据分区中选取所述数据信息对应的数据分区;
[0030] 步骤106:将所述数据信息存储至所述数据分区。
[0031] 上述步骤101以及步骤102的执行不分先后顺序,可以先执行步骤102再执行步骤101,或者同时执行步骤101以及步骤102。
[0032] 这里,所述存储空间可以为由至少一个存储服务器组成的存储空间;比如,一个服务器集群中全部服务器均作为存储空间的物理载体。
[0033] 本实施例中,所述基于至少二个时间维度,确定所述数据信息对应的至少二个参考时间段,包括:分别基于第一时间维度以及第二时间维度,确定所述数据信息对应的第一参考时间段、以及第二参考时间段;
[0034] 相应的,所述基于所述至少二个参考时间段,从所述M个数据分区中选取所述数据信息对应的数据分区,包括:
[0035] 基于所述M个数据分区、所述第一参考时间段、第二参考时间段进行哈希计算,根据哈希计算得到的结果确定所述数据信息对应的数据分区。
[0036] 将所述存储空间划分为M个数据分区可以为根据实际情况进行设置,比如,可以将每一个服务器均作为一个数据分区,或者可以将两个或多个服务器组成一组作为一个数据分区。
[0037] 所述基于第一时间维度确定N个第一时间维度的参考时间段,可以为以一天为划分基础、以小时为划分粒度,具体的,所述确定N个第一时间维度的参考时间段可以为将一天24小时划分成24个参考时间段;或者,将24小时划分为12个参考时间段,也就是将连续的两个小时划分为同一个参考时间段。
[0038] 上述确定所述数据信息对应的第一参考时间段具体可以包括:从所述数据信息中提取时间信息;基于提取到的所述时间信息,从所述N个第一时间维度的参考时间段中选取所述数据信息对应的第一参考时间段。
[0039] 比如,首先将24小时分别划分为24个参考时间段,将时间段按照数字进行标识并且设置每一个时间段对应的具体起止时间范围,可以为第1个参考时间段至第24个参考时间段,第1个参考时间段表征了0:00至1:00这一段时间段,以此类推不做赘述。在接收到数据信息时,针对所述数据信息提取数据信息的发送时刻或者接收时刻,判断发送时刻或接收时刻处于上述哪个时间段的起止时间范围内,进而确定所述数据信息对应的第一参考时间段。
[0040] 优选地,上述操作全部完成之后,本实施例还提供针对收到的查询指令为用户从对应的数据分区处获取到数据信息的处理方法,所述方法包括:
[0041] 检测到数据查询指令;解析所述数据查询指令,得到所述数据查询指令的时间参数;基于所述M个数据分区以及所述时间参数,确定所述数据查询指令对应的数据信息所在的数据分区;从所述数据分区获取到所述数据信息。
[0042] 其中,所述检测到数据查询指令的方式可以为:用户通过自身的管理终端进入到数据管理的操作界面;在操作界面中可以输入所要查找的数据的时间范围;基于输入的信息生成数据查询指令。
[0043] 基于所述M个数据分区以及所述时间参数,确定所述数据查询指令对应的数据信息所在的数据分区,可以为:利用所述时间参数确定对应的参考时间段,基于所述M个数据分区以及所述参考时间段,确定数据分区。
[0044] 将所述存储空间划分为M个数据分区可以为根据实际情况进行设置,比如,可以将每一个服务器均作为一个数据分区,或者可以将两个或多个服务器组成一组作为一个数据分区。
[0045] 所述基于第一时间维度确定N个第一时间维度的参考时间段,可以为以一天为划分基础、以小时为划分粒度,具体的,所述确定N个第一时间维度的参考时间段可以为将一天24小时划分成24个参考时间段;或者,将24小时划分为12个参考时间段,也就是将连续的两个小时划分为同一个参考时间段。
[0046] 上述确定所述数据信息对应的第一参考时间段具体可以包括:从所述数据信息中提取时间信息;基于提取到的所述时间信息,确定对应的参考时间段。
[0047] 比如,首先将24小时分别划分为24个参考时间段,将时间段按照数字进行标识并且设置每一个时间段对应的具体起止时间范围,可以为第1个参考时间段至第24个参考时间段,第1个参考时间段表征了0:00至1:00这一段时间段,以此类推不做赘述。在接收到数据信息时,针对所述数据信息提取数据信息的发送时刻或者接收时刻,判断发送时刻或接收时刻处于上述哪个时间段的起止时间范围内,进而确定所述数据信息对应的第一参考时间段。
[0048] 本实施例基于第二时间维度确定L个第二时间维度的参考时间段;L为大于等于1的正整数;
[0049] 其中,所述第二时间维度的划分粒度大于所述第一时间维度的划分粒度划分得到的第二时间维度的参考时间段;比如,大于所述参考时间段的粒度可以为以每24小时为一个不同的时间参考值,也就是每一天作为一个第二参考时间段。在系统中还会保存针对每一个第二时间维度的参考时间段的起止时间值。
[0050] 优选地,上述操作全部完成之后,本实施例还提供针对收到的查询指令为用户从对应的数据分区处获取到数据信息的处理方法,所述方法包括:
[0051] 检测到数据查询指令;解析所述数据查询指令,得到所述数据查询指令的时间参数;基于所述M个数据分区以及所述时间参数,确定所述数据查询指令对应的数据信息所在的数据分区;从所述数据分区获取到所述数据信息。
[0052] 其中,所述检测到数据查询指令的方式可以为:用户通过自身的管理终端进入到数据管理的操作界面;在操作界面中可以输入所要查找的数据的时间范围;基于输入的信息生成数据查询指令。
[0053] 基于所述M个数据分区以及所述时间参数,确定所述数据查询指令对应的数据信息所在的数据分区,可以为:利用所述时间参数确定对应的参考时间段,基于所述M个数据分区以及所述参考时间段,确定数据分区。
[0054] 下面针对本实施例的方案提供一个场景说明:如果考虑时间多维度,可以进一步的保证每一天的热点时间内的数据信息不连续的分布在相邻的数据分区中。假设,第二时间维度(根据上述假设为天)为D,第一时间维度为H(小时),分区个数为Pn,那么按照下面的算法来计算分区:
[0055] (D+H)%Pn。那么不同天相同小时的range分区不会被分到相同的分区,避免出现小时的热点,使得各个分区的数据热度更为均匀,分区IO更为均衡。比如说H=1,D=1,那么按照公式(D+H)%Pn得到的是2;相同的小时,H=1,但是不同的天,比如D=2,那么按照公式得到的是3;由于对于每天而言H是一样的,但是D是不一样的,那么D+H是不一样的,那么按照公式,相同H不同D得到的值不同,那么分区就不同。最终分配得到的结果可以如图2所示,其中,可以看出第一天(D1)和第二天(D2)的第八个小时-第10个小时(H8-H10)的数据,分别分布在数据分区2、数据分区3、数据分区4和数据分区5中。
[0056] 可见,通过采用上述方案,能够在获取到数据信息的时候,基于划分好的M个数据分区以及所述数据信息对应的至少二个参考时间段,为所述数据信息选取数据分区;将所述数据信息存储至所述数据分区。通过设置数据存储对应的多个时间参考维度选取数据分区的方法,保证了数据的存储均衡性,进一步能够保证在读取数据时,读取接口的分布不会过于集中,提升了系统性能。
[0057] 实施例二、
[0058] 本发明实施例提供了一种数据处理方法,如图1所示,所述方法包括:
[0059] 步骤101:基于存储空间维度将存储空间划分为M个数据分区,其中,M为大于等于二的正整数;
[0060] 步骤102:基于至少二个时间维度,确定至少二个时间维度对应的参考时间段;
[0061] 步骤103:获取到数据信息;
[0062] 步骤104:分别基于所述至少二个时间维度,确定所述数据信息对应的至少二个参考时间段;
[0063] 步骤105:基于所述至少二个参考时间段,从所述M个数据分区中选取所述数据信息对应的数据分区;
[0064] 步骤106:将所述数据信息存储至所述数据分区。
[0065] 上述步骤101以及步骤102的执行不分先后顺序,可以先执行步骤102再执行步骤101,或者同时执行步骤101以及步骤102。
[0066] 这里,所述存储空间可以为由至少一个存储服务器组成的存储空间;比如,一个服务器集群中全部服务器均作为存储空间的物理载体。
[0067] 本实施例中,所述基于至少二个时间维度,确定所述数据信息对应的至少二个参考时间段,包括:分别基于第一时间维度以及第二时间维度,确定所述数据信息对应的第一参考时间段、以及第二参考时间段;根据所述第二参考时间段确定对应的热度窗口;
[0068] 相应的,所述基于所述至少二个参考时间段,从所述M个数据分区中选取所述数据信息对应的数据分区,包括:
[0069] 利用热度窗口与数据分区的个数进行哈希计算,得到第一计算结果;
[0070] 当所述第一计算结果不等于零时,利用第一参考时间段与所述热度窗口进行乘法计算,将乘法计算得到的结果与第二参考时间段相加得到第二计算结果,利用第二计算结果与数据分区的个数进行哈希计算得到所述数据信息在所述M个数据分区中对应的数据分区的编号;
[0071] 当所述第一计算结果等于零时,将热度窗口的数值减一得到调整的热度窗口,利用调整的热度窗口与第一参考时间段进行乘法计算,将乘法计算得到的记过与第二参考时间段相加得到第三计算结果,利用第三计算结果与数据分区的个数进行哈希计算得到所述数据信息在所述M个数据分区中对应的数据分区的编号。
[0072] 上述确定所述数据信息对应的第一参考时间段具体可以包括:从所述数据信息中提取时间信息;基于提取到的所述时间信息,确定对应的参考时间段。
[0073] 比如,首先将24小时分别划分为24个参考时间段,将时间段按照数字进行标识并且设置每一个时间段对应的具体起止时间范围,可以为第1个参考时间段至第24个参考时间段,第1个参考时间段表征了0:00至1:00这一段时间段,以此类推不做赘述。在接收到数据信息时,针对所述数据信息提取数据信息的发送时刻或者接收时刻,判断发送时刻或接收时刻处于上述哪个时间段的起止时间范围内,进而确定所述数据信息对应的第一参考时间段。
[0074] 本实施例基于第二时间维度确定L个第二时间维度的参考时间段,以及热度窗口;其中,所述第二时间维度的划分粒度大于所述第一时间维度的划分粒度划分得到的第二时间维度的参考时间段;比如,大于所述参考时间段的粒度可以为以每24小时为一个不同的时间参考值,也就是每一天作为一个第二时间维度的参考时间段。在系统中还会保存针对每一个第二参考时间段的起止时间值。
[0075] 其中,所述分别设置热度窗口,可以为根据实际情况进行设置,比如,可以根据经验值将上午8点-上午9点、以及下午七点至下午8点这几个参考时间段的热度窗口定为最高等,然后将剩余的参考时间段的热锻参考值定为较低等。
[0076] 优选地,上述操作全部完成之后,本实施例还提供针对收到的查询指令为用户从对应的数据分区处获取到数据信息的处理方法,所述方法包括:检测到数据查询指令;解析所述数据查询指令,得到所述数据查询指令的时间参数;基于所述M个数据分区以及所述时间参数,确定所述数据查询指令对应的数据信息所在的数据分区;从所述数据分区获取到所述数据信息。
[0077] 其中,所述检测到数据查询指令的方式可以为:用户通过自身的管理终端进入到数据管理的操作界面;在操作界面中可以输入所要查找的数据的时间范围;基于输入的信息生成数据查询指令。
[0078] 基于所述M个数据分区以及所述时间参数,确定所述数据查询指令对应的数据信息所在的数据分区,可以为:利用所述时间参数确定对应的参考时间段,基于所述M个数据分区以及所述参考时间段,确定数据分区。
[0079] 下面针对现有技术进一步的阐述本申请的效果:当前针对时间列的处理主要是采用时间维度分区,但是仅仅使用时间的单一维度进行分区,比如按照周、按照天或者按照小时,没有考虑到数据业务在不同时间周期中的热度,导致分区存在热点现象,影响整个系统的性能。
[0080] 比如电信领域的某网管系统,会保存6天的数据(分别标记为D1-D6),数据业务查询粒度是小时,会对最近2天数据(D1、D2)查询的比较频繁,尤其更关心一天的8-10点(H8-H10)这几个小时数据,如果按照天来分区,那么D1和D2所在的分区(Partition1、Parititon2)被访问的次数多,对应的热度也就高,如图3所示,假定有6个数据分区,数据分区0和数据分区1由于保存第一天(D1)和第二天(D2)的数据,所以被访问频繁,IO紧张。但其他节点保存的是前几天的数据,被访问次数少,分区对应的IO资源存在浪费。
[0081] 如果按照小时range分区,可以将每天的热度打散,均衡一定的IO,但是由于每天不同小时还是存在热度差距,所以不同分区并没有充分利用整个系统的IO能力,达到系统的最高性能。如图4所示,每天的数据都被分散到所有的分区,平衡了每天访问的热度,较图3有很大的改善,但由于H8-H10这3个小时被用户频繁查询,是访问的热点,且这3个小时都分布在分区2,这个分区的热度比其他分区的热度高,导致这个分区的IO比其他分区高,从而成为系统性能的瓶颈。
[0082] 本发明实施例的方案则由于数据业务在相邻时间上具有连续性即相邻的几个时间点数据业务特征比较接近,热度也比较接近,比如D1-D2这两天查询比较频繁,每天的H8-H10访问比较频繁。按照上述简单考虑多维度因素,不考虑热度窗口,还是出现热点分区,因为相邻天的同一小时仅仅会相差一个分区,如上述例子连续2天有热点且每天连续3小时有热点,那么即使按照上述分区算法会有重叠的热点小时数据在相同的分区上,比如分区2和分区3,分别存储D1和D2的2个小时的热点数据。为了更好的在所有分区上分布数据,提出下面的分区算法:
[0083] 公式一:当L%Pn≠0:(D*L+H)%Pn;
[0084] 公式二:当L%Pn=0:{D*(L-1)+H}%Pn;
[0085] 其中的D为第二时间维度,日;H为第一时间维度,小时;L为第一时间维度H的热度窗口,Pn为分区个数。可以理解的是,公式二中如果L不进行-1操作,由于L除于Pn余数等于0,那么表达式直接就是H除以Pn,不符合计算逻辑,其中L-1是一种方案,也可以采用L+1的计算方式。
[0086] 在本实施例中由于在第一时间维度也就是最小粒度的上一粒度即第二时间维度乘以最小粒度的热点窗口进行哈希计算,可以使得相邻天的不同小时也不会在相差一个分区,可以更好地将多个维度上相邻的热度分区分布的更均衡。举例说明:如果是H=1,D=1,那么不乘以热点窗口,就得到2;如果H=1,那么相邻的第二天就是D=2,那么得到的值就是3,那么相邻天相同的H就相差1,那么就相差一个分区。
[0087] 如果D乘以一个热度窗口:
[0088] H=1,D=1,(1X4+1)与Pn取于=5;H=1,D=2,(2X4+1)与Pn取于=3;可以看出得到的值不相邻,那分区也不相邻如果L正好是Pn的整数倍,为了避免由于热点窗口的原因导致的D的因素被忽略掉,所以在公式1的基础上修正为公式2。按照该分区方法得到的分区分布图如图5所示,以第一天、第二天,即D1和D2的第8小时-第10小时(H8-H10)为例进行描述,假设H8-H10的热度窗口为最大值,进过公式一以及公式二进行计算,可以分别将D1-D2的H8-H10的数据信息放在六个数据分区中。
[0089] 可见,通过采用上述方案,能够在获取到数据信息的时候,基于划分好的M个数据分区以及所述数据信息对应的至少二个参考时间段,为所述数据信息选取数据分区;将所述数据信息存储至所述数据分区。通过设置数据存储对应的多个时间参考维度选取数据分区的方法,保证了数据的存储均衡性,进一步能够保证在读取数据时,读取接口的分布不会过于集中,提升了系统性能。
[0090] 实施例三、
[0091] 本发明实施例提供了一种数据处理方法,如图1所示,所述方法包括:
[0092] 步骤101:基于存储空间维度将存储空间划分为M个数据分区,其中,M为大于等于二的正整数;
[0093] 步骤102:基于至少二个时间维度,确定至少二个时间维度对应的参考时间段;
[0094] 步骤103:获取到数据信息;
[0095] 步骤104:分别基于所述至少二个时间维度,确定所述数据信息对应的至少二个参考时间段;
[0096] 步骤105:基于所述至少二个参考时间段,从所述M个数据分区中选取所述数据信息对应的数据分区;
[0097] 步骤106:将所述数据信息存储至所述数据分区。
[0098] 上述步骤101以及步骤102的执行不分先后顺序,可以先执行步骤102再执行步骤101,或者同时执行步骤101以及步骤102。
[0099] 这里,所述存储空间可以为由至少一个存储服务器组成的存储空间;比如,一个服务器集群中全部服务器均作为存储空间的物理载体。
[0100] 将所述存储空间划分为M个数据分区可以为根据实际情况进行设置,比如,可以将每一个服务器均作为一个数据分区,或者可以将两个或多个服务器组成一组作为一个数据分区。
[0101] 本发明实施例提供的方案还可以不仅限于计算分区的时候考虑二维时间因素和数据业务特点/数据热度,只要基于多维的时间因素和数据业务数据热度的分区算法都在该专利的保护范围里。考虑时间的更多维度和数据热度来进行分区主要思路是时间维度与下一个时间维度热度的窗口乘积之和。具体描述如下:
[0102] 所述基于至少二个时间维度,确定所述数据信息对应的至少二个参考时间段,包括:
[0103] 分别基于第一时间维度,确定数据信息对应的第一参考时间段;
[0104] 基于第二时间维度,确定数据信息对应的第二参考时间段,并确定第二参考时间段对应的第一热度窗口;
[0105] 基于第三时间维度,确定数据信息对应的第三参考时间段,并确定所述第三参考时间段对应的第二热度窗口;
[0106] 基于第四时间维度,确定数据信息对应的第四参考时间段,并确定所述第四参考时间段对应的第三热度窗口。
[0107] 所述基于所述至少二个参考时间段,从所述M个数据分区中选取所述数据信息对应的数据分区,包括:
[0108] 利用第一参考时间段与第一热度窗口相乘得到第一子参数,利用第二参考时间段与第二热度窗口相乘得到第二子参数,利用第三参考时间段与第三热度窗口相乘得到第三子参数;
[0109] 将第一子参数、第二子参数、第三子参数以及第四参考时间段相加得到的计算结果与数据分区的个数M进行哈希计算,得到所述数据信息在所述M个数据分区中对应的数据分区的编号。
[0110] 其中,上述四个时间维度的划分粒度可以为依次变细,比如,假设第一时间维度是年Y,第二时间维度是月M,热度窗口是Mlen,第三时间维度是日D,热度窗口是Dlen,第四时间维度是小时H,热度窗口是Hlen;分区个数是Pn,那么分区算法可以为:(Y*Mlen+M*Dlen+D*Hlen+H)%Pn。
[0111] 本发明针对时间单一维度分区存在的缺点,提出一个基于时间多维度的分区方法。分区的时候不是考虑一个维度上的时间,而是综合考虑多个时间维度,并将对应的数据冷热情况加入到分区的计算,大大均衡了数据热度,充分利用各个分区的IO能力,获得系统整体更高的性能。
[0112] 可见,通过采用上述方案,能够在获取到数据信息的时候,基于划分好的M个数据分区以及所述数据信息对应的至少二个参考时间段,为所述数据信息选取数据分区;将所述数据信息存储至所述数据分区。通过设置数据存储对应的多个时间参考维度选取数据分区的方法,保证了数据的存储均衡性,进一步能够保证在读取数据时,读取接口的分布不会过于集中,提升了系统性能。
[0113] 实施例四、
[0114] 本发明实施例提供了一种服务器,如图6所示,包括:
[0115] 设置单元61,用于基于存储空间维度将存储空间划分为M个数据分区,其中,M为大于等于二的正整数;基于至少二个时间维度,确定至少二个时间维度对应的参考时间段;
[0116] 处理单元62,用于获取到数据信息;分别基于所述至少二个时间维度,确定所述数据信息对应的至少二个参考时间段;基于所述至少二个参考时间段,从所述M个数据分区中选取所述数据信息对应的数据分区;将所述数据信息存储至所述数据分区。
[0117] 这里,所述存储空间可以为由至少一个存储服务器组成的存储空间;比如,一个服务器集群中全部服务器均作为存储空间的物理载体。
[0118] 将所述存储空间划分为M个数据分区可以为根据实际情况进行设置,比如,可以将每一个服务器均作为一个数据分区,或者可以将两个或多个服务器组成一组作为一个数据分区。
[0119] 所述处理单元62,具体用于分别基于第一时间维度以及第二时间维度,确定所述数据信息对应的第一参考时间段、以及第二参考时间段;基于所述M个数据分区、所述第一参考时间段、第二参考时间段进行哈希计算,根据哈希计算得到的结果确定所述数据信息对应的数据分区。
[0120] 所述基于第一时间维度确定N个第一时间维度的参考时间段,可以为以一天为划分基础、以小时为划分粒度,具体的,所述确定N个第一时间维度的参考时间段可以为将一天24小时划分成24个参考时间段;或者,将24小时划分为12个参考时间段,也就是将连续的两个小时划分为同一个参考时间段。
[0121] 所述处理单元62,具体用于从所述数据信息中提取时间信息;基于提取到的所述时间信息,确定对应的参考时间段。
[0122] 比如,首先将24小时分别划分为24个参考时间段,将时间段按照数字进行标识并且设置每一个时间段对应的具体起止时间范围,可以为第1个参考时间段至第24个参考时间段,第1个参考时间段表征了0:00至1:00这一段时间段,以此类推不做赘述。在接收到数据信息时,针对所述数据信息提取数据信息的发送时刻或者接收时刻,判断发送时刻或接收时刻处于上述哪个时间段的起止时间范围内,进而确定所述数据信息对应的第一参考时间段。
[0123] 优选地,上述操作全部完成之后,本实施例还提供针对收到的查询指令为用户从对应的数据分区处获取到数据信息的处理方法,所述处理单元62,还用于检测到数据查询指令;解析所述数据查询指令,得到所述数据查询指令的时间参数;基于所述M个数据分区以及所述第一参考时间,确定所述数据查询指令对应的数据信息所在的数据分区;从所述数据分区获取到所述数据信息。
[0124] 其中,所述处理单元,还用于用户通过自身的管理终端进入到数据管理的操作界面;在操作界面中可以输入所要查找的数据的时间范围;基于输入的信息生成数据查询指令。
[0125] 所述处理单元,具体用于利用所述时间参数确定对应的参考时间段,基于所述M个数据分区以及所述参考时间段,确定数据分区。
[0126] 可见,通过采用上述方案,能够在获取到数据信息的时候,基于划分好的M个数据分区以及所述数据信息对应的至少二个参考时间段,为所述数据信息选取数据分区;将所述数据信息存储至所述数据分区。通过设置数据存储对应的多个时间参考维度选取数据分区的方法,保证了数据的存储均衡性,进一步能够保证在读取数据时,读取接口的分布不会过于集中,提升了系统性能。
[0127] 实施例五、
[0128] 本发明实施例提供了一种服务器,如图6所示,包括:
[0129] 设置单元61,用于基于存储空间维度将存储空间划分为M个数据分区,其中,M为大于等于二的正整数;基于至少二个时间维度,确定至少二个时间维度对应的参考时间段;
[0130] 处理单元62,用于获取到数据信息;分别基于所述至少二个时间维度,确定所述数据信息对应的至少二个参考时间段;基于所述至少二个参考时间段,从所述M个数据分区中选取所述数据信息对应的数据分区;将所述数据信息存储至所述数据分区。
[0131] 这里,所述存储空间可以为由至少一个存储服务器组成的存储空间;比如,一个服务器集群中全部服务器均作为存储空间的物理载体。
[0132] 将所述存储空间划分为M个数据分区可以为根据实际情况进行设置,比如,可以将每一个服务器均作为一个数据分区,或者可以将两个或多个服务器组成一组作为一个数据分区。
[0133] 所述处理单元62,还用于分别基于第一时间维度以及第二时间维度,确定所述数据信息对应的第一参考时间段、以及第二参考时间段;根据所述第二参考时间段确定对应的热度窗口。
[0134] 所述处理单元,具体用于利用热度窗口与数据分区的个数进行哈希计算,得到第一计算结果;当所述第一计算结果不等于零时,利用第一参考时间段与所述热度窗口进行乘法计算,将乘法计算得到的结果与第二参考时间段相加得到第二计算结果,利用第二计算结果与数据分区的个数进行哈希计算得到所述数据信息在所述M个数据分区中对应的数据分区的编号;当所述第一计算结果等于零时,将热度窗口的数值减一得到调整的热度窗口,利用调整的热度窗口与第一参考时间段进行乘法计算,将乘法计算得到的记过与第二参考时间段相加得到第三计算结果,利用第三计算结果与数据分区的个数进行哈希计算得到所述数据信息在所述M个数据分区中对应的数据分区的编号。
[0135] 本发明实施例的方案则由于数据业务在相邻时间上具有连续性即相邻的几个时间点数据业务特征比较接近,热度也比较接近,比如D1-D2这两天查询比较频繁,每天的H8-H10访问比较频繁。按照上述简单考虑多维度因素,不考虑热度窗口,还是出现热点分区,因为相邻天的同一小时仅仅会相差一个分区,如上述例子连续2天有热点且每天连续3小时有热点,那么即使按照上述分区算法会有重叠的热点小时数据在相同的分区上,比如分区2和分区3,分别存储D1和D2的2个小时的热点数据。为了更好的在所有分区上分布数据,提出下面的分区算法:
[0136] 公式一:当L%Pn≠0:(D*L+H)%Pn;
[0137] 公式二:当L%Pn=0:{D*(L-1)+H}%Pn;
[0138] 其中的D为第二时间维度,日;H为第一时间维度,小时;L为第一时间维度H的热度窗口,Pn为分区个数。可以理解的是,公式二中如果L不进行-1操作,由于L除于Pn余数等于0,那么表达式直接就是H除以Pn,不符合计算逻辑,其中L-1是一种方案,也可以采用L+1的计算方式。
[0139] 在本实施例中由于在第一时间维度也就是最小粒度的上一粒度即第二时间维度乘以最小粒度的热点窗口进行哈希计算,可以使得相邻天的不同小时也不会在相差一个分区,可以更好地将多个维度上相邻的热度分区分布的更均衡。举例说明:如果是H=1,D=1,那么不乘以热点窗口,就得到2;如果H=1,那么相邻的第二天就是D=2,那么得到的值就是3,那么相邻天相同的H就相差1,那么就相差一个分区。
[0140] 如果D乘以一个热度窗口:
[0141] H=1,D=1,(1X4+1)与Pn取于=5;H=1,D=2,(2X4+1)与Pn取于=3;可以看出得到的值不相邻,那分区也不相邻如果L正好是Pn的整数倍,为了避免由于热点窗口的原因导致的D的因素被忽略掉,所以在公式1的基础上修正为公式2。按照该分区方法得到的分区分布图如图6所示,以第一天、第二天,即D1和D2的第8小时-第10小时(H8-H10)为例进行描述,假设H8-H10的热度窗口为最大值,进过公式一以及公式二进行计算,可以分别将D1-D2的H8-H10的数据信息放在六个数据分区中。
[0142] 进一步的,本发明实施例提供的方案还可以不仅限于计算分区的时候考虑二维时间因素和数据业务特点/数据热度,只要基于多维的时间因素和数据业务数据热度的分区算法都在该专利的保护范围里。考虑时间的更多维度和数据热度来进行分区主要思路是时间维度与下一个时间维度热度的窗口乘积之和。以第四维度举例,所述处理单元62,具体用于分别基于第一时间维度,确定数据信息对应的第一参考时间段;基于第二时间维度,确定数据信息对应的第二参考时间段,并确定第二参考时间段对应的第一热度窗口;基于第三时间维度,确定数据信息对应的第三参考时间段,并确定所述第三参考时间段对应的第二热度窗口;基于第四时间维度,确定数据信息对应的第四参考时间段,并确定所述第四参考时间段对应的第三热度窗口。
[0143] 所述处理单元,具体用于利用第一参考时间段与第一热度窗口相乘得到第一子参数,利用第二参考时间段与第二热度窗口相乘得到第二子参数,利用第三参考时间段与第三热度窗口相乘得到第三子参数;将第一子参数、第二子参数、第三子参数以及第四参考时间段相加得到的计算结果与数据分区的个数M进行哈希计算,得到所述数据信息在所述M个数据分区中对应的数据分区的编号。
[0144] 其中,假设第一时间维度是年Y,第二时间维度是月M,第一热度窗口是Mlen,第三时间维度是日D,第二热度窗口是Dlen,第四时间维度是小时H,第三热度窗口是Hlen;分区个数是Pn,那么分区算法可以为:(Y*Mlen+M*Dlen+D*Hlen+H)%Pn。
[0145] 本发明针对时间单一维度分区存在的缺点,提出一个基于时间多维度的分区方法。分区的时候不是考虑一个维度上的时间,而是综合考虑多个时间维度,并将对应的数据冷热情况加入到分区的计算,大大均衡了数据热度,充分利用各个分区的IO能力,获得系统整体更高的性能。
[0146] 可见,通过采用上述方案,能够在获取到数据信息的时候,基于划分好的M个数据分区以及所述数据信息对应的至少二个参考时间段,为所述数据信息选取数据分区;将所述数据信息存储至所述数据分区。通过设置数据存储对应的多个时间参考维度选取数据分区的方法,保证了数据的存储均衡性,进一步能够保证在读取数据时,读取接口的分布不会过于集中,提升了系统性能。
[0147] 本发明实施例所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。
[0148] 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。