时间序列数据的存储和查询方法、装置、系统及电子设备制造方法及图纸

技术编号:20160390 阅读:29 留言:0更新日期:2019-01-19 00:13
本发明专利技术实施例提供了一种时间序列数据的存储和查询方法、装置、系统及电子设备。该时间序列数据的存储方法包括:将所述时间序列数据的原始值存储于树状结构的叶节点上;对存储于所述树状结构同一层次的至少一个子节点上的数值,进行分区间预计算;将所述至少一个子节点的预计算结果存储于所述子节点对应的父节点上。本发明专利技术实施例通过将时间序列数据进行分区间预计算并以树状结构的形式存储,在时间序列数据的产生过程中,对其原始数据实时进行处理,将计算分摊到数据写入阶段,减少了数据查询时的读取和运算时间,从而提高查询效率。

【技术实现步骤摘要】
时间序列数据的存储和查询方法、装置、系统及电子设备
本专利技术涉及数据存储
,尤其涉及一种时间序列数据的存储和查询方法、装置、系统及电子设备。
技术介绍
时间序列数据是指,在不同时间点上收集到的、反映某一事物或现象随时间变化的状态或程度的数据。在电子商务、物联网等平台中,会产生大量带有时间属性的时间序列数据。例如,随着时间的推移,用户不断下单,监控系统实时监控到的各时刻的成交额则组成时间序列数据;又比如,电表中的电流是随时间变化的,因此,各时刻的电流值组成时间序列数据。在实际操作中,往往需要对时间序列数据进行各种分析、计算(例如,计算成交总额,进行同比、环比比较等)。因此,对时间序列数据的存储和查询成为难点。针对数据量巨大的时间序列数据,现有技术中一般采取以固定时间间隔进行原始数据打包的方式进行存储。如,把原始数据按小时分组,一个小时的原始数据打包压缩存储在一起。查询数据时,首先读取包含查询时间范围的所有分组数据,将其解压、按查询时间范围过滤,然后才可以对查询时间范围内的各原始数据进行相应的计算,以获取查询结果。专利技术人在实现本专利技术的过程中,发现现有技术至少存在如下问题:按照现有的方式对时间序列数据进行存储后,查询数据时,数据的读取量与查询时间范围成正比。查询时间范围越大,将要读取的数据量则越大,读取后进行的计算量也越大。当查询范围很大(例如,查询一年的成交总额)时,需要读取范围内所有分组数据,这将导致大量的磁盘IO(输入输出)及网络IO,使得读取延时增大;读取后,对大量的分组进行解压缩、时间过滤、计算等操作,使得运算时间增大,从而导致查询延时增大,查询效率降低。
技术实现思路
本专利技术实施例提供一种时间序列数据的存储和查询方法、装置、系统及电子设备,以解决现有技术中时间序列数据查询效率低的缺陷,实现高效的时间序列数据的查询。为达到上述目的,本专利技术实施例提供了一种时间序列数据的存储方法,包括:将所述时间序列数据的原始值存储于树状结构的叶节点上;对存储于所述树状结构同一层次的至少一个子节点上的数值,进行分区间预计算;将所述至少一个子节点的预计算结果存储于所述子节点对应的父节点上。本专利技术实施例还提供了一种时间序列数据的查询方法,包括:获取待查询的查询区间;将所述查询区间与树状结构的节点上存储的时间区间进行匹配,所述树状结构用于存储所述时间序列数据;根据相匹配的所述节点返回的数值,确定查询结果。本专利技术实施例还提供了一种时间序列数据的存储装置,包括:第一存储模块,用于将所述时间序列数据的原始值存储于树状结构的叶节点上;预计算模块,用于对存储于所述树状结构同一层次的至少一个子节点上的数值,进行分区间预计算;第二存储模块,用于将所述预计算模块计算出的所述至少一个子节点的预计算结果存储于所述子节点对应的父节点上。本专利技术实施例还提供了一种时间序列数据的查询装置,包括:获取模块,用于获取待查询的查询区间;匹配模块,用于将所述获取模块获取到的所述查询区间与树状结构的节点上存储的时间区间进行匹配,所述树状结构用于存储所述时间序列数据;结果确定模块,用于根据所述匹配模块获得的相匹配的所述节点返回的数值,确定查询结果。本专利技术实施例还提供了一种时间序列数据的存储系统,包括:时间序列数据服务器和存储数据库,所述时间序列数据服务器,用于将所述时间序列数据以树状结构的形式存储在内存中,将所述时间序列数据的原始值存储于所述树状结构的叶节点上,对存储于所述树状结构同一层次的至少一个子节点上的数值,进行分区间预计算,将所述至少一个子节点的预计算结果存储于所述子节点对应的父节点上;所述存储数据库,用于备份所述时间序列数据服务器的内存中的数据。本专利技术实施例还提供一种电子设备,包括:存储器,用于存储程序;处理器,用于运行所述存储器中存储的所述程序,以用于:将所述时间序列数据的原始值存储于树状结构的叶节点上;对存储于所述树状结构同一层次的至少一个子节点上的数值,进行分区间预计算;将所述至少一个子节点的预计算结果存储于所述子节点对应的父节点上。本专利技术实施例还提供一种电子设备,包括:存储器,用于存储程序;处理器,用于运行所述存储器中存储的所述程序,以用于:获取待查询的查询区间;将所述查询区间与树状结构的节点上存储的时间区间进行匹配,所述树状结构用于存储所述时间序列数据;根据相匹配的所述节点返回的数值,确定查询结果。本专利技术实施例提供的时间序列数据的存储和查询方法、装置、系统及电子设备,通过将时间序列数据进行分区间预计算并以树状结构的形式存储,在时间序列数据的产生过程中,对其原始数据实时进行处理,将计算分摊到数据写入阶段,减少了数据查询时的读取和运算时间,从而提高查询效率。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为本专利技术实施例中树状结构的结构示意图;图2为本专利技术提供的时间序列数据的存储系统实施例的系统框图;图3为本专利技术提供的时间序列数据的存储方法实施例的流程图;图4为本专利技术提供的时间序列数据的具体存储方式示意图;图5为本专利技术提供的时间序列数据的查询方法一个实施例的流程图;图6为本专利技术提供的时间序列数据的查询方法另一个实施例的流程图;图7为本专利技术提供的时间序列数据的存储装置实施例的结构示意图;图8为本专利技术提供的时间序列数据的查询装置实施例的结构示意图;图9为本专利技术提供的电子设备一个实施例的结构示意图;图10为本专利技术提供的电子设备另一个实施例的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。时间序列数据是指,在不同时间点上收集到的、反映某一事物或现象随时间变化的状态或程度的数据,是带有时间属性的数据。针对现有技术关于时间序列数据查询效率低的缺陷,本申请提供一种解决方案,其主要原理是:在存储时间序列数据时,将其进行分区间预计算,并以树状结构的形式存储。图1为本专利技术实施例中树状结构的结构示意图。如图1所示,树状结构是有层次的嵌套结构,是一个或多个节点的有限集合。在树状结构中,根结点没有前驱结点,其余每个结点有且只有一个前驱结点(称为:父节点)。叶结点没有后续结点(称为:子节点),其余每个结点的后续节点数可以是一个也可以是多个。图1中,节点A为根节点,节点K、L、M、……、V为叶节点,节点B为节点E、F和G的父节点,节点U和V为节点J的子节点。在树状结构中,从根节点到树状结构中某节点所经路径的分支数称为该节点的层次。根结点的层次规定为1,其余节点的层次等于其父节点的层次加1。在图1中,节点A的层次为1,则节点B、C和D的层次为2,节点E、F、……、J的层次为本文档来自技高网
...

