时间序列数据库为何会突然成为宠儿?——非结构化、分布式的时间序列数据库(TSDB)以数字化的形式,能装下整体真实的物理世界,于是数字孪生、CPS、决策分析得以实现。
推荐一款开源时间序列数据库:OpenTSDB——基于Hbase的分布式的,可伸缩的时间序列数据库,而Hbase本质是列存储。
OpenTSDB介绍
OpenTSDB是什么?主要用途是什么?
官方文档这样描述:OpenTSDB is a distributed, scalable Time Series Database (TSDB) written on top of HBase;
翻译过来就是,基于Hbase的分布式的,可伸缩的时间序列数据库。
主要用途,就是做监控系统;譬如收集大规模集群(包括网络设备、操作系统、应用程序)的监控数据并进行存储,查询。
介绍continue
存储到OpenTSDB的数据,是以metric为单位的,metric就是1个监控项,譬如服务器的话,会有CPU使用率、内存使用率这些metric;
OpenTSDB使用HBase作为存储,由于有良好的设计,因此对metric的数据存储支持到秒级别;
OpenTSDB支持数据***存储,即保存的数据不会主动删除;并且原始数据会一直保存(有些监控系统会将较久之前的数据聚合之后保存)
OpenTSDB存储相关的概念
介绍这些概念的时候,我们先看一个实际的场景。
譬如假设我们采集1个服务器(hostname=qatest)的CPU使用率,发现该服务器在21:00的时候,CPU使用率达到99%
下面结合例子看看OpenTSDB存储的一些核心概念
1)Metric:即平时我们所说的监控项。譬如上面的CPU使用率
2)Tags:就是一些标签,在OpenTSDB里面,Tags由tagk和tagv组成,即tagk=takv。标签是用来描述Metric的,譬如上面为了标记是服务器A的CpuUsage,tags可为hostname=qatest
3)Value:一个Value表示一个metric的实际数值,譬如上面的99%
4)Timestamp:即时间戳,用来描述Value是什么时候的;譬如上面的21:00
5)Data Point:即某个Metric在某个时间点的数值。
Data Point包括以下部分:Metric、Tags、Value、Timestamp
上面描述的服务器在21:00时候的cpu使用率,就是1个DataPoint
保存到OpenTSDB的,就是无数个DataPoint。
OpenTSDB的总体架构
openTSDB架构
Servers:就是服务器了,上面的C就是指Collector,可以理解为OpenTSDB的agent,通过Collector收集数据,推送数据;
TSD:TSD是对外通信的无状态的服务器,Collector可以通过TSD简单的RPC协议推送监控数据;另外TSD还提供了一个web UI页面供数据查询;另外也可以通过脚本查询监控数据,对监控数据做报警
HBase:TSD收到监控数据后,是通过AsyncHbase这个库来将数据写入到HBase;AsyncHbase是完全异步、非阻塞、线程安全的Hbase客户端,使用更少的线程、锁以及内存,可以提供更高的吞吐量,特别对于大量的写操作。
众所周知,物联网时代所创造的数据将不会是互联网时代数据所能比拟的,物联网时代一辆汽车甚至一个冰箱都有一个独立的ip地址,都能依照自己系数的改变生成数据。物联网的发展离不开大数据,依靠大数据可以提供足够有利的资源;同时,大数据也推动了物联网的发展。新时代的发展提出更高的要求,这是一种智慧化的新形态,其外在表现就是物联网,而其内涵就表现为大数据。简单来说,物联网的应用,其内在本质就利用了大数据。大数据是物联网的血液,大数据代表了物联网的信息层(数据海洋),是智慧和意识产生的基础。
物联网是互联网的应用拓展,与其说物联网是网络,不如说物联网是业务和应用。因此,应用创新是物联网发展的核心,以用户体验为核心的创新是物联网发展的灵魂。
以下图为例,物联网大致分为以下几个层级:感知层,网络层,应用层。
感知层相当于人的感官和神经末梢,用来感知和采集应用环境中的各种数据。包括温度、湿度、速度、位置、震动、压力、流量、气体等各种各样的传感器。在万物互联的场景下,每天都会有大量的传感器终端在进行数据回传。
物联网的大数据与一般的大数据有以下不同的的特点:
1.物联网中的数据量更大
物联网的最主要特征之一是节点的海量性,除了人和服务器之外,物品、设备等都是物联网的组成节点,其数量规模远大于互联网;同时,物联网节点的数据生成频率远高于互联网,如传感节点多数处于全时工作状态,数据流源源不断。
2.物联网中的数据速率更高
一方面,物联网中数据海量性必然要求骨干网汇聚更多的数据,数据的传输速率要求更高;另一方面,由于物联网与真实物理世界直接关联,很多情况下需要实时访问、控制相应的节点和设备,因此需要高数据传输速率来支持相应的实时性。
3.物联网中的数据更加多样化
物联网涉及的应用范围广泛,不同领域、不同行业,需要面对不同类型、不同格式的应用数据,因此物联网中数据多样性更为突出。
4物联网对数据真实性的要求更高
物联网是真实物理世界与虚拟信息世界的结合,其对数据的处理以及基于此进行的决策将直接影响物理世界,物联网中数据的真实性显得尤为重要。
而大数据是物联网大数据中必须的关键技术,二者的结合能够为物联网系统和应用的发展带来更好的技术基础。为了更好地将大数据技术应用于物联网应用中,通过大数据挖掘分析为物联网和移动互联网提供有用的分析,获取价值。
大数据的存储模型经历了多个发展阶段。其中,关系型数据库在计算机数据管理的发展史上是一个重要的里程碑。数据结构化、***冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,使其一直长期被广泛应用于数据的存储、处理及分析,但随着网络技术和软件技术的飞速发展,人们发现关系型数据库系统虽然技术很成熟,但其局限性也是显而易见:它能很好地处理所谓的“表格型数据”,却对越来越多复杂类型的数据无能为力。然而,在物联网时代,传统的关系型数据库对于物联网大数据已然有诸多不适。由于物联设备时刻不间断的回传数据,人们对于数据的及时性需求越来也旺盛,物联网时代的数据及时性价值 对大数据存储及处理数据的及时性提出了更高的要求。
针对对物联网时间序列数据的存储时间序列数据——是在不同时间点上收集的数据,反映事物随时间变化而变化的过程。某个锅炉过去24小时内每分钟的温度就是典型的时间序列数据,它的特点是每一个时间戳对应一个数值(这个数值就是温度)。在不同的应用场景中,这个数值可以是电流、电压、转速、浓度、分贝、频率,无论是哪种度量,每一个数值都对应一个具体的采集时间戳。
物联网大数据对存储设施的要求区别于传统的关系型数据库,新的数据存储设施需要针对物联网时间序列数据的存储、查询和展现进行了专门的优化,从而获得极高的数据压缩能力、极优的查询性能,特别契合需要处理海量时间序列数据的物联网应用场景,在工业制造、环境、能源、水务、物流等领域有着巨大的需求。