传感器
M2M 云计算
智慧城市
电子标签
二维码
IPV6

未来
物联网
让一切想象变成现实!

未来物联网为您提供物联网资讯,物联网新闻,物联网技术,物联网会议,

物联网企业,物联网行业资讯网站,全球物联网技术及物联网应用最新动态。

物联网关键技术:时序数据库

[复制链接]
无锡物联网   发表于 2021-1-11 22:10:33   查看: 739 帖子
物联网系统中,需要实时处理的数据可通过队列送入流处理引擎;不需要实时处理的数据,用于离线分析或数据挖掘,需要先存储起来。物联网系统的数据存储的方式很多,要根据实际场景来选择。


物联网关键技术:时序数据库-1.jpg

物理网系统各种可能的存储选择



物联网的数据主要是通过传感器采集, 经过解析和清洗, 以结构化的格式进行存储。在数据量不大的情况下, 用mysql等关系数据库就可以满足我们的需求。如果经常有很多报表统计的需要,也可以使用clickhouse、greenplum等nosql数据库。

物联网系统的数据存在特殊性,不同于传统互联网应用,除了互联网应用常用的数据库,可以结合物联网系统的数据特点,设计专门的数据存储系统。
物联网数据特点

数据写入
物联网系统的数据写入具有平稳、持续、高并发高吞吐的特点;通常写多读少,实时写入传感器最近生成的数据,几乎没有数据更新的操作。

数据查询和分析

    物联网系统的数据通常需要按时间范围读取,系统使用者不会去关心某个特定点的数据,关心的是一段时间的数据;时间近的数据被读取的概率高,查询的粒度比较细;反之时间远的数据被读取的概率低,查询粒度比较粗;物联网系统往往需要支持多精度的数据查询和多维度的数据分析。
数据存储

物联网系统数据存储量大;数据冷热分明,不同时效的数据查询需求不同;数据存储也要实现多种精度的数据存储,通常是按照时间维度统计。

时序数据库

物联网数据有个特点, 那就是每条数据都会带一个时间戳, 代表数据被采集的时间,所以物联网系统的数据是时间序列数据。
时序数据库尤其适合时间序列数据的存储,比如互联网运维领域常用的Prometheus就是基于leveldb引擎的时序数据库。顾名思义,时序数据库就是存放时序数据的数据库,支持时序数据的快速写入、持久化、多维度的聚合查询等功能。

最早的时序数据库应该是RRDTool(Round Robin Database Tool),由Tobias Oetiker 编写,后来世界各地的人对代码做出了各自贡献。




物联网关键技术:时序数据库-2.jpg

RRD存储数据的文件好似一个圆


RRDTool数据库由一个固定大小的数据文件来存放数据,此数据库不会像传统数据库一样为随着数据的增多而文件的大小也在增加,RRDTool在创建好后其文件大小就固定了。

可以将RRDTool的数据文件看成一个圆,圆的众多直径把圆划分成一个个扇形,每个扇形就是可以存数据的槽位,每个槽位上被打上了一个时间戳。

圆心上有一个指针,随着时间的流逝,取回数据后,指针会负责把数据填充在相应的槽位上;当指针转了360度后,最开始的数据就会被覆盖,就这样RRDTool循环填充着数据。

在RRDTool数据库之后,又出现了很多开源数据库。

历史上发布的开源时序数据库:


?1999/07/16 RRDTool First release

?2009/12/30 Graphite 0.9.5

?2011/12/23 OpenTSDB 1.0.0

?2013/05/24 KairosDB 1.0.0-beta

?2013/10/24 InfluxDB 0.0.1

?2014/08/25 Heroic 0.3.0

?2017/03/27 TimescaleDB 0.0.1-beta
从2016年以后,随着物联网市场的发展,时序数据库也跟着火了起来。2016年7月,百度云在其天工物联网平台上发布了国内首个多租户的分布式时序数据库产品TSDB;2017年2月Facebook开源了Beringei时序数据库;2017年4月基于PostgreSQL打造的时序数据库TimeScaleDB也开源了。

按照存储的底层技术,大致可以将时序数据库大致分为三类:

基于文件存储:RRDTool,Graphite Whisper。此类常用于服务监控告警,数据存储基于RRD的文件结构。基于K/V数据库:opentsdb基于hbase,kairosDB基于cassandra,prometheus基于leveldb,influxdb则选择自己实现的一套KV存储结构,类似LSM(Log Structured Merge) tree的TSM(Timestamp Segments Merged Tree)。基于关系型数据库:MySQL,PostgreSQL 等关系数据库也可以保存时间序列数据。
时序数据是基于时间的数据。在以时间为轴的坐标系中将这些数据点连成线,可以做成多维度报表,揭示历史数据的趋势性、规律性、异常性;也可以做大数据分析,机器学习,实现对未来的预测和预警。时序数据库为时序数据的归纳和分析提供了存储基础,在物联网蓬勃发展的今天,必将得到越来越广泛的应用。
 郑重声明:本文仅代表作者个人观点,与未来物联网(wlit.cn)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
回复

使用道具 举报

QQ|Archiver|手机版|未来物联网 ( 鲁ICP备17019744号-2 ) 百度统计

GMT+8, 2021-6-13 10:13 , Processed in 0.189687 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表