最近开始接触到一些IoT相关的内容,国内也有不少公司与学校在关注相关内容,在目前平台互联网发展已经成熟的阶段,工业互联网则是一片蓝海,那么我们就需要一个更加适合工业互联网的数据库
1、什么是时序数据库
什么是时序数据(Time Series Data,TSD,以下简称时序),从定义上来说,是以时间标签为索引的数据。用更加贴近实际的语言来说,就是这类数据描述了某个被测量的单位在一个时间范围内的每个时间点上的测量值。它普遍存在于IT基础设施、运维监控系统和物联网中。
时序数据从时间维度上将孤立的观测值连成一条线,从而揭示软硬件系统的状态变化。孤立的观测值不能叫时序数据,但如果把大量的观测值用时间线串起来,我们就可以研究和分析观测值的趋势及规律。这也是我们在工业互联网中为什么要使用时序数据库的原因。
以国家级气象观测站为例,全国有近6万个气象观测站,每个气象观测站有70种气象物理量需要采集。某市地铁每列列车拥有3200个指标需要测量,全市列车数达300列。服务器运维监控中,一台服务器需要同时监测IOPS、CPU、网络等十余项指标。这些例子中展现出两个概念:设备与度量指标。所谓度量指标(又被称为工况、测点)是指用户关心的能反映目标的某种状况的数据项,例如CPU利用率、温度、湿度等等。设备是指一个拥有一系列度量指标的实体,例如一台服务器、一个进程、一列车、一个气象观测站等等。一个设备的一个度量指标形成了一条时序数据的唯一标识。
随着时间推移,这条时序数据会产生一系列(时间戳,值)的二元组数据点,构成了时间序列数据集。因此,我们定义一条时间序列是由一个时间序列标识(设备和度量指标),一系列时间戳和数据值对组成的无限集。一个时间序列数据库将管理百万甚至千万条这样的时间序列。
参考:
2、为什么需要时序数据库
2.1、时序数据库的特点
2.1.1、数据写入的特点:
- 数据量大:相比于传统的互联网企业,例如滴滴、阿里等,时序数据的来源多为设备,包括车辆、服务器、生产设备等,这类设备与传统的商业活动访问量通常存在波峰波谷不同,其在整个运行周期的各个时间点几乎是均匀等量地产出大量的数据;
时序数据是由每个个体独立生成,所以当个体数量众多时,通常写入的并发和吞吐量都是比较高的,特别是在物联网场景下。写入并发和吞吐量,可以简单的通过个体数量和数据生成频率来计算,例如若你有1000个个体以10秒的频率产生数据,则你平均每秒产生的并发和写入量就是100;
例如车辆行驶过程中,可能需要以秒为单位采集车辆运行过程中的各个设备数据情况,再例如生产车间中需要实时记录设备的运行情况、生产环境的温度、湿度等信息,并且采集频率越高,数据量也就越大; - 写多读少:时序数据上95%-99%的操作都是写操作,是典型的写多读少的数据。这与其数据特性相关,例如监控数据,你的监控项可能很多,但是你真正去读的可能比较少,通常只会关心几个特定的关键指标或者在特定的场景下才会去读数据。
- 实时写入最近生成的数据,无更新:时序数据的写入是实时的,且每次写入都是最近生成的数据,这与其数据生成的特点相关,因为其数据生成是随着时间推进的,而新生成的数据会实时的进行写入。数据写入无更新,在时间这个维度上,随着时间的推进,每次数据都是新数据,不会存在旧数据的更新,不过不排除人为的对数据做订正。
2.1.2、数据查询的特点
- 按时间范围读取:通常来说,你不会去关心某个特定点的数据,而是一段时间的数据。所以时序数据的读取,基