基于内存计算的集群时态数据索引方法技术

技术编号:19320521 阅读:30 留言:0更新日期:2018-11-03 10:58
本发明专利技术提供一种基于集群内存计算下的时态数据索引方法,采用双层索引方法,先将数据进行分区,对分区建立轻量级索引,然后在其内部的Array数据集建立本发明专利技术的时态索引。在分区过程中,根据时态索引的建立过程进行了相关优化,降低了分区内部建立索引的空间消耗,分区加快了查询时对数据集的剪枝过程,提高了查询的效率,优化时态索引的建立及查询代价。本发明专利技术可在保证一定查询速度的情况下,减少索引空间的大小,优化了同类索引中存储空间过大的问题;同时减少了对时态大数据的查询的延迟,提高了整体的吞吐量。

Cluster based temporal data indexing method based on memory computing

The present invention provides a temporal data indexing method based on cluster memory calculation. The method uses a double-layer indexing method to partition the data, establish a lightweight index on the partition, and then establish the temporal index of the present invention on the Array data set inside the partition. In the process of partitioning, relevant optimization is carried out according to the establishment process of temporal index, which reduces the space consumption of index establishment within partition, speeds up the process of data set pruning, improves the efficiency of query, optimizes the establishment of temporal index and the cost of query. The invention can reduce the size of index space and optimize the problem of excessive storage space in the same kind of index while ensuring a certain query speed, reduce the delay of querying large temporal data and improve the overall throughput.

