CN109241121A - 时间序列数据的存储和查询方法、装置、系统及电子设备 - Google Patents
时间序列数据的存储和查询方法、装置、系统及电子设备 Download PDFInfo
- Publication number
- CN109241121A CN109241121A CN201710516298.5A CN201710516298A CN109241121A CN 109241121 A CN109241121 A CN 109241121A CN 201710516298 A CN201710516298 A CN 201710516298A CN 109241121 A CN109241121 A CN 109241121A
- Authority
- CN
- China
- Prior art keywords
- node
- time series
- series data
- stored
- tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种时间序列数据的存储和查询方法、装置、系统及电子设备。该时间序列数据的存储方法包括:将所述时间序列数据的原始值存储于树状结构的叶节点上;对存储于所述树状结构同一层次的至少一个子节点上的数值,进行分区间预计算;将所述至少一个子节点的预计算结果存储于所述子节点对应的父节点上。本发明实施例通过将时间序列数据进行分区间预计算并以树状结构的形式存储,在时间序列数据的产生过程中,对其原始数据实时进行处理,将计算分摊到数据写入阶段,减少了数据查询时的读取和运算时间,从而提高查询效率。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种时间序列数据的存储和查询方法、装置、系统及电子设备。
背景技术
时间序列数据是指,在不同时间点上收集到的、反映某一事物或现象随时间变化的状态或程度的数据。在电子商务、物联网等平台中,会产生大量带有时间属性的时间序列数据。例如,随着时间的推移,用户不断下单,监控系统实时监控到的各时刻的成交额则组成时间序列数据;又比如,电表中的电流是随时间变化的,因此,各时刻的电流值组成时间序列数据。在实际操作中,往往需要对时间序列数据进行各种分析、计算(例如,计算成交总额,进行同比、环比比较等)。因此,对时间序列数据的存储和查询成为难点。
针对数据量巨大的时间序列数据,现有技术中一般采取以固定时间间隔进行原始数据打包的方式进行存储。如,把原始数据按小时分组,一个小时的原始数据打包压缩存储在一起。查询数据时,首先读取包含查询时间范围的所有分组数据,将其解压、按查询时间范围过滤,然后才可以对查询时间范围内的各原始数据进行相应的计算,以获取查询结果。
发明人在实现本发明的过程中,发现现有技术至少存在如下问题:按照现有的方式对时间序列数据进行存储后,查询数据时,数据的读取量与查询时间范围成正比。查询时间范围越大,将要读取的数据量则越大,读取后进行的计算量也越大。当查询范围很大(例如,查询一年的成交总额)时,需要读取范围内所有分组数据,这将导致大量的磁盘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的层次为3,节点K、L、……、V的层次为4。在本方案中,将时间序列数据的原始值按照时间顺序依次存储于树状结构的叶节点上;依次对存储于树状结构同一层次的多个子节点上的数值,进行分区间预计算;将多个子节点的预计算结果存储于该多个子节点对应的父节点上。在时间序列数据的产生过程中,通过对其原始数据实时进行处理,将计算分摊到数据写入阶段,减少了数据查询时的读取和运算时间,从而提高查询效率。
本发明实施例提供的方法可应用于任何具有数据存储能力的系统。图2为本发明提供的时间序列数据的存储系统实施例的系统框图。如图2所示,该时间序列数据的存储系统包括时间序列数据服务器1和存储数据库2。时间序列数据服务器1中可以设置一个或多个内存,例如,采用MemCache内存。MemCache是分布式的高速缓存系统,对于提升网站(尤其是大型、需要频繁访问数据库的网站)的访问速度具有显著效果。时间序列数据服务器1用于将时间序列数据以树状结构的形式存储在内存11中,将时间序列数据的原始值存储于所述树状结构的叶节点上,依次对存储于树状结构同一层次的至少一个子节点上的数值,进行分区间预计算,将至少一个子节点的预计算结果存储于子节点对应的父节点上;存储数据库2可以采用键值(key-value)数据库,用于备份时间序列数据服务器1的内存11中的数据。采用key-value数据库能够有效减少读写磁盘的次数。
在数据存储过程中,客户端(Client)3为产生时间序列数据的设备或系统,客户端3通过接入服务器(Access Server,简称:AS)4将数据实时写入到时间序列数据服务器(Time Series Data server;简称:TSD)1中。接入服务器4对数据进行协议转换,并路由分发至相应的内存11中进行缓存、预计算。当内存11存满数据时,或者,当内存11所存储数据的时间区间的长度达到预设时长阈值(例如,可以默认内存11中缓存一天的数据,则该预设时长阈值为一天)时,将内存11中的数据备份至存储数据库2,并清空该内存11。
在数据查询过程中,客户端3为产生数据查询请求的设备或系统,客户端3通过接入服务器4将数据查询请求发送到时间序列数据服务器1中。接入服务器4对请求进行协议转换,并路由分发至相应的内存11。时间序列数据服务器1在接收到数据查询请求后,将该数据查询请求的查询区间与内存11所存储数据的时间区间进行匹配;针对查询区间与内存11的时间区间相匹配的匹配区间,从内存11读取相应的数值;针对查询区间与内存11的时间区间不相匹配的不匹配区间,从存储数据库2读取相应的数值;将从内存11和/或存储数据库2读取的数值按照归并算法进行计算,获取查询结果。当客户端进行的是包含当前时间点的实时查询(例如,内存11默认的时间区间长度为一天,则实时查询的查询区间不大于一天)时,直接从内存11中读取数值,并按照归并算法进行计算,获取查询结果。当客户端进行的是查询区间长度大于一天的历史查询时,如果查询区间部分覆盖内存11的时间区域,则针对查询区间与内存11的时间区间相匹配的匹配区间,从内存11读取相应的数值,针对查询区间与内存11的时间区间不相匹配的不匹配区间,从存储数据库2读取相应的数值,将从内存11和存储数据库2读取的数值按照归并算法进行计算,获取查询结果;如果查询区间完全不覆盖内存11的时间区域,则从存储数据库2读取相应的数值,并将数值按照归并算法进行计算,获取查询结果。
具体地,当本发明实施例中的时间序列数据服务器1从内存11读取数值时,从内存11中存储的树状结构的根节点开始,执行匹配操作;当上述匹配区间完全覆盖当前节点的时间区间时,返回该节点上存储的数值;当上述匹配区间完全不覆盖当前节点的时间区间时,返回空值;当上述匹配区间部分覆盖当前节点的时间区间时,对该节点的所有子节点递归执行匹配操作,直到返回所有的数值。
当本发明实施例中的时间序列数据服务器1从存储数据库2读取数值时,从存储数据库2存储的树状结构的根节点开始,执行匹配操作;当上述不匹配区间完全覆盖当前节点的时间区间时,返回该节点上存储的数值;当上述不匹配区间完全不覆盖当前节点的时间区间时,返回空值;当上述不匹配区间部分覆盖当前节点的时间区间时,对该节点的所有子节点递归执行匹配操作,直到返回所有的数值。
上述实施例是对本发明实施例的技术原理和示例性的应用框架的说明,下面通过多个实施例来进一步对本发明实施例具体技术方案进行详细描述。
实施例一
图3为本发明提供的时间序列数据的存储方法实施例的流程图,该方法的执行主体可以为上述实施例所描述的系统。如图3所示,该时间序列数据的存储方法包括如下步骤:
S301,将时间序列数据的原始值存储于树状结构的叶节点上。
在本发明实施例中,采用树状结构的形式存储时间序列数据。首先,可以将时间序列数据的原始值按照时间顺序依次存储于树状结构的叶节点上。图4为本发明提供的时间序列数据的具体存储方式示意图。如图4所示,将每秒产生的时间序列数据依次存储于树状结构的叶节点上,29030400个数据将存储于29030400个节点上。
S302,对存储于树状结构同一层次的至少一个子节点上的数值,进行分区间预计算。
在本发明实施例中,可以根据各子节点的热度值,按照不同的预设区间长度,进行动态分区间预计算。例如,可以根据对以往查询操作的统计,获取各子节点的热度值。对于热点节点(即查询频率较高的节点),可以为其设置较小的预设区间长度;对非热点节点(即查询频率较低的节点),可以为其设置较大的预设区间长度。对数值进行的预计算可以为但不限于:求和运算(sum)、求最大值运算(max)、求最小值运算(min)、计数运算(count)、求百分位数运算(如,P99、P95等)或按大小排序后求前N名运算(topN)等可线性拆分的运算。在对多个子节点进行分区间预计算时,每一层次的子节点可以按照同一预设区间长度(例如,10秒、1分钟等)进行分区间预计算。当采用相同的预设区间长度时,对数值进行的预计算还可以为求平均值运算(avg)。
S303,将至少一个子节点的预计算结果存储于子节点对应的父节点上。
首先,将原始值进行分区间预计算。对于所有叶节点,依次对至少一个叶节点上的原始值进行分区间预计算,然后将预计算结果存储到叶节点对应的父节点上。然后,对于任一层次的子节点,进行同样的分区间预计算处理,将预计算结果存储到子节点对应的父节点上。在存储预计算结果时,将至少一个子节点对应的时间区间一同存储于相应的父节点上,以便于查询时进行区间匹配。如图4所示,在本示例中,对时间序列数据的存储策略如下:
第0层:每个节点(叶节点)存储秒精度的原始数据;
第1层:每个节点存储10秒的数据(例如,第1层第0节点是对第0层第0-9节点的原始值进行预计算所得的数值);
第2层:每个节点存储1分钟的数据(例如,第2层第0节点是对第1层第0-5节点的数值进行预计算所得的数值);
第3层:每个节点存储5分钟的数据(例如,第3层第0节点是对第2层第0-4节点的数值进行预计算所得的数值);
第4层:每个节点存储30分钟的数据;
第5层:每个节点存储2小时的数据;
都6层:每个节点存储8小时的数据;
第7层:每个节点存储1天的数据;
第8层:每个节点存储7天(一周)的数据;
第9层:每个节点存储28天(约一月)的数据;
第10层:每个节点存储84天(约一季度)的数据;
第11层:每个节点存储336天(约一年)的数据;
再向上,每个节点可以存储十年的数据……
所有层次的数值均是由下一层计算得出,随着时间的推移,在数据写入时实时进行计算和存储。在图4所示的示例中,总的冗余存储空间(第1-11层的节点总数)为原始存储空间(第0层的节点数)的12%。
本发明实施例提供的时间序列数据的存储方法,通过将时间序列数据进行分区间预计算并以树状结构的形式存储,在时间序列数据的产生过程中,对其原始数据实时进行处理,将计算分摊到数据写入阶段,减少了数据查询时的读取和运算时间,从而提高查询效率。
实施例二
图5为本发明提供的时间序列数据的查询方法一个实施例的流程图,该方法的执行主体可以为上述实施例所描述的系统。如图5所示,本实施例提供的时间序列数据的查询方法可以包括以下步骤:
S501,获取待查询的查询区间。
S502,将查询区间与树状结构的节点上存储的时间区间进行匹配,该树状结构用于存储时间序列数据。
S503,根据相匹配的节点返回的数值,确定查询结果。
本发明实施例提供的查询方法,对存储于上述存储系统中的时间序列数据进行查询。根据存储时间序列数据的树状结构,将待查询的查询区间与树状结构上的节点进行区间匹配。然后,根据相匹配的节点返回的数值确定查询结果。
本发明实施例提供的时间序列数据的查询方法,从树状结构的根节点开始向下进行区间匹配,根据各节点返回的值确定最终的查询结果,减少了数据查询阶段的读取和运算时间,从而提高查询效率。
实施例三
图6为本发明提供的时间序列数据的查询方法另一个实施例的流程图。如图6所示,在上述图5所示实施例的基础上,该时间序列数据的查询方法可以进一步包括如下步骤:
S601,获取待查询的查询区间。
S602,从树状结构的根节点开始,执行匹配操作。
首先,从树状结构的根节点开始向下进行区间匹配。
S603,判断查询区间是否覆盖当前节点的时间区间,当查询区间完全覆盖当前节点的时间区间时,执行步骤S604;当查询区间完全不覆盖当前节点的时间区间时,执行步骤S605;当查询区间部分覆盖当前节点的时间区间时,执行步骤S606。
S604,返回该节点上存储的数值;
S605,返回空值;
S606,对该节点的所有子节点递归执行匹配操作,并继续执行步骤S603。
若查询区间完全覆盖根节点的时间区间,则返回根节点上存储的数值;若查询区间完全不覆盖根节点的时间区间,则返回空值;若查询区间部分覆盖根节点的时间区间,则对根节点的所有子节点递归执行匹配操作,并继续执行步骤S603。直到返回所有的数值后,执行步骤S607。
S607,将相匹配的节点返回的所有数值按照归并算法进行计算,获取查询结果。
在本发明实施例中,上述归并算法可以为但不限于:求平均值运算(avg)、求和运算(sum)、求最大值运算(max)、求最小值运算(min)、计数运算(count)、求百分位数运算或按大小排序后求前N名运算(topN)等可线性拆分的运算。
举例说明,假设如图4所示的存储示例中各父节点存储的是其所有子节点的和值。那么,若用户要查询[1111111,4444444]内的所有数据之和,则从第11层(区间树的根节点)开始依次向下进行区间匹配,即,判断查询区间[1111111,4444444]是否覆盖该节点的时间区间。分三种情况:当查询区间完全覆盖某节点的时间区间时,返回该节点的和值,并结束该节点分支的查询操作;当查询区间完全不覆盖某节点的时间区间时,返回空值,并结束该节点分支的查询操作;当查询区间部分覆盖某节点的时间区间时,对该节点的所有子节点递归执行区间匹配操作。
根据上述规则,通过运算可以发现,该查询区间[1111111,4444444]从第8层开始命中节点(即,完全覆盖该节点的时间区间)。第8层命中5个节点;第7层命中3个节点;第6层命中1个节点;第5层命中2个节点;第4层命中3个节点;第3层命中4个节点;第2层命中5个节点;第1层命中2个节点;第0层命中14个节点。只需将这39(5+3+1+2+3+4+5+2+14)个节点中存储的和值进行再次求和,即可获得查询区间[1111111,4444444]范围内的所有数据之和。因此,采用本发明实施例所提供的查询方法,将一个需要进行3333334(4444444-1111110)次的计算,降低为39次的计算,极大地减少了读取和运算时间,大大提高了查询效率。
本发明实施例提供的时间序列数据的查询方法,从树状结构的根节点开始向下进行区间匹配,将各节点返回的值按照归并算法进行计算,获取最终的查询结果,减少了数据查询阶段的读取和运算时间,从而提高查询效率。
实施例四
图7为本发明提供的时间序列数据的存储装置实施例的结构示意图,可用于执行如图3所示的方法步骤。如图7所示,该装置可以包括:第一存储模块71、预计算模块72和第二存储模块73。
其中,第一存储模块71用于将时间序列数据的原始值存储于树状结构的叶节点上;预计算模块72用于对存储于树状结构同一层次的至少一个子节点上的数值,进行分区间预计算;第二存储模块73用于将预计算模块72计算出的至少一个子节点的预计算结果存储于子节点对应的父节点上。
在本发明实施例中,采用树状结构的形式存储时间序列数据。当产生时间序列数据时,首先,第一存储模块71将时间序列数据的原始值按照时间顺序依次存储于树状结构的叶节点上。然后,每当存储于树状结构同一层次上的未处理的子节点的个数满足预设要求时,预计算模块72这些子节点上的数值进行分区间预计算。第二存储模块73将预计算模块72计算出的预计算结果存储于这些子节点对应的父节点上。
本发明实施例提供的时间序列数据的存储装置,通过将时间序列数据进行分区间预计算并以树状结构的形式存储,在时间序列数据的产生过程中,对其原始数据实时进行处理,将计算分摊到数据写入阶段,减少了数据查询时的读取和运算时间,从而提高查询效率。
实施例五
图8为本发明提供的时间序列数据的查询装置实施例的结构示意图,可用于执行如图5或图6所示的方法步骤。如图8所示,该装置可以包括:获取模块81、匹配模块82和结果确定模块83。
其中,获取模块81用于获取待查询的查询区间;匹配模块82用于将获取模块81获取到的查询区间与树状结构的节点上存储的时间区间进行匹配,该树状结构用于存储时间序列数据;结果确定模块83用于根据匹配模块82获得的相匹配的节点返回的数值,确定查询结果。
在本发明实施例中,对存储于上述存储系统中的时间序列数据进行查询。获取模块81获取到待查询的查询区间后,匹配模块82根据存储时间序列数据的树状结构,将待查询的查询区间与树状结构上的节点进行区间匹配。然后,结果确定模块83将相匹配的节点返回的数值按照归并算法进行计算,从而获得查询结果。
具体地,匹配模块82还可以用于从树状结构的根节点开始,执行匹配操作;当查询区间完全覆盖当前节点的时间区间时,返回该节点上存储的数值;当查询区间完全不覆盖当前节点的时间区间时,返回空值;当查询区间部分覆盖当前节点的时间区间时,对该节点的所有子节点递归执行匹配操作,直到返回所有的数值。
本发明实施例提供的时间序列数据的查询装置,从树状结构的根节点开始向下进行区间匹配,将各节点返回的值按照归并算法进行计算,获取最终的查询结果,减少了数据查询阶段的读取和运算时间,从而提高查询效率。
实施例六
以上描述了时间序列数据的查询装置的内部功能和结构,该装置可实现为一种电子设备。图9为本发明提供的电子设备一个实施例的结构示意图。如图9所示,该电子设备包括存储器91和处理器92。
存储器91,用于存储程序。除上述程序之外,存储器91还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器91可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器92,与存储器91耦合,执行存储器91所存储的程序,以用于:
将时间序列数据的原始值存储于树状结构的叶节点上;对存储于树状结构同一层次的至少一个子节点上的数值,进行分区间预计算;将至少一个子节点的预计算结果存储于子节点对应的父节点上。
进一步,如图9所示,电子设备还可以包括:通信组件93、电源组件94、音频组件95、显示器96等其它组件。图9中仅示意性给出部分组件,并不意味着电子设备只包括图9所示组件。
通信组件93被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件93经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件93还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
基于通信组件93,处理器92可以通过通信组件93将所有消费数据存储到外部数据库中。
电源组件94,为电子设备的各种组件提供电力。电源组件94可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件95被配置为输出和/或输入音频信号。例如,音频组件95包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器91或经由通信组件93发送。在一些实施例中,音频组件95还包括一个扬声器,用于输出音频信号。
显示器96包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
实施例七
以上描述了时间序列数据的查询装置的内部功能和结构,该装置可实现为一种电子设备。图10为本发明提供的电子设备另一个实施例的结构示意图。如图10所示,该电子设备包括存储器101和处理器102。
存储器101,用于存储程序。除上述程序之外,存储器101还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器101可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器102,与存储器101耦合,执行存储器101所存储的程序,以用于:
获取待查询的查询区间;将查询区间与树状结构的节点上存储的时间区间进行匹配,该树状结构用于存储时间序列数据;根据相匹配的节点返回的数值,确定查询结果。
在一可选实施方式中,处理器102在将查询区间与树状结构的节点上存储的时间区间进行匹配时,具体可用于:
从树状结构的根节点开始,执行匹配操作;当查询区间完全覆盖当前节点的时间区间时,返回该节点上存储的数值;当查询区间完全不覆盖当前节点的时间区间时,返回空值;当查询区间部分覆盖当前节点的时间区间时,对该节点的所有子节点递归执行匹配操作,直到返回所有的数值。
进一步,如图10所示,电子设备还可以包括:通信组件103、电源组件104、音频组件105、显示器106等其它组件。图10中仅示意性给出部分组件,并不意味着电子设备只包括图10所示组件。
通信组件103被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件103经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件103还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
基于通信组件103,处理器102可以通过通信组件103将所有消费数据存储到外部数据库中。
电源组件104,为电子设备的各种组件提供电力。电源组件104可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件105被配置为输出和/或输入音频信号。例如,音频组件105包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器101或经由通信组件103发送。在一些实施例中,音频组件105还包括一个扬声器,用于输出音频信号。
显示器106包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (23)
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.一种时间序列数据的查询装置,其特征在于,包括:
获取模块,用于获取待查询的查询区间;
匹配模块,用于将所述获取模块获取到的所述查询区间与树状结构的节点上存储的时间区间进行匹配,所述树状结构用于存储所述时间序列数据;
结果确定模块,用于根据所述匹配模块获得的相匹配的所述节点返回的数值,确定查询结果。
15.根据权利要求14所述的时间序列数据的查询装置,其特征在于,所述匹配模块还用于,从所述树状结构的根节点开始,执行匹配操作;当所述查询区间完全覆盖当前节点的时间区间时,返回所述节点上存储的数值;当所述查询区间完全不覆盖当前节点的时间区间时,返回空值;当所述查询区间部分覆盖当前节点的时间区间时,对所述节点的所有子节点递归执行匹配操作,直到返回所有的数值。
16.一种时间序列数据的存储系统,其特征在于,包括:时间序列数据服务器和存储数据库,
所述时间序列数据服务器,用于将所述时间序列数据以树状结构的形式存储在内存中,将所述时间序列数据的原始值存储于所述树状结构的叶节点上,对存储于所述树状结构同一层次的至少一个子节点上的数值,进行分区间预计算,将所述至少一个子节点的预计算结果存储于所述子节点对应的父节点上;
所述存储数据库,用于备份所述时间序列数据服务器的内存中的数据。
17.根据权利要求16所述的时间序列数据的存储系统,其特征在于,所述时间序列数据服务器还用于,当所述内存存满数据时,或者,当所述内存所存储数据的时间区间的长度达到预设时长阈值时,将所述内存中的数据备份至所述存储数据库,并清空所述内存。
18.根据权利要求16或17所述的时间序列数据的存储系统,其特征在于,所述时间序列数据服务器还用于,在接收到数据查询请求后,将所述数据查询请求的查询区间与所述内存所存储数据的时间区间进行匹配;针对所述查询区间与所述内存的时间区间相匹配的匹配区间,从所述内存读取相应的数值;针对所述查询区间与所述内存的时间区间不相匹配的不匹配区间,从所述存储数据库读取相应的数值;将从所述内存和/或所述存储数据库读取的所述数值按照归并算法进行计算,获取查询结果。
19.根据权利要求18所述的时间序列数据的存储系统,其特征在于,所述时间序列数据服务器在从所述内存读取数值时,具体用于,从所述内存中存储的所述树状结构的根节点开始,执行匹配操作;当所述匹配区间完全覆盖当前节点的时间区间时,返回所述节点上存储的数值;当所述匹配区间完全不覆盖当前节点的时间区间时,返回空值;当所述匹配区间部分覆盖当前节点的时间区间时,对所述节点的所有子节点递归执行匹配操作,直到返回所有的数值。
20.根据权利要求18所述的时间序列数据的存储系统,其特征在于,在所述时间序列数据服务器从所述存储数据库读取数值时,所述存储数据库具体用于,从所述存储数据库存储的所述树状结构的根节点开始,执行匹配操作;当所述不匹配区间完全覆盖当前节点的时间区间时,返回所述节点上存储的数值;当所述不匹配区间完全不覆盖当前节点的时间区间时,返回空值;当所述不匹配区间部分覆盖当前节点的时间区间时,对所述节点的所有子节点递归执行匹配操作,直到返回所有的数值。
21.一种电子设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于运行所述存储器中存储的所述程序,以用于:
将所述时间序列数据的原始值存储于树状结构的叶节点上;
对存储于所述树状结构同一层次的至少一个子节点上的数值,进行分区间预计算;
将所述至少一个子节点的预计算结果存储于所述子节点对应的父节点上。
22.一种电子设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于运行所述存储器中存储的所述程序,以用于:
获取待查询的查询区间;
将所述查询区间与树状结构的节点上存储的时间区间进行匹配,所述树状结构用于存储所述时间序列数据;
根据相匹配的所述节点返回的数值,确定查询结果。
23.根据权利要求22所述的电子设备,其特征在于,所述处理器在将所述查询区间与树状结构的节点上存储的时间区间进行匹配时,具体用于:
从所述树状结构的根节点开始,执行匹配操作;
当所述查询区间完全覆盖当前节点的时间区间时,返回所述节点上存储的数值;
当所述查询区间完全不覆盖当前节点的时间区间时,返回空值;
当所述查询区间部分覆盖当前节点的时间区间时,对所述节点的所有子节点递归执行匹配操作,直到返回所有的数值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710516298.5A CN109241121A (zh) | 2017-06-29 | 2017-06-29 | 时间序列数据的存储和查询方法、装置、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710516298.5A CN109241121A (zh) | 2017-06-29 | 2017-06-29 | 时间序列数据的存储和查询方法、装置、系统及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109241121A true CN109241121A (zh) | 2019-01-18 |
Family
ID=65083134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710516298.5A Pending CN109241121A (zh) | 2017-06-29 | 2017-06-29 | 时间序列数据的存储和查询方法、装置、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109241121A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110362577A (zh) * | 2019-07-10 | 2019-10-22 | 星环信息科技(上海)有限公司 | 一种数据插入方法、装置、设备和储存介质 |
CN112948385A (zh) * | 2021-03-02 | 2021-06-11 | 深圳大学 | 序列数据分布的显示方法、装置、存储介质及终端设备 |
CN114153849A (zh) * | 2021-12-02 | 2022-03-08 | 深圳前海微众银行股份有限公司 | 一种区块链的数据生成及验证方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102456065A (zh) * | 2011-07-01 | 2012-05-16 | 中国人民解放军国防科学技术大学 | 用于数据流的离线历史统计数据存储和查询方法 |
CN104516894A (zh) * | 2013-09-27 | 2015-04-15 | 国际商业机器公司 | 用于管理时间序列数据库的方法和装置 |
CN104750708A (zh) * | 2013-12-27 | 2015-07-01 | 华为技术有限公司 | 一种时空数据的索引建立方法、查询方法、装置及设备 |
CN106202384A (zh) * | 2016-07-08 | 2016-12-07 | 清华大学 | 一种支持时序数据聚合函数的索引方法 |
CN106844666A (zh) * | 2017-01-20 | 2017-06-13 | 北京理工大学 | 一种自适应的时间序列数据查询方法 |
CN106844664A (zh) * | 2017-01-20 | 2017-06-13 | 北京理工大学 | 一种基于摘要的时间序列数据索引构建方法 |
-
2017
- 2017-06-29 CN CN201710516298.5A patent/CN109241121A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102456065A (zh) * | 2011-07-01 | 2012-05-16 | 中国人民解放军国防科学技术大学 | 用于数据流的离线历史统计数据存储和查询方法 |
CN104516894A (zh) * | 2013-09-27 | 2015-04-15 | 国际商业机器公司 | 用于管理时间序列数据库的方法和装置 |
CN104750708A (zh) * | 2013-12-27 | 2015-07-01 | 华为技术有限公司 | 一种时空数据的索引建立方法、查询方法、装置及设备 |
CN106202384A (zh) * | 2016-07-08 | 2016-12-07 | 清华大学 | 一种支持时序数据聚合函数的索引方法 |
CN106844666A (zh) * | 2017-01-20 | 2017-06-13 | 北京理工大学 | 一种自适应的时间序列数据查询方法 |
CN106844664A (zh) * | 2017-01-20 | 2017-06-13 | 北京理工大学 | 一种基于摘要的时间序列数据索引构建方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110362577A (zh) * | 2019-07-10 | 2019-10-22 | 星环信息科技(上海)有限公司 | 一种数据插入方法、装置、设备和储存介质 |
CN112948385A (zh) * | 2021-03-02 | 2021-06-11 | 深圳大学 | 序列数据分布的显示方法、装置、存储介质及终端设备 |
CN112948385B (zh) * | 2021-03-02 | 2024-02-13 | 深圳大学 | 序列数据分布的显示方法、装置、存储介质及终端设备 |
CN114153849A (zh) * | 2021-12-02 | 2022-03-08 | 深圳前海微众银行股份有限公司 | 一种区块链的数据生成及验证方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105446991B (zh) | 数据存储方法、查询方法及设备 | |
CN103995855B (zh) | 存储数据的方法和装置 | |
WO2012068557A1 (en) | Real-time analytics of streaming data | |
CN107341033A (zh) | 一种数据统计方法、装置、电子设备和存储介质 | |
CN109241121A (zh) | 时间序列数据的存储和查询方法、装置、系统及电子设备 | |
CN110874383B (zh) | 数据处理方法、装置及电子设备 | |
CN114595124B (zh) | 时序异常检测模型评估方法、相关装置及存储介质 | |
EP3690603A1 (en) | Application cleaning method and apparatus, storage medium and electronic device | |
CN109948016A (zh) | 应用信息推送方法、装置、服务器和计算机可读存储介质 | |
CN114244595A (zh) | 权限信息的获取方法、装置、计算机设备及存储介质 | |
CN109213604A (zh) | 一种数据源的管理方法和装置 | |
CN110309156A (zh) | 数据库系统、数据库更新、扩容方法及设备 | |
CN114091610A (zh) | 智能决策方法及装置 | |
CN111859187A (zh) | 基于分布式图数据库的poi查询方法、装置、设备及介质 | |
CN110162521A (zh) | 一种支付系统交易数据处理方法及系统 | |
CN114070718B (zh) | 一种告警方法、装置和存储介质 | |
CN111368060B (zh) | 对话机器人的自学习方法、装置、系统、电子设备及介质 | |
CN104839962B (zh) | 一种智能钱包及其信息处理方法和装置 | |
WO2019000468A1 (zh) | 用户位置识别方法、装置、存储介质及电子设备 | |
NL2011893C2 (en) | Method and system for predicting human activity. | |
CN112085497A (zh) | 用户账户数据的处理方法及装置 | |
CN116681470A (zh) | 门店选址方法、装置、计算机设备、存储介质和产品 | |
CN115712677A (zh) | 搜索数据同步方法及其装置、设备、介质、产品 | |
CN109271396A (zh) | 一种调用链数据的处理方法、装置、设备及存储介质 | |
CN106354794A (zh) | 一种数据分析处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190118 |
|
RJ01 | Rejection of invention patent application after publication |