【技术保护点】
1.一种时间序列数据的存储方法,其特征在于,包括:将所述时间序列数据的原始值存储于树状结构的叶节点上;对存储于所述树状结构同一层次的至少一个子节点上的数值,进行分区间预计算;将所述至少一个子节点的预计算结果存储于所述子节点对应的父节点上。

【技术特征摘要】
1.一种时间序列数据的存储方法,其特征在于,包括:将所述时间序列数据的原始值存储于树状结构的叶节点上;对存储于所述树状结构同一层次的至少一个子节点上的数值,进行分区间预计算;将所述至少一个子节点的预计算结果存储于所述子节点对应的父节点上。2.根据权利要求1所述的时间序列数据的存储方法,其特征在于,所述将所述时间序列数据的原始值存储于树状结构的叶节点上,包括:将所述时间序列数据的原始值按照时间顺序依次存储于树状结构的叶节点上。3.根据权利要求1所述的时间序列数据的存储方法,其特征在于,所述将所述至少一个子节点的预计算结果存储于所述子节点对应的父节点上,包括:将所述至少一个子节点对应的时间区间和所述预计算结果一同存储于所述父节点上。4.根据权利要求1至3中任一权利要求所述的时间序列数据的存储方法,其特征在于,所述对存储于所述树状结构同一层次的至少一个子节点上的数值,进行分区间预计算,包括:按照预设区间长度,依次对存储于所述树状结构同一层次的至少一个子节点,进行分区间预计算。5.根据权利要求4所述的时间序列数据的存储方法,其特征在于,所述按照预设区间长度,依次对存储于所述树状结构同一层次的至少一个子节点,进行分区间预计算,包括:根据各子节点的热度值,按照不同的预设区间长度,依次对存储于所述树状结构同一层次的至少一个子节点上的数值,进行动态分区间预计算。6.根据权利要求4所述的时间序列数据的存储方法,其特征在于,所述按照预设区间长度,依次对存储于所述树状结构同一层次的至少一个子节点,进行分区间预计算,包括:按照相同的预设区间长度,依次对存储于所述树状结构同一层次的至少一个子节点,进行分区间预计算。7.根据权利要求5所述的时间序列数据的存储方法,其特征在于,对数值进行的所述预计算为:求和运算、求最大值运算、求最小值运算、计数运算、求百分位数运算或按大小排序后求前N名运算。8.根据权利要求6所述的时间序列数据的存储方法,其特征在于,对数值进行的所述预计算为:求平均值运算、求和运算、求最大值运算、求最小值运算、计数运算、求百分位数运算或按大小排序后求前N名运算。9.一种时间序列数据的查询方法,其特征在于,包括:获取待查询的查询区间;将所述查询区间与树状结构的节点上存储的时间区间进行匹配,所述树状结构用于存储所述时间序列数据;根据相匹配的所述节点返回的数值,确定查询结果。10.根据权利要求9所述的时间序列数据的查询方法,其特征在于,所述将所述查询区间与树状结构的节点上存储的时间区间进行匹配,包括:从所述树状结构的根节点开始,执行匹配操作;当所述查询区间完全覆盖当前节点的时间区间时,返回所述节点上存储的数值;当所述查询区间完全不覆盖当前节点的时间区间时,返回空值;当所述查询区间部分覆盖当前节点的时间区间时,对所述节点的所有子节点递归执行匹配操作,直到返回所有的数值。11.根据权利要求9所述的时间序列数据的查询方法,其特征在于,所述根据相匹配的所述节点返回的数值,确定查询结果,包括:将相匹配的所述节点返回的数值按照归并算法进行计算,确定查询结果。12.根据权利要求11所述的时间序列数据的查询方法,其特征在于,所述归并算法为:求平均值运算、求和运算、求最大值运算、求最小值运算、计数运算、求百分位数运算或按大小排序后求前N名运算。13.一种时间序列数据的存储装置,其特征在于,包括:第一存储模块,用于将所述时间序列数据的原始值存储于树状结构的叶节点上;预计算模块,用于对存储于所述树状结构同一层次的至少一个子节点上的数值,进行分区间预计算;第二存储模块,用于将所述预计算模块计算出的所述至少一个子节点的预计算结果存储于所述子节点对应的父节点上。14.一种时间序列数据的查询装置,其特征在于,包括:获取模块,用于获取待查询的查询区间;匹配模块,用于将所述获取模块获取到的所述查询区间与树状结构的节点上存储的时间区间进行匹配,所述树状结构用于存储所述时间序列数据;结果确定模块,用于根据所述匹配模...

【专利技术属性】
技术研发人员:陈义
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1