物联网系统中,需要实时处理的数据可通过队列送入流处理引擎;不需要实时处理的数据,用于离线分析或数据挖掘,需要先存储起来。物联网系统的数据存储的方式很多,要根据实际场景来选择。

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

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

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

物联网数据特点

数据写入

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

数据查询和分析

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

数据存储

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

时序数据库

物联网数据有个特点, 那就是每条数据都会带一个时间戳, 代表数据被采集的时间,所以物联网系统的数据是时间序列数据。

时序数据库尤其适合时间序列数据的存储,比如互联网运维领域常用的Prometheus就是基于leveldb引擎的时序数据库。顾名思义,时序数据库就是存放时序数据的数据库,支持时序数据的快速写入、持久化、多维度的聚合查询等功能。

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

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 等关系数据库也可以保存时间序列数据。

时序数据是基于时间的数据。在以时间为轴的坐标系中将这些数据点连成线,可以做成多维度报表,揭示历史数据的趋势性、规律性、异常性;也可以做大数据分析,机器学习,实现对未来的预测和预警。时序数据库为时序数据的归纳和分析提供了存储基础,在物联网蓬勃发展的今天,必将得到越来越广泛的应用。

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

  1. 青岛物联网关键技术资源发展路线图发布

    日前,青岛市<物联网关键技术-无线射频识别(RFID)全球创新资源发展路线图>正式发布.该路线图揭示研发热点,掌握主要创新机构.领军人物等创新资源的布局,进而为我市物联网技术创新和产业发展 ...

  2. 一文彻底读懂物联网关键技术之——ZigBee!

    一文彻底读懂物联网关键技术之--ZigBee! 本文采用问答形式向你详细地介绍了方方面面,不夸口的说,你所需要知道的关于 ZigBee的一切,在这里基本可以了解到! 在智能硬件和物联网领域,时下大名鼎 ...

  3. 计算机应用物联网方向6,计算机应用技术学科研究方向2:物联网关键技术及应用...

    1.目前,本方向人员所做工作的主要内容.优势特色和可能取得的突破 所作工作的主要内容: (1)数据安全与隐私保护研究:安全问题已成为物联网迈向实际应用的主要瓶颈之一,团队成员先后提出了基于协作水印技术 ...

  4. 在数据库技术中脏数据是指_数据库安全关键技术之数据库加密技术

    数据库加密作为近年来兴起的数据库安防技术,已经被越来越多的人所重视.这种基于存储层加密的防护方式,不仅可以有效解决数据库明文存储引起的泄密风险,也可以防止来自内部或者外部的入侵及越权访问行为. 从技术 ...

  5. 物联网关键技术-停车场收费系统

    一.项目介绍: 1.RFID停车场收费系统是一种利用无线射频识别技术实现停车场车辆管理和收费的系统.它使用RFID标签(也称为RFID卡片或RFID标签)和RFID读写器进行车辆识别和数据传输,通过无 ...

  6. 物联网关键技术——【停车场收费系统】

    什么叫物联网 物联网就是物物相连的互联网,物体之间通过互联网进行链接.物联网在国际上又称为传感网,是继计算机.互联网与移动通信网之后的又一次信息产业浪潮.世界上的万事万物,小到手表.钥匙,大到汽车.楼 ...

  7. 面向智慧教室物联网关键技术的研究与运用(待完成)

    毕设过程随笔 第一周(2.3-2.7) 2月3日 2月4日 2月5日 2月6日 2月7日 第二周(2.22-2.28) 2月22日 2月23日 2月24日 2月25日 2月26日 2月27日 第三周( ...

  8. 物联网应用技术竞赛 ——数据库添加新用户映射

    在服务器电脑上的数据库使用 sa 帐号登录,完成新零售门店数据库.智能 市政数据库的添加. 注意:如果这两个数据库未添加成功,会对后续部分任务造成影响. 在服务器电脑上的数据库中创建名为"d ...

  9. 物联网的概念、分层及关键技术

    概念 物联网(The Internet of Things)是实现物物相连的互联网络,其内涵包含两个方面:第一,物理网的核心和基础仍然是互联网,是在互联网基础上扩展和延伸的网络:第二,其用户端延伸和扩 ...

  10. 开展5G物联网体系架构、关键技术与行业应用集成创新高级研修班

    关于开展5G物联网体系架构.关键技术与行业应用集成创新高级研修班 --5G物联网与云计算.大数据.人工智能.边缘计算.区块链深度融合与应用集成案例邀请函 各有关单位: 2020年5G正式步入商用,5G ...

最新文章

  1. QIIME 2教程. 15样品分类和回归q2-sample-classifier(2021.2)
  2. xtraback工具的使用和备份
  3. 如何确保TCP协议传输稳定可靠?
  4. Linux下配置DNS
  5. @RequestParam,@RequestBody,@PathVariable注解还分不清吗?
  6. 小型微型计算机系统退回修改,小型微型计算机系统
  7. 个人计算机的组成及相关功能,计算机的组成部分及功能(范文).doc
  8. SELECT中的多表连接
  9. 帝国CMS友情链接系统图文教程
  10. WPE下载 WPE 各版本下载 及 教程
  11. python计算机二级刷题软件(未来教育) 第十五套
  12. 用正则表达式验证邮箱、密码、QQ号、手机号、身份证号
  13. 我的计算机老师500,我的老师_作文500字_描写人物的作文_第一范文网
  14. 很棒的图片浏览器代码,源码研究
  15. 将图片进行base64 编码后的数据进行读取,以io流的方式传给前台并显示出来并且不断刷新图片
  16. 肠道-甲状腺轴如何影响健康
  17. 怎么计算机求和错误的,《表格计算求和错误怎么办》 为什么EXCEL公式求和会有错误...
  18. Day20 python__new__、单态模式、析构方法、常用魔术方法、__str__、__repr__、__bool__ 、__len__...
  19. bedtools指南
  20. Java语言程序设计 例题9.8(Fan类)

热门文章

  1. simulink 快捷键 运行_高效使用simulink
  2. mta android 网速监控,网速监控
  3. 浏览器事件:为什么会有捕获过程和冒泡过程?
  4. 企业微信PC版多开软件,测试win10有效
  5. python中的index函数
  6. C# 判断文件是否在使用的状态FSDF
  7. 杭州亲历重要时间点记录
  8. 计算机无法读取手机内存,手机内存卡不能读取如何解决
  9. qq第三方登录所需appid
  10. 一场跨越时空的协奏:编钟、古琴与5G的“弦外之音”