一种基于时间序列存储模型扩展以及匹配优化方法与流程

文档序号:16146928发布日期:2018-12-05 16:36阅读:626来源:国知局

本发明公开了一种基于传统时间序列存储模型扩展以及在扩展后的不确定时间序列存储模型上采用在多核处理器的硬件环境下利用子任务以及并行计算的思想解决匹配效率的问题。扩展后的不确定时序存储模型解决了传统的关系型数据库存储不确定时序的开销,数据表达缺陷的问题,并清晰的表达了不确定数据的信息。本方法属于不确定时序处理技术领域,是一种在传统时序存储模型的扩展。

背景技术

随着数据存储增加,实际中对数据长时间记录已经越来越重视了,以时间点变化为依据的数据称之为时间序列(timeseries)。而当伴随着传感器检测,位置定位和隐私保护的领域的研究的深入,数据的不确定因素也已经逐渐引起了研究者的关注,数据的不确定性有两种主要形式,即对象确定性和属性不确定性。如果一个对象本身的存在无法得到确认,那么就认为数据属于对象不确定性,并使用一个概率p(0,1)来表示这个对象存在的概率。如果一个对象在某一个或者一些属性上的值不精确或者缺失,就认为这个对象属于属性不确定性,并对每个属性的真实值(probabilitydensityfunction,pdf)来表示该对象属性上值的分布。我们也称这种带不确定因素的序列为不确定时间序列(uncertaintimeseries)。

对于时间序列的存储,由于每一个时刻上点的属性都是确定的,那么用经典的关系型数据库或者当下流行的nosql数据库来存入时间序列是没有问题的。对于时序数据的特点:

1、数据量大:拿监控数据为例,如果每次监控数据的时间间隔是1s,那么每天将产生86400个数据点,若有10000个监控项,这个数字会更大,整个数据规模,是tb甚至是pb级的。

2、冷热分明:时序数据具有冷热特征,越是历史数据,被查询和分析的概率就越低。

3、具有失效性:会保存一个周期,超过这个周期可以认为是失效的,可以被回收。

4、多精度存储:在查询的特点中,会有一个多精度的查询。

结合时序数据的特点来看,时序数据库的特点应该说是基于能够支撑高并发,高吞吐的写入以及交互的聚合查询,对于应用的场景也有应该由比较明确的区分,对于写多读少的情景下,那么就要选择合适的数据库引擎,而不是选择b+数的rdbms。

那么对于不确定时间序列也一样有上述特点,如果一个对象的属性有不确定性,该属性上的一个时间点上有多个值,如果按照上述时序数据库来存储的话,每个属性的不确定的值都看做一条记录的话,那么相比于时序数据库来说数据量又增长了几个量级,结果显然是不可取的。这时需要一种改进的数据模型来描述这些属性的不确定性,这样即可以保存这条序列的原始信息,而又不会使得数据库存储量扩大。

我们讨论的是原始序列存储,还有的方法可以在存储之前对原始序列进行处理加工,所以本发明的存储扩展也仅仅针对不确定原始序列进行讨论。另外,在扩展后的不确定时序存储模型的查询处理方法也有很多,数据索引建立的的优化,数据库引擎的选择以优化等等,本发明也只对数据查询匹配领域的方法进行优化。

随着互联网的快速发展,各行各业上的数据也在以指数级别的速度增长,而在很多领域以时间相关联的数据的应用与处理已经成为必不可少的一部分,特别在传感器检测,位置定位和隐私保护等应用中扮演着日益重要的角色。存储不确定时序能能够反映出应用实时全面的信息,对于一些解决关键问题可能有着重要的作用。随着json轻量级格式的广泛引用,对于经典的关系型数据库存储时序进行扩展使其能够表达出不确定的信息。这对于不确定时序的存储模型有着重要的意义。本发明的意义和重要重要性着重于对传统关系型数据库的不确定性因素进行扩展以及扩展后的模型进行匹配优化。



技术实现要素:

[发明目的]:为了解决时序存储模型在不确定因素的信息方面表达的不足,本发明提出了在基于经典的关系型存储模型是进行扩展,并在扩展后的不确定性时序存储模型上利用并行计算的思想解决匹配查询效率问题。充分利用多核处理器的性能,替代以往的单线程查询匹配效率问题。

[技术方案]:本发明方案主要包括以下内容:

1)在传统时序存储模型上添加不确定因素

