CN110046183A - 一种时序数据聚合检索方法、设备及介质 - Google Patents
一种时序数据聚合检索方法、设备及介质 Download PDFInfo
- Publication number
- CN110046183A CN110046183A CN201910304908.4A CN201910304908A CN110046183A CN 110046183 A CN110046183 A CN 110046183A CN 201910304908 A CN201910304908 A CN 201910304908A CN 110046183 A CN110046183 A CN 110046183A
- Authority
- CN
- China
- Prior art keywords
- data
- time series
- statistical
- series data
- fragment
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种时序数据聚合检索方法、设备及介质,包括用于存储时序数据的数据库,首先对时序数据库进行优化,对于数据的存储增加统计级别的概念,对时序数据进行分级分片存储,为时序数据聚合检索的优化提供数据结构支持;对时序数据进行统计查询时,根据不同统计查询请求,应用不同查询算法,结合分级分片的数据存储结构对时序数据进行统计查询。本发明在数据写入数据库时,只需按照确定的分级分片规则对数据进行分级分片统计,目的为记录数据特征,写入过程不考虑将来查询检索时的条件;统计查询时,根据检索条件,使用原始数据与各级统计数据,优化组合后计算出统计结果,而不依赖海量原始数据,减少数据访问量,提高检索效率。
Description
技术领域
本发明涉及数据检索技术领域,具体涉及一种时序数据聚合检索方法、设备及介质,并包括一种用于存储时序数据的数据库。
背景技术
工业生产中,自动化检测、控制系统会产生大量时间相关的数据。随着工业互联网的发展,云端集中化存储、分析数据的需求日益增加,传统关系型数据库难以压缩存储海量的时序化数值数据,更难以提供高效的检索统计算法。时序数据库是针对此类场景专门优化的数据存储系统,当前较为知名的产品有InfluxDB、OpenTSDB等。
现有技术中,时序数据的存储、查询操作均极度依赖时间戳,存储体系设计主要针对时间戳进行优化,为了减少最终记录的数量,各产品方案都将同一数据点(tag)在一段时间的原始数据,序列化为1条数据进行存储,例如秒级数据记录时,可将时间戳(timestamp)/3600得到的整数部分与tag合并作为主键标识,余数作为该行数据的属性列名,在该列下记录原始数据,使得1小时的原始数据最终仅形成一条数据记录,大大减少了数据条目。
现有时序数据库算法中,数据统计时,均采用预聚合机制,即每小时、每天(或其他单位周期)过后,将数据统计情况形成以小时、全天为单位的统计记录,遇到检索请求时,不用再深入到原始记录项,直接检索已经按周期统计好的数据即可。该方案对于数据连续、按时写入的场景,能够满足需求,但对于工业现场,特别是通过4G网络连接的不稳定工业现场来说,数据并不能保证及时回传,可能会在现场采集设备缓存数小时,甚至数天后,才回传到服务器端,若此时服务器端已将之前的数据做过预统计,则还需更多机制来更新回传的数据。对于检索条件非预知的情况,比如查询昨天凌晨4点15分到今天下午4点15分某数据的平均值,预聚合的统计结果就难以发挥作用,此时仍然需要取出该时间段内的原始数据,再进行统计运算,即进行后聚合处理。
根据应用及实践发现,预聚合计算触发机制不够灵活,同时难以适应检索条件的变化,后聚合计算涉及大量数据时,效率低下。
发明内容
针对上述问题,本发明提供一种时序数据聚合检索方法、设备及介质,首先对时序数据库进行优化,对于数据的存储增加统计级别的概念,对时序数据进行分级分片存储,为时序数据聚合检索的优化提供数据结构支持;对时序数据进行统计查询时,根据不同统计查询请求,应用不同查询算法,结合分级分片的数据存储结构对时序数据进行统计查询,有效弥补现有技术中预聚合与后聚合查询计算的缺陷。
本发明具体为:
一种用于存储时序数据的数据库,包括:
数据存储模块,用于采用分级分片的方式存储时序数据;所述时序数据包括原始数据和预聚合后的统计数据;
数据更新模块,用于对所述时序数据进行增量式更新;在工业场景中,很多数据在很长时间范围内是保持不变的,因此无论是原始数据还是统计数据,均为数据有变化时才更新,以达到压缩数据量的目的;前置的数据采集装置亦可采取增量式数据传输机制,以节省数据传输量;
数据查询模块,用于提供查询所述时序数据的查询接口。
进一步地,所述数据存储模块具体用于:
对所述时序数据进行分级,级别依次递增,其中最底级为时间戳分片,用于存储原始数据,其他级别为统计级分片,用于存储预聚合后的统计数据。
相对于其他时序数据库仅对时间戳进行分片存储,本发明增加统计级别的概念,优化数据存储结构,为时序数据聚合检索的优化提供数据结构支持。
进一步地,各级统计级分片中存储的统计数据的生成方式为:
将所述时间戳分片中存储的原始数据进行预聚合,生成的统计数据存储在最底级统计级分片中;将最底级统计级分片中存储的统计数据进行预聚合,生成的统计数据存储在紧上一级统计级分片中;依此类推,直至得到最高一级统计级分片中存储的统计数据;即将原始级分片的原始数据预聚合,或单一统计级分片的统计数据预聚合,计算出高一级别统计数据。
为使本发明涉及的统计查询算法对底层数据存储具有良好的普适性,本发明所有持久化存储均使用键值对系统来完成,键(key)为不超过20B的二进制流,值为不超过2MB的二进制流;根据该特点,本发明所述数据库可支持的类型非常广泛,可使用磁盘文件系统、关键型数据库、非关键型数据库、云服务商对象存储等;优选地,推荐使用专用的键值对数据库,如LevelDB、RocksDB等,以达到最好的性能。
一种时序数据聚合检索方法,适用于上述用于存储时序数据的数据库,包括:接收时序数据统计查询请求;根据所述统计查询请求,通过所述数据查询模块在所述数据库中统计查询时序数据;返回统计查询结果。
进一步地,当所述时序数据统计查询请求为请求统计查询原始数据时,采用原始值查询算法,具体包括:
接收时序数据统计查询请求;
根据所述统计查询请求,通过所述数据查询模块,在所述最高一级统计级分片中获取相应元素列表,根据相应元素列表在紧下一级统计级分片中获取对应的元素列表;以此类推,直至在所述时间戳分片中获取相应的统计查询数据,并返回所述统计查询数据。
受限于架构设计,所述数据库的底层存储仅支持键值对访问,没有索引,亦不支持范围检索,查询一定范围内的原始数据不能依靠存储层面支持,需利用分级存储结构达到类似于索引的作用,使得可仅依赖键值对体系完成一定范围的原始数据统计查询。
进一步地,当所述时序数据统计查询请求为请求统计查询某一时间段内的时序数据时,采用时间段整体统计算法,具体包括:
接收时序数据统计查询请求;
根据所述统计查询请求,通过所述数据查询模块,将所述时间段的时间范围划分为与所述分级对齐的时间片段,依次统计查询各时间片段内的时序数据,最后将各时间片段内统计查询到的时序数据进行合并统计,并返回合并统计数据;时间段整体统计算法是对任意时间跨度,完成整体的统计计算,得到整体的统计信息,该过程尽可能减少所需访问的分片数量。
进一步地,将所述时间段的时间范围划分为与所述分级对齐的时间片段,具体包括:将所述时间段的时间范围划分为首尾相接的时间片段,将所述时间片段从时间戳分片开始依次与紧上一级统计级分片进行对齐;该过程尽可能将时间片段对齐到高级别的统计级分片。
进一步地,当所述时序数据统计查询请求为请求统计查询某一时间段内单位周期的时序数据时,例如7月每一天的统计值、昨天每小时的统计值等,采用时间段单位周期统计算法,具体包括:
接收时序数据统计查询请求;
根据所述统计查询请求,通过所述数据查询模块,计算所述时间段内各单位周期的起止时间戳,将所述各起止时间戳的时间范围分别划分为与所述分级对齐的时间片段,对各起止时间戳的各时间片段内的时序数据分别进行统计查询,并对各起止时间戳对应的统计查询数据分别进行合并统计,得到并返回所述时间段内各单位周期的时序数据统计查询结果;该过程将查询范围内所有周期的起止时间戳计算出来,生成时间段数组,然后复用上述时间段整体统计算法,获取查询范围时间段内每个单位周期的统计数据。
连续的时间段查询时,涉及到的底层分级很可能有重复,此时底层的键值对系统会依靠内存缓存,以减少磁盘读写次数,提高统计查询效率;同时,可灵活应对查询需求,比如某检索中每天的划分为北京时间早6点到第二天早6点,又比如英国从夏令时转冬令时的当天,只有23个小时,冬转夏时当天有25个小时,均可在本方法中优化时间段生成算法,来完成查询需求,充分实现后统计的灵活性。
一种电子设备,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行上述时序数据聚合检索方法。
一种计算机可读存储介质,有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述时序数据聚合检索方法。
本发明的有益效果体现在:
本发明在数据写入数据库时,只需按照确定的分级分片规则对数据进行分级分片统计,目的为记录数据特征,写入过程不考虑将来查询检索时的条件;统计查询时,根据检索条件,使用原始数据与各级统计数据,优化组合后计算出统计结果,而不依赖海量原始数据,减少数据访问量,提高检索效率。统计查询时,不需要底层数据库支持索引,始终以序列化后的二进制流来存储数据,数据冗余量小,若结合LevelDB或RocksDB的压缩算法,可进一步节省存储空间。整套算法对底层存储仅需要键值对方式的访问,支持多种数据库,甚至仅需磁盘文件系统,方便单机、集群部署。基于高效的聚合查询算法,以及键值对缓存机制,可实现连续大量时间判断的快速聚合,生成时间片段的算法优化方便,可灵活满足各种需求。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为本发明实施例一种用于存储时序数据的数据库结构示意图;
图2为本发明实施例一种时序数据聚合检索方法流程图;
图3为本发明实施例一种整体算法架构图;
图4为本发明实施例一种电子设备结构示意图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
如图1所示,为本发明一种用于存储时序数据的数据库实施例,包括:
数据存储模块11,用于采用分级分片的方式存储时序数据;所述时序数据包括原始数据和预聚合后的统计数据;
数据更新模块12,用于对所述时序数据进行增量式更新;在工业场景中,很多数据在很长时间范围内是保持不变的,因此无论是原始数据还是统计数据,均为数据有变化时才更新,以达到压缩数据量的目的;前置的数据采集装置亦可采取增量式数据传输机制,以节省数据传输量;
数据查询模块13,用于提供查询所述时序数据的查询接口。
优选地,所述数据存储模块11具体用于:
对所述时序数据进行分级,级别依次递增,其中最底级为时间戳分片,用于存储原始数据,其他级别为统计级分片,用于存储预聚合后的统计数据。
例如,0级为时间戳分片,该级别的设计思路与其他产品一致,1-5级为统计级分片,用于存储聚合后的统计数据。
相对于其他时序数据库仅对时间戳进行分片存储,本发明增加统计级别的概念,优化数据存储结构,为时序数据聚合检索的优化提供数据结构支持。
优选地,各级统计级分片中存储的统计数据的生成方式为:
将所述时间戳分片中存储的原始数据进行预聚合,生成的统计数据存储在最底级统计级分片中;将最底级统计级分片中存储的统计数据进行预聚合,生成的统计数据存储在紧上一级统计级分片中;依此类推,直至得到最高一级统计级分片中存储的统计数据;即将原始级分片的原始数据预聚合,或单一统计级分片的统计数据预聚合,计算出高一级别统计数据。
为使本发明涉及的统计查询算法对底层数据存储具有良好的普适性,本发明所有持久化存储均适用键值对系统来完成,键(key)为不超过20B的二进制流,值为不超过2MB的二进制流;根据该特点,本发明所述数据库可支持的类型非常广泛,可使用磁盘文件系统、关键型数据库、非关键型数据库、云服务商对象存储等;优选地,推荐使用专用的键值对数据库,如LevelDB、RocksDB等,以达到最好的性能。
分级分片存储方案体现了原始数据和统计数据在预统计算法中的设计思路,相应地,给出本发明一种分级分片存储结构示意表,如下表所示:
级别 | 序号范围 | 单片容量 | 记录类型 | 元素说明 |
0 | 0~777600000 | 60000 | 原始值 | 各时间点的原始值 |
1 | 0~12960000 | 60 | 统计值 | 0级各分片的统计 |
2 | 0~216000 | 60 | 统计值 | 1级各分片的统计 |
3 | 0~3600 | 60 | 统计值 | 2级各分片的统计 |
4 | 0~60 | 60 | 统计值 | 3级各分片的统计 |
5 | 0(必定只有0) | 60 | 统计值 | 4级各分片的统计 |
对于不同的存储体系,可适当调整分级数量以及每一级的单片容量,以适应业务系统的需求;各级数据序号可能不连续,即某些分片序号整体空缺,分片内位置也允许有空缺。
上述过程还包括切片计算,原始值切片是按分片内位置升序排列的点集合,其中点与点之间的空缺区间认为值保持之前的点未改变;0级每一切片可存储1分钟内的原始数据,其元素为具体时刻的原始数据点信息,以Unix时间戳为1501234567890的原始数据点为例,存储位置确定方法为:
切片序号为1501234567890/60000=25020576
切片内位置1501234567890%60000=7890
在该位置上,以二进制流的方式记录序列化后的原始数据点信息,所述原始数据点信息包括:
项目 | 数据类型 | 含义 |
State | Uint8 | 原始数据点状态 |
Value | float | 原始数据点值 |
1级每一切片可存储1小时内每一分钟的统计数据,其元素为某一分钟的统计数据点信息,以0级序号为25020576的切片所代表的分钟为例,存储位置确定方法为:
切片序号为25020576/60=417009
切片内位置25020576%60=36
在该位置上,以二进制流的方式记录序列化后的统计数据点信息;
2~5级每一切片,可存储60倍于其小一级统计数据,其元素为小一级单个切片的统计数据,比照1级切片位置算法,可知:
1级417009切片,统计信息在2级切片6950(417009/60)中第9(417009%60)位置;
2级6950切片,统计信息在3级切片115(6950/60)中第50(6950%60)位置;
3级115切片,统计信息在4级切片1(115/60)中第55(115%60)位置;
4级1切片,统计信息在5级切片0(1/60)中第1(1%60)位置;
综上,在支持的原始时间戳范围内,到达第5级时切片序号必定为0;统计数据点信息包括:
需要进一步说明的是,前置位置区间长度Emplen,算法为切片内第一个点位置序号(no)/60000得到的浮点比例值,表示该切片内前面空缺的记录长度,这一区间的状态应由之前的切片末状态来决定,在切片中不包含这部分信息,需要在查询时后统计来填充。
与原始值切片统计计算类似,统计切片向高一级做统计运算时,也需要遍历该切片内升序排列的统计值点,前置空白区域Emplen即包含切片前面空缺的记录长度,也包含第一个统计点内部的空白区间,之后的空缺区间按照前面统计点的模态值来填充。
如图2所示,为本发明一种时序数据聚合检索方法实施例,适用于上述用于存储时序数据的数据库,本实施例涉及数据沿用上述实施例给出的数据,本实施例包括:
S21:接收时序数据统计查询请求;
S22:根据所述统计查询请求,通过所述数据查询模块在所述数据库中统计查询时序数据;
S23:返回统计查询结果。
优选地,当所述时序数据统计查询请求为请求统计查询原始数据时,采用原始值查询算法,具体包括:
接收时序数据统计查询请求;
根据所述统计查询请求,通过所述数据查询模块,在所述最高一级统计级分片中获取相应元素列表,根据相应元素列表在紧下一级统计级分片中获取对应的元素列表;以此类推,直至在所述时间戳分片中获取相应的统计查询数据,并返回所述统计查询数据。
受限于架构设计,所述数据库的底层存储仅支持键值对访问,没有索引,亦不支持范围检索,查询一定范围内的原始数据不能依靠存储层面支持,需利用分级存储结构达到类似于索引的作用,使得可仅依赖键值对体系完成一定范围的原始数据统计查询。
由分级存储结构,可知在支持的时间戳范围内,到达5级时序号必定为0;由此无论查询时间范围如何,均可首先从5级0序号入手,得到其元素列表,也即获知4级0序号~127序号有哪些存在;根据检索时间戳范围以及4级存在的序号,进一步获知检索范围内3级存在的序号;依次类推,可获取到检索范围内0级存在的序号,同时可取出原始值。
优选地,当所述时序数据统计查询请求为请求统计查询某一时间段内的时序数据时,采用时间段整体统计算法,具体包括:
接收时序数据统计查询请求;
根据所述统计查询请求,通过所述数据查询模块,将所述时间段的时间范围划分为与所述分级对齐的时间片段,依次统计查询各时间片段内的时序数据,最后将各时间片段内统计查询到的时序数据进行合并统计,并返回合并统计数据;时间段整体统计算法是对任意时间跨度,完成整体的统计计算,得到整体的统计信息,该过程尽可能减少所需访问的分片数量。
优选地,将所述时间段的时间范围划分为与所述分级对齐的时间片段,具体包括:将所述时间段的时间范围划分为首尾相接的时间片段,将所述时间片段从时间戳分片开始依次与紧上一级统计级分片进行对齐。
所述时间段整体统计算法具体包括分片检索算法和时间片段合并统计算法;分片检索算法先进行分片,再进行检索,其中分片过程完全是数学计算过程,分片计算将任意时间段,切割成首尾相接,尽可能对齐到高级别的统计段片段;为体现最大的划分方法,举例中使用的时间戳远远超过当前,例如查询北京时间2011年1月1日11点11分11.111秒,到3022年2月2日22点22分22.222秒,Unix毫秒时间戳范围1293851471111~33200720542222,分片划分结果下:
可见在极限情况下,11个分片即可完成毫秒级精度跨千年的统计计算,涉及到底层键值对存储仅11条,相比于直接从原始数据统计,极大的减少了数据读取量;日常检索中,时间戳起点、终点往往是整分钟或整小时,时间跨度也不会过大,依照以上算法分片数量往往不超过5片,取特定某分钟或某小时,则必定只有一个分片,取特定某天会涉及到一或两个分片。
所述时间片段合并统计算法用于完成任意时间戳之间的聚合统计计算,根据上述分片计算结果,可从底层键值对数据库中取出对应的分片,入库预聚合过程中,统计信息中均留有前置空白区间Emplen,在此处后聚合时,需予以填充计算;上述各分片时间戳均首尾相接,可直接使用前一分片末位置的末值作为下一切片的初始值,用以完成前置空白计算,第一个切片的初始值需调用指定时间戳的原始值读取方法来获取,各分片填充前置空白区间后,按切片毫秒时间长度加权合并,即可得到完整区间的统计值。
优选地,当所述时序数据统计查询请求为请求统计查询某一时间段内单位周期的时序数据时,例如7月每一天的统计值、昨天每小时的统计值等,采用时间段单位周期统计算法,具体包括:
接收时序数据统计查询请求;
根据所述统计查询请求,通过所述数据查询模块,计算所述时间段内各单位周期的起止时间戳,将所述各起止时间戳的时间范围分别划分为与所述分级对齐的时间片段,对各起止时间戳的各时间片段内的时序数据分别进行统计查询,并对各起止时间戳对应的统计查询数据分别进行合并统计,得到并返回所述时间段内各单位周期的时序数据统计查询结果;该过程将查询范围内所有周期的起止时间戳计算出来,生成时间段数组,然后复用上述时间段整体统计算法,获取查询范围时间段内每个单位周期的统计数据。
连续的时间段查询时,涉及到的底层分级很可能有重复,此时底层的键值对系统会依靠内存缓存,以减少磁盘读写次数,提高统计查询效率;同时,可灵活应对查询需求,比如某检索中每天的划分为北京时间早6点到第二天早6点,又比如英国从夏令时转冬令时的当天,只有23个小时,冬转夏时当天有25个小时,均可在本方法中优化时间段生成算法,来完成查询需求,充分实现后统计的灵活性。
综上,本发明给出了一种优化数据存储结构的数据库,以及适用于所述数据库的时序数据聚合检索方法,将其进行整合,得到本发明的整体算法架构图,如图3所示。
本发明实施例还提供一种电子设备,如图4所示,可以实现本发明图2所示实施例的流程,如图4所示,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的方法。
处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图2所示实施例的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(2)其他适用于本发明的,具有数据交互功能的电子设备。
本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述时序数据聚合检索方法。
本发明在数据写入数据库时,只需按照确定的分级分片规则对数据进行分级分片统计,目的为记录数据特征,写入过程不考虑将来查询检索时的条件;统计查询时,根据检索条件,使用原始数据与各级统计数据,优化组合后计算出统计结果,而不依赖海量原始数据,减少数据访问量,提高检索效率。统计查询时,不需要底层数据库支持索引,始终以序列化后的二进制流来存储数据,数据冗余量小,若结合LevelDB或RocksDB的压缩算法,可进一步节省存储空间。整套算法对底层存储仅需要键值对方式的访问,支持多种数据库,甚至仅需磁盘文件系统,方便单机、集群部署。基于高效的聚合查询算法,以及键值对缓存机制,可实现连续大量时间判断的快速聚合,生成时间片段的算法优化方便,可灵活满足各种需求。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
Claims (10)
1.一种用于存储时序数据的数据库,其特征在于,包括:
数据存储模块,用于采用分级分片的方式存储时序数据;所述时序数据包括原始数据和预聚合后的统计数据;
数据更新模块,用于对所述时序数据进行增量式更新;
数据查询模块,用于提供查询所述时序数据的查询接口。
2.如权利要求1所述的数据库,其特征在于,所述数据存储模块具体用于:
对所述时序数据进行分级,级别依次递增,其中最底级为时间戳分片,用于存储原始数据,其他级别为统计级分片,用于存储预聚合后的统计数据。
3.如权利要求2所述的数据库,其特征在于,各级统计级分片中存储的统计数据的生成方式为:
将所述时间戳分片中存储的原始数据进行预聚合,生成的统计数据存储在最底级统计级分片中;将最底级统计级分片中存储的统计数据进行预聚合,生成的统计数据存储在紧上一级统计级分片中;依此类推,直至得到最高一级统计级分片中存储的统计数据。
4.一种时序数据聚合检索方法,适用于如权利要求1-3项任一所述的用于存储时序数据的数据库,其特征在于,包括:
接收时序数据统计查询请求;
根据所述统计查询请求,通过所述数据查询模块在所述数据库中统计查询时序数据;
返回统计查询结果。
5.如权利要求4所述的方法,其特征在于,当所述时序数据统计查询请求为请求统计查询原始数据时,所述方法具体包括:
接收时序数据统计查询请求;
根据所述统计查询请求,通过所述数据查询模块,在所述最高一级统计级分片中获取相应元素列表,根据相应元素列表在紧下一级统计级分片中获取对应的元素列表;以此类推,直至在所述时间戳分片中获取相应的统计查询数据,并返回所述统计查询数据。
6.如权利要求4所述的方法,其特征在于,当所述时序数据统计查询请求为请求统计查询某一时间段内的时序数据时,所述方法具体包括:
接收时序数据统计查询请求;
根据所述统计查询请求,通过所述数据查询模块,将所述时间段的时间范围划分为与所述分级对齐的时间片段,依次统计查询各时间片段内的时序数据,最后将各时间片段内统计查询到的时序数据进行合并统计,并返回合并统计数据。
7.如权利要求6所述的方法,其特征在于,将所述时间段的时间范围划分为与所述分级对齐的时间片段,具体包括:
将所述时间段的时间范围划分为首尾相接的时间片段,将所述时间片段从时间戳分片开始依次与紧上一级统计级分片进行对齐。
8.如权利要求4所述的方法,其特征在于,当所述时序数据统计查询请求为请求统计查询某一时间段内单位周期的时序数据时,所述方法具体包括:
接收时序数据统计查询请求;
根据所述统计查询请求,通过所述数据查询模块,计算所述时间段内各单位周期的起止时间戳,将所述各起止时间戳的时间范围分别划分为与所述分级对齐的时间片段,对各起止时间戳的各时间片段内的时序数据分别进行统计查询,并对各起止时间戳对应的统计查询数据分别进行合并统计,得到并返回所述时间段内各单位周期的时序数据统计查询结果。
9.一种电子设备,其特征在于,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行如权利要求4-8项任一所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求4-8项任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910304908.4A CN110046183A (zh) | 2019-04-16 | 2019-04-16 | 一种时序数据聚合检索方法、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910304908.4A CN110046183A (zh) | 2019-04-16 | 2019-04-16 | 一种时序数据聚合检索方法、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110046183A true CN110046183A (zh) | 2019-07-23 |
Family
ID=67277505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910304908.4A Pending CN110046183A (zh) | 2019-04-16 | 2019-04-16 | 一种时序数据聚合检索方法、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110046183A (zh) |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502541A (zh) * | 2019-07-26 | 2019-11-26 | 联想(北京)有限公司 | 一种数据处理方法及电子设备 |
CN110635966A (zh) * | 2019-08-20 | 2019-12-31 | 华能四川水电有限公司 | 一种流量数据的可视化展示系统、方法、介质和电子设备 |
CN110647543A (zh) * | 2019-08-29 | 2020-01-03 | 凡普数字技术有限公司 | 数据聚合方法、装置以及存储介质 |
CN110704675A (zh) * | 2019-10-17 | 2020-01-17 | 北京旷视科技有限公司 | 对象管理方法、装置、计算机设备和存储介质 |
CN110765184A (zh) * | 2019-11-08 | 2020-02-07 | 深圳微品致远信息科技有限公司 | 一种停车场数据展示方法、系统、计算机设备及存储介质 |
CN111008200A (zh) * | 2019-12-18 | 2020-04-14 | 北京数衍科技有限公司 | 数据查询方法、装置和服务器 |
CN111177188A (zh) * | 2019-12-30 | 2020-05-19 | 浙江邦盛科技有限公司 | 一种基于聚合边与时序聚合边的快速海量时序数据处理方法 |
CN111274256A (zh) * | 2020-01-20 | 2020-06-12 | 远景智能国际私人投资有限公司 | 基于时序数据库的资源管控方法、装置、设备及存储介质 |
CN111522846A (zh) * | 2020-04-09 | 2020-08-11 | 浙江邦盛科技有限公司 | 一种基于时序中间态数据结构的数据聚合方法 |
CN111581220A (zh) * | 2020-05-28 | 2020-08-25 | 泰康保险集团股份有限公司 | 用于时间序列数据的存储及检索方法、装置、设备及存储介质 |
CN111639072A (zh) * | 2020-04-14 | 2020-09-08 | 北京中交兴路信息科技有限公司 | 一种车联网场景下的数据存储方法及系统、可读存储介质 |
CN111782663A (zh) * | 2020-05-21 | 2020-10-16 | 浙江邦盛科技有限公司 | 一种提升聚合查询效率的聚合索引结构及聚合索引方法 |
CN112269670A (zh) * | 2020-10-30 | 2021-01-26 | 重庆紫光华山智安科技有限公司 | 数据入库方法、装置、系统及存储介质 |
CN112445795A (zh) * | 2020-10-22 | 2021-03-05 | 浙江蓝卓工业互联网信息技术有限公司 | 一种时序数据库的分布式存储扩容方法及数据查询方法 |
CN112650756A (zh) * | 2020-12-29 | 2021-04-13 | 成都科来网络技术有限公司 | 一种基于时序数据的时间投影的索引方法及系统 |
CN113177068A (zh) * | 2021-03-15 | 2021-07-27 | 新华三信息安全技术有限公司 | 一种聚合数据查询方法、设备及介质 |
CN113204600A (zh) * | 2021-07-05 | 2021-08-03 | 浩鲸云计算科技股份有限公司 | 基于表路由分片引擎的InfluxDB分布式集群方法 |
CN113312434A (zh) * | 2021-07-29 | 2021-08-27 | 北京快立方科技有限公司 | 一种海量结构化数据的预聚合处理方法 |
CN113342284A (zh) * | 2021-06-30 | 2021-09-03 | 招商局金融科技有限公司 | 时序数据存储方法、装置、计算机设备及存储介质 |
CN113434547A (zh) * | 2021-06-24 | 2021-09-24 | 浙江邦盛科技有限公司 | 一种毫秒级时序流数据精准切片方法 |
CN113742341A (zh) * | 2021-08-25 | 2021-12-03 | 杭州安恒信息技术股份有限公司 | 时序数据聚合方法、装置、计算机设备和存储介质 |
CN113961573A (zh) * | 2021-12-23 | 2022-01-21 | 北京力控元通科技有限公司 | 一种时序数据库查询方法和查询系统 |
WO2022048201A1 (zh) * | 2020-09-04 | 2022-03-10 | 北京沃东天骏信息技术有限公司 | 数据处理方法及装置、电子设备、存储介质 |
CN114281895A (zh) * | 2021-12-24 | 2022-04-05 | 成都索贝数码科技股份有限公司 | 支持远程拉取的多数据中心同步方法 |
CN114547073A (zh) * | 2022-02-10 | 2022-05-27 | 清华大学 | 时序数据的聚合查询方法、装置及存储介质 |
CN114547144A (zh) * | 2022-01-30 | 2022-05-27 | 清华大学 | 时序数据范围查询方法、装置及设备 |
CN114547022A (zh) * | 2022-01-28 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 一种数据缓存优化的方法、系统、设备和存储介质 |
CN115757427A (zh) * | 2022-12-01 | 2023-03-07 | 北京空间飞行器总体设计部 | 一种航天器测试数据的存储方法和软件 |
CN117472915A (zh) * | 2023-12-27 | 2024-01-30 | 中国西安卫星测控中心 | 一种面向多Key值的时序数据的层级存储方法 |
CN117874069A (zh) * | 2023-12-19 | 2024-04-12 | 上海汇付支付有限公司 | 一种实时大数据快速查询分析方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495851A (zh) * | 2011-11-17 | 2012-06-13 | 百度在线网络技术(北京)有限公司 | 时序数据的存储和查询方法、系统及装置 |
CN103577456A (zh) * | 2012-07-31 | 2014-02-12 | 国际商业机器公司 | 用于处理时序数据的方法和装置 |
CN106648446A (zh) * | 2015-10-30 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种用于时序数据的存储方法、装置及电子设备 |
CN108268589A (zh) * | 2017-12-05 | 2018-07-10 | 北京百度网讯科技有限公司 | 时序数据的聚合查询方法、装置、计算机设备及可读介质 |
CN108446329A (zh) * | 2018-02-13 | 2018-08-24 | 北京工业大数据创新中心有限公司 | 面向工业时序数据库的自适应数据库分区方法及系统 |
CN108664660A (zh) * | 2018-05-21 | 2018-10-16 | 北京五八信息技术有限公司 | 时序数据库的分布式实现方法、装置、设备及存储介质 |
CN109597837A (zh) * | 2018-11-29 | 2019-04-09 | 深圳前海微众银行股份有限公司 | 时序数据的存储方法、查询方法及相关设备 |
-
2019
- 2019-04-16 CN CN201910304908.4A patent/CN110046183A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495851A (zh) * | 2011-11-17 | 2012-06-13 | 百度在线网络技术(北京)有限公司 | 时序数据的存储和查询方法、系统及装置 |
CN103577456A (zh) * | 2012-07-31 | 2014-02-12 | 国际商业机器公司 | 用于处理时序数据的方法和装置 |
CN106648446A (zh) * | 2015-10-30 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种用于时序数据的存储方法、装置及电子设备 |
CN108268589A (zh) * | 2017-12-05 | 2018-07-10 | 北京百度网讯科技有限公司 | 时序数据的聚合查询方法、装置、计算机设备及可读介质 |
CN108446329A (zh) * | 2018-02-13 | 2018-08-24 | 北京工业大数据创新中心有限公司 | 面向工业时序数据库的自适应数据库分区方法及系统 |
CN108664660A (zh) * | 2018-05-21 | 2018-10-16 | 北京五八信息技术有限公司 | 时序数据库的分布式实现方法、装置、设备及存储介质 |
CN109597837A (zh) * | 2018-11-29 | 2019-04-09 | 深圳前海微众银行股份有限公司 | 时序数据的存储方法、查询方法及相关设备 |
Cited By (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502541A (zh) * | 2019-07-26 | 2019-11-26 | 联想(北京)有限公司 | 一种数据处理方法及电子设备 |
CN110635966A (zh) * | 2019-08-20 | 2019-12-31 | 华能四川水电有限公司 | 一种流量数据的可视化展示系统、方法、介质和电子设备 |
CN110647543A (zh) * | 2019-08-29 | 2020-01-03 | 凡普数字技术有限公司 | 数据聚合方法、装置以及存储介质 |
CN110704675A (zh) * | 2019-10-17 | 2020-01-17 | 北京旷视科技有限公司 | 对象管理方法、装置、计算机设备和存储介质 |
CN110765184A (zh) * | 2019-11-08 | 2020-02-07 | 深圳微品致远信息科技有限公司 | 一种停车场数据展示方法、系统、计算机设备及存储介质 |
CN111008200A (zh) * | 2019-12-18 | 2020-04-14 | 北京数衍科技有限公司 | 数据查询方法、装置和服务器 |
CN111008200B (zh) * | 2019-12-18 | 2024-01-16 | 北京数衍科技有限公司 | 数据查询方法、装置和服务器 |
CN111177188A (zh) * | 2019-12-30 | 2020-05-19 | 浙江邦盛科技有限公司 | 一种基于聚合边与时序聚合边的快速海量时序数据处理方法 |
CN111274256A (zh) * | 2020-01-20 | 2020-06-12 | 远景智能国际私人投资有限公司 | 基于时序数据库的资源管控方法、装置、设备及存储介质 |
CN111274256B (zh) * | 2020-01-20 | 2023-09-12 | 远景智能国际私人投资有限公司 | 基于时序数据库的资源管控方法、装置、设备及存储介质 |
CN111522846B (zh) * | 2020-04-09 | 2023-08-22 | 浙江邦盛科技股份有限公司 | 一种基于时序中间态数据结构的数据聚合方法 |
CN111522846A (zh) * | 2020-04-09 | 2020-08-11 | 浙江邦盛科技有限公司 | 一种基于时序中间态数据结构的数据聚合方法 |
CN111639072A (zh) * | 2020-04-14 | 2020-09-08 | 北京中交兴路信息科技有限公司 | 一种车联网场景下的数据存储方法及系统、可读存储介质 |
CN111782663B (zh) * | 2020-05-21 | 2023-09-01 | 浙江邦盛科技股份有限公司 | 一种提升聚合查询效率的聚合索引结构及聚合索引方法 |
CN111782663A (zh) * | 2020-05-21 | 2020-10-16 | 浙江邦盛科技有限公司 | 一种提升聚合查询效率的聚合索引结构及聚合索引方法 |
CN111581220A (zh) * | 2020-05-28 | 2020-08-25 | 泰康保险集团股份有限公司 | 用于时间序列数据的存储及检索方法、装置、设备及存储介质 |
WO2022048201A1 (zh) * | 2020-09-04 | 2022-03-10 | 北京沃东天骏信息技术有限公司 | 数据处理方法及装置、电子设备、存储介质 |
CN112445795A (zh) * | 2020-10-22 | 2021-03-05 | 浙江蓝卓工业互联网信息技术有限公司 | 一种时序数据库的分布式存储扩容方法及数据查询方法 |
CN112269670A (zh) * | 2020-10-30 | 2021-01-26 | 重庆紫光华山智安科技有限公司 | 数据入库方法、装置、系统及存储介质 |
CN112269670B (zh) * | 2020-10-30 | 2023-08-25 | 重庆紫光华山智安科技有限公司 | 数据入库方法、装置、系统及存储介质 |
CN112650756A (zh) * | 2020-12-29 | 2021-04-13 | 成都科来网络技术有限公司 | 一种基于时序数据的时间投影的索引方法及系统 |
CN113177068A (zh) * | 2021-03-15 | 2021-07-27 | 新华三信息安全技术有限公司 | 一种聚合数据查询方法、设备及介质 |
CN113434547A (zh) * | 2021-06-24 | 2021-09-24 | 浙江邦盛科技有限公司 | 一种毫秒级时序流数据精准切片方法 |
CN113342284A (zh) * | 2021-06-30 | 2021-09-03 | 招商局金融科技有限公司 | 时序数据存储方法、装置、计算机设备及存储介质 |
CN113204600A (zh) * | 2021-07-05 | 2021-08-03 | 浩鲸云计算科技股份有限公司 | 基于表路由分片引擎的InfluxDB分布式集群方法 |
CN113312434A (zh) * | 2021-07-29 | 2021-08-27 | 北京快立方科技有限公司 | 一种海量结构化数据的预聚合处理方法 |
CN113742341A (zh) * | 2021-08-25 | 2021-12-03 | 杭州安恒信息技术股份有限公司 | 时序数据聚合方法、装置、计算机设备和存储介质 |
CN113961573B (zh) * | 2021-12-23 | 2022-03-04 | 北京力控元通科技有限公司 | 一种时序数据库查询方法和查询系统 |
CN113961573A (zh) * | 2021-12-23 | 2022-01-21 | 北京力控元通科技有限公司 | 一种时序数据库查询方法和查询系统 |
CN114281895B (zh) * | 2021-12-24 | 2023-12-08 | 成都索贝数码科技股份有限公司 | 支持远程拉取的多数据中心同步方法 |
CN114281895A (zh) * | 2021-12-24 | 2022-04-05 | 成都索贝数码科技股份有限公司 | 支持远程拉取的多数据中心同步方法 |
CN114547022A (zh) * | 2022-01-28 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 一种数据缓存优化的方法、系统、设备和存储介质 |
CN114547022B (zh) * | 2022-01-28 | 2024-01-16 | 苏州浪潮智能科技有限公司 | 一种数据缓存优化的方法、系统、设备和存储介质 |
CN114547144B (zh) * | 2022-01-30 | 2023-03-24 | 清华大学 | 时序数据范围查询方法、装置及设备 |
CN114547144A (zh) * | 2022-01-30 | 2022-05-27 | 清华大学 | 时序数据范围查询方法、装置及设备 |
CN114547073A (zh) * | 2022-02-10 | 2022-05-27 | 清华大学 | 时序数据的聚合查询方法、装置及存储介质 |
CN115757427A (zh) * | 2022-12-01 | 2023-03-07 | 北京空间飞行器总体设计部 | 一种航天器测试数据的存储方法和软件 |
CN115757427B (zh) * | 2022-12-01 | 2023-12-29 | 北京空间飞行器总体设计部 | 一种航天器测试数据的存储方法 |
CN117874069A (zh) * | 2023-12-19 | 2024-04-12 | 上海汇付支付有限公司 | 一种实时大数据快速查询分析方法和装置 |
CN117472915A (zh) * | 2023-12-27 | 2024-01-30 | 中国西安卫星测控中心 | 一种面向多Key值的时序数据的层级存储方法 |
CN117472915B (zh) * | 2023-12-27 | 2024-03-15 | 中国西安卫星测控中心 | 一种面向多Key值的时序数据的层级存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110046183A (zh) | 一种时序数据聚合检索方法、设备及介质 | |
CN102521405B (zh) | 支持高速加载的海量结构化数据存储、查询方法和系统 | |
CN102521406B (zh) | 海量结构化数据复杂查询任务的分布式查询方法和系统 | |
CN101944134B (zh) | 一种海量存储系统的元数据服务器和元数据索引方法 | |
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和系统 | |
KR102005831B1 (ko) | 범위-기반 검색을 위한 데이터 저장 관리 | |
CN103020204B (zh) | 一种对分布式顺序表进行多维区间查询的方法及其系统 | |
US7805416B1 (en) | File system query and method of use | |
CN104424258B (zh) | 多维数据查询的方法、查询服务器、列存储服务器及系统 | |
CN105303456A (zh) | 电力传输设备监控数据处理方法 | |
US10162855B2 (en) | Systems and methods for optimizing data analysis | |
CN103177094B (zh) | 一种物联网数据清洗方法 | |
CN105160039A (zh) | 一种基于大数据的查询方法 | |
CN108021717B (zh) | 一种轻量级嵌入式文件系统的实现方法 | |
CN109857898A (zh) | 一种海量数字音频指纹存储与检索的方法及系统 | |
CN102063449A (zh) | 提高数据库中数据对象统计信息可靠性的方法及装置 | |
US20170116232A1 (en) | Periodic performance optimization through heatmap based management of an in-memory area | |
CN111930817A (zh) | 一种基于大数据的分布式非结构化数据库关联查询方法 | |
CN113609374A (zh) | 基于内容推送的数据处理方法、装置、设备及存储介质 | |
CN108647266A (zh) | 一种异构数据快速分布存储、交互方法 | |
CN104991741B (zh) | 一种基于键值模型的情境适配电网大数据存储方法 | |
CN115114294A (zh) | 数据库存储模式的自适应方法、装置、计算机设备 | |
CN110471925A (zh) | 实现搜索系统中索引数据同步的方法及系统 | |
CN104408084A (zh) | 一种大数据筛选方法及装置 | |
US20220197904A1 (en) | Database Management System |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190723 |