[发明专利]基于内存计算的集群时态数据索引方法有效
申请号: | 201810430432.4 | 申请日: | 2018-05-08 |
公开(公告)号: | CN108733781B | 公开(公告)日: | 2021-10-29 |
发明(设计)人: | 郑啸;刘厚凯;吴宣够;秦峰 | 申请(专利权)人: | 安徽工业大学 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2458 |
代理公司: | 南京九致知识产权代理事务所(普通合伙) 32307 | 代理人: | 王培松 |
地址: | 243099 安*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 内存 计算 集群 时态 数据 索引 方法 | ||
1.一种基于集群内存计算下的时态数据索引方法,其特征在于,采用双层索引方法,先将数据进行分区,对分区建立轻量级索引,然后在其内部的Array数据集建立时态索引,其具体实现包括如下索引建立和查询索引两部分:
S1.索引建立
(1)获取集群的最大并发数,存入配置信息表中;
(2)对数据进行分区,判断整个数据集下的最高区分单位,然后将同一单位的数据根据比重划分分区数量,使相邻时间数据分到相同的分区中;
(3)将分区内部整个数据集分成表示事件将要开始的索引表ST,事件将要结束的索引表ED,事件已经存在的索引表ID三类;
(4)建立ST、ED与ID索引表,取数据集中的最小开始时间点作为基准点basetime,把数据集中其他开始时间点与此基准点的差值作为key值,表中事件记录所在数组的下标作为value值建立索引;
(5)ID表的建立,采用时间间断方法,首先获取整个数据集的时间段范围N,选取个点作为实际存储点,各点之间的距离单位,根据时间段中存在某个存储点,则在ID表中添加到相应位置即可,故该时间间隔方法相比不进行数据压缩的空间极限压缩比
S2.索引查询:
接收查询指令,先通过与分区时返回的所有最大时间点进行索引查询,对整体数据集进行剪枝操作,快速找到结果所在分区,然后进入分区内部根据时态索引方法进行二次查询,得出结果。
2.根据权利要求1所述的基于集群内存计算下的时态数据索引方法,其特征在于,所述步骤S2的索引查询,其具体实现包括:
(1)接收查询指令,首先根据查询开始时间点与分区边界数组进行对比,获取结果数据集所在分区,然后根据时态数据间的关系进行计算,其中,时态数据间的关系如下:
当前时间点处存在的事件=前一时间点处存在的事件-前一时间点处结束的事件+当前时间点处开始的事件;
(2)进行时间点或者时间范围查询时,取出ST表,并将查询时间点与ID表中记录的时间间隔取余,获取ID表中最近的存储点,根据公式ID(i+1)=ID(i)+ST(i+1)-ED(i+1)计算出该点的ID值,i代表所述存储点,时间点查询下再获取ST索引表中该点值,相加即为结果数据集;
(3)时间范围查询时,在ST表取(start,end)范围内的值相加即为结果数据集;
(4)进行时间段查询时,将时间段的开始时间点根据基准时间点转换成key值,与ID表的存储值间隔大小取余,获取所查时间段开始时间戳处最近的存储点,根据推导公式ID(i+1)=ID(i)+ST(i+1)-ED(i+1)计算得该开始时间点处的ID表值A,然后获取ST表中(start,end)时间范围内的所有值B,最终查询结果集即为A与B的合集。
3.根据权利要求1所述的基于集群内存计算下的时态数据索引方法,其特征在于,在前述步骤对数据进行分区过程中,对时态数据集进行相应分区,使相邻的时间数据放到同一分区中,便于压缩建立时态索引时的空间消耗,并采集该分区的一系列值作为表征数据,选择其中的最大时间点作为该分区的索引唯一值,分区数量设置为集群最大并发数的倍数。
4.根据权利要求3所述的基于集群内存计算下的时态数据索引方法,其特征在于,在前述步骤对数据进行分区过程中,首先获取原数据集的最高区分单位进行区分,采用当前集群的最大并发数*5的数量作为总分区数量,并遵从尽量保持相邻数据存在同一分区的原则对数据进行分区,在数据重分区时,首先判断整个数据集的最高区分单位,依据各单位的数据总量对分区总数进行相应划分,将同单位的相邻时间数据分到同一分区中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安徽工业大学,未经安徽工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810430432.4/1.html,转载请声明来源钻瓜专利网。