【技术实现步骤摘要】
基于内存计算的集群时态数据索引方法
本专利技术涉及一种基于内存计算的集群时态数据索引方法,属于云计算、时态大数据领域。
技术介绍
时态数据是一系列表示某个时间点状态的数据,描述了被测量的主体在历史的时间维度上的状态信息,如在水文监控、工厂的设备监控、通讯监控、金融行业指标数据等。及时对时序数据的有效分析,可以发现事物发展的历史性,规律性,并能指导着作出相应决策判断。面对当今海量数据中的时态数据(例如,一辆联网汽车每小时产生25G数据),如何有效的进行查询处理,仍是一大热点研究问题。近年来,数据库领域已经出现了一些针对时态数据高效率查询的索引结构,然而传统数据库为关系型数据库,无法高效的处理海量的非关系型数据,且支持容量有限、不易拓展等特性使其无法满足海量数据下的客户需求。现有的大数据、云计算等高新领域的崛起为高效处理海量的时态数据提供了可能。其中的集群计算成为了大数据领域内最流行的一种解决方案,它实现内存计算和多机并行处理机制的同时,保证了任务执行的高吞吐量及低延迟特性。时态大数据数据下,现有的时态索引利用空间换取时间的方法为提高查询效率,往往采用用空间换取时间的办法,虽然查询效率得到了一定的提升,但额外占用的大量存储空间仍是不可避免的,并且很多都是基于外存计算的,相比内存计算方法,外存的计算速度明显会低几个数量级。如果把此类基于外存相关时态索引算法应用到集群的内存计算框架中,过大的内存消耗对集群的负载能力是一种巨大挑战,利用高消耗的内存容量换取一定的查询速度也显然不太实际。
技术实现思路
因此,鉴于当前时态索引方法在集群基于内存计算的缺陷,本专利技术提出了一种的更适合于集群中内存计算的时态大数据索引方法,该方法利用内存计算中数据全部放到内存中的计算高效性及时态数据间的特点,提出使用计算时间压缩索引存储空间的算法,并对该算法进行了一定的优化,既能利用高效的索引查询方法,又能避免过大的索引空间开销。本专利技术提出的基于内存计算的集群时态数据索引方法,可实现一个支持针对时态大数据查询的索引,在基于内存计算的集群中,通过利用内存计算的高效性与时态数据间的特点对索引进行查询时间与建立索引空间之间的权衡,实现了基于内存计算的集群中对时态大数据的高吞吐、低延迟的查询操作。本专利技术针对上述问题,提出一种基于集群内存计算的时态数据索引方法,结合时态数据的特征建立一系列优化方案(如分区策略,时态索引等),实现对海量时态数据高效率的查询,推进时态数据的高可用性。有关本专利技术的详细特征与实现,兹配合附图在实施方式中详细说明如下,其内容足以使任何领域技术人员了解本专利技术的
技术实现思路
并据以实施,且根据本说明书所揭露的内容附图,任何领域技术人员可轻易地理解本专利技术相关的目的及优点。本专利技术的具体技术方案如下:一种基于集群内存计算下的时态数据索引方法,属于双层索引方法,先将数据进行分区,对分区建立轻量级索引,然后在其内部的Array数据集建立本专利技术的时态索引。在分区过程中,根据时态索引的建立过程进行了相关优化,降低了分区内部建立索引的空间消耗,分区加快了查询时对数据集的剪枝过程,提高了查询的效率,优化时态索引的建立及查询代价。具体包括如下索引建立和查询索引两部分技术实现过程:1.索引建立(1)获取集群的最大并发数,存入配置信息表中;(2)对数据进行分区,首先判断整个数据集下的最高区分单位,然后将同一单位的数据根据比重划分分区数量,使相邻时间数据分到相同的分区中,保证运行时一定的负载平衡,降低了建立索引时的空间开销,实现更好的数据压缩;(3)将分区内部整个数据集分成表示事件将要开始的索引表ST,事件将要结束的索引表ED,事件已经存在的索引表ID三类;(4)建立ST、ED与ID索引表,取数据集中的最小开始时间点作为基准点basetime,把数据集中其他开始时间点与此基准点的差值作为key值,表中事件记录所在数组的下标作为value值建立索引;(5)ID表的建立,采用时间间断方法,首先获取整个数据集的时间段范围N,选取个点作为实际存储点,各点之间的距离单位,根据时间段中存在某个存储点,则在ID表中添加到相应位置即可,故该算法相比不进行数据压缩的空间极限压缩比2.索引查询:接收查询指令,先通过与分区时返回的所有最大时间点进行索引查询,对整体数据集进行剪枝操作,快速找到结果所在分区,然后进入分区内部根据本专利技术的时态索引方法进行二次查询,得出结果。进一步的所述步骤2的索引查询,其具体实现包括:(1)接收查询指令,首先根据查询开始时间点与分区边界数组进行对比,获取结果数据集所在分区,然后根据时态数据间的关系进行计算,其中,时态数据间的关系如下:当前时间点处存在的事件=前一时间点处存在的事件-前一时间点处结束的时间+当前时间点处开始的事件;(5)进行时间点或者时间范围查询时,取出ST表,并将查询时间点与ID表中记录的时间间隔取余,获取ID表中最近的存储点,根据公式ID(i+1)=ID(i)+ST(i+1)-ED(i+1)计算出该点的ID值,时间点查询下再获取ST索引表中该点值,相加即为结果数据集;(6)时间范围查询时,在ST表取(start,end)范围内的值相加即为结果数据集;(7)进行时间段查询时,将时间段的开始时间点根据基准时间点转换成key值,与ID表的存储值间隔大小取余,获取所查时间段开始时间戳处最近的存储点,根据推导公式ID(i+1)=ID(i)+ST(i+1)-ED(i+1)计算得该开始时间点处的ID表值A,然后获取ST表中(start,end)时间范围内的所有值B,最终查询结果集即为A与B的合集。进一步的实施例中,在前述步骤对数据进行分区过程中,对时态数据集进行相应分区,使相邻的时间数据放到同一分区中,便于压缩建立时态索引时的空间消耗,并采集该分区的一系列值作为表征数据,选择其中的最大时间点作为该分区的索引唯一值,分区数量设置为集群最大并发数的倍数。进一步的实施例中,在前述步骤对数据进行分区过程中,采用当前集群的最大并发数*5的数量作为总分区数量,并遵从尽量保持相邻数据存在同一分区的原则对数据进行分区,在数据重分区时,首先判断整个数据集的最高分区单位,依据各单位的数量总量对分区总数进行相应划分,将同单位的相邻时间数据分到同一分区中。本专利技术的显著优点在于:针对时下集群模式最流行的内存计算方法,利用时态数据间的规律,引入一种使用计算时间换取存储空间的方法,保证一定查询速度的情况下,减少索引空间的大小,优化了同类索引中存储空间过大的问题;同时减少了对时态大数据的查询的延迟,提高了整体的吞吐量,结合集群环境下的等特点,能够为时态大数据的快速查询与分析提供一个稳定可靠的索引算法。附图说明图1本专利技术的主函数程序框图。图2本专利技术的数据分区流程框图。图3本专利技术的建立索引过程框图。图4本专利技术的查询请求操作执行过程框图。具体实施方案ApacheSpark是一款基于内存计算的集群大数据处理框架,符合我们的应用范围,故我们选用ApacheSpark集群作为实施例进行详细介绍,集群配置不再做详细叙述。为让本专利技术的上述及其他目的、特征及优点能更明显异动,下面结合附图并举例对本专利技术进行详细阐述。结合图1-图4,本专利技术提出的一种基于集群内存计算下的时态数据索引方法,属于双层索本文档来自技高网
...