添加不确定因素:在经典的关系型数据库中的字段表示添加了不确定的因素,并解决了在存储关系型数据库中不影响原有的的时序存储的不一致性问题。

2)添加不确定因素之后对时序存储模型进行数据建模

在上一个步骤的基础之上对添加不确定性的时序进行存储模型建模,并思考解决时间序列的属性添加不确定因素之后和确定性的属性语义表达以及语义一致性。

3)在扩展后的不确定时序存储模型上进行查询匹配优化

在完成不确定时序存储模型之后,需要对该创建的模型进行查询匹配处理方法的优化,本发明采用基于多核处理器的环境下利用并行计算的思想优化查询效率,每个线程运行一个子问题,这里主要包含以下几个部分:1、多线程的创建;2、方法参数的传递;3、返回算法运行结果。多线程的创建需要根据前面拆分的子问题进行创建,相应每个子问题用一个线程运行;然后每个子问题由相匹配的两个时序上的点作为参数传递到线程中;最后在某个线程完成要求的查询匹配后将结果返回,其他线程也相应的结束查询任务。

[有益效果]:本发明创造性的将不确定因素扩展到传统的时序存储模型领域中,并且使用多核处理器并行进行查询任务,相较于以往的单线程运行算法,能够充分利用现代计算机的硬件资源,极大降低程序运行时间。

[附图说明]:

图1为不确定时序存储模型扩展流程图;

图2为多线程查询任务流程图;

[具体实施方式]:

以下结合附图和具体实例对本发明做具体的介绍。

如附图1所示,本发明是基于时序存储模型添加不确定因素建模,并对提出的不确定时序存储模型进行查询匹配方法优化。主要分为三个阶段,传统时序添加不确定因素、提出不确定时序存储模型、对扩展后的不确定时序模型进行查询匹配优化。

1.传统时序添加不确定因素

此步骤的目的根据时间序列的属性的某一些属性添加不确定性因素,对于添加不确定性因素的属性必须要满足没有添加不确定性因素的属性的统一数据格式,不能破坏因添加不确定因素而破坏数据库数据的存储结构。

2.不确定性时序存储模型建模

借鉴传统时序存储的经验,创造性的提出不确定性时序存储模型。本发明提出的不确定性时序存储模型,是整个时序的属性看成一个json对象,将不确定时序经过redis缓存将数据的值存入相对应的key中,当属性为确定的话,json表达该对象的值就只有一个,而该属性是不确定性的,即该属性有多个值,json表法式将多个值将值全部存起来,最后使用快照将json对象序列化存入关系型数据库中。

3.不确定时序存储模型的查询优化

本发明采用的基于多核硬件环境的多线程进行查询匹配的方法,利用fork-join的多线程框架,在线程池中按需创建所需要的子线程去执行查询匹配任务,知道找到两个不确定时序的匹配距离满足一个阈值,这时就把结果返回值返回出来,那么相应的运行线程应该返回给线程池等待队列中,这个子任务执行就结束了。具体实施在下一实施案例中进行详细说明。实施案例

本发明的效果可以用以下具体实例进一步说明。结合附图1和附图2所示,附图1以语音序列的的音频参数经过若干次修改后通过添加不确定因素后进行数据建模后得到不确定性时序存储模型,多核多线程环境下在redis缓存中把不确定时序的数据存入关系型数据库后,开始执行,传入需要匹配的不确定时间序列,从第一个节点开始,传入线程池中的某一个子线程,通过匹配算法去匹配数据库中的每一个时序的第一个点是否满足相对应距离的阈值,如果满足的话,同步进行到该不确定时间序列的下一个节点,继续开始计算两条序列的距离是否小于定义规定的阈值,直到该匹配的不确定时间序列全部匹配完全,则认为在数据库中找到一条匹配的不确定时间序列。同理,在这之中,只要不满足的该距离阈值的点大于在匹配前定义的某一个阈值,那么就认为数据库中的不确定时间序列不满足匹配要求,立马就舍弃该时序,执行下一条时序。以此类推,由于采用的是fork-join框架,将每个任务拆分到每个子任务去指向该序列的匹配,当该序列匹配的子线程满足一定的阈值时,则就表示匹配成功。则推出该正在匹配的时序,进而选择下一条待匹配的时序。这样明显的提高了匹配效率,尤其是在该不确定数据库中存在大量的时序模型时查询匹配效率提高的更加明显。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1