【技术保护点】
1.一种基于集群内存计算下的时态数据索引方法,其特征在于,采用双层索引方法,先将数据进行分区,对分区建立轻量级索引,然后在其内部的Array数据集建立时态索引,其具体实现包括如下索引建立和查询索引两部分:1.索引建立(1)获取集群的最大并发数,存入配置信息表中;(2)对数据进行分区,判断整个数据集下的最高区分单位,然后将同一单位的数据根据比重划分分区数量,使相邻时间数据分到相同的分区中;(3)将分区内部整个数据集分成表示事件将要开始的索引表ST,事件将要结束的索引表ED,事件已经存在的索引表ID三类;(4)建立ST、ED与ID索引表,取数据集中的最小开始时间点作为基准点basetime,把数据集中其他开始时间点与此基准点的差值作为key值,表中事件记录所在数组的下标作为value值建立索引;(5)ID表的建立,采用时间间断方法,首先获取整个数据集的时间段范围N,选取

【技术特征摘要】
1.一种基于集群内存计算下的时态数据索引方法,其特征在于,采用双层索引方法,先将数据进行分区,对分区建立轻量级索引,然后在其内部的Array数据集建立时态索引,其具体实现包括如下索引建立和查询索引两部分:1.索引建立(1)获取集群的最大并发数,存入配置信息表中;(2)对数据进行分区,判断整个数据集下的最高区分单位,然后将同一单位的数据根据比重划分分区数量,使相邻时间数据分到相同的分区中;(3)将分区内部整个数据集分成表示事件将要开始的索引表ST,事件将要结束的索引表ED,事件已经存在的索引表ID三类;(4)建立ST、ED与ID索引表,取数据集中的最小开始时间点作为基准点basetime,把数据集中其他开始时间点与此基准点的差值作为key值,表中事件记录所在数组的下标作为value值建立索引;(5)ID表的建立,采用时间间断方法,首先获取整个数据集的时间段范围N,选取个点作为实际存储点,各点之间的距离单位,根据时间段中存在某个存储点,则在ID表中添加到相应位置即可,故该算法相比不进行数据压缩的空间极限压缩比2.索引查询:接收查询指令,先通过与分区时返回的所有最大时间点进行索引查询,对整体数据集进行剪枝操作,快速找到结果所在分区,然后进入分区内部根据本发明的时态索引方法进行二次查询,得出结果。2.根据权利要求1所述的基于集群内存计算下的时态数据索引方法,其特征在于,所述步骤2的索引查询,其具体实现包括:(1)接收查询指令,首先根据查询开始时间点与分区边界数组进行对比,获取结果数据集所在分区,然后根据时态数据间的关系进行计算,其中,时态数据间的关系如下:当前时间点处存在的事件=前一时间点...

【专利技术属性】
技术研发人员:郑啸刘厚凯吴宣够秦峰
申请(专利权)人:安徽工业大学
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1