时间是公平的,时间也是不公平的。
公平在于时间对于所有人都是一样,不偏不倚;不公平在于随着时间的推移,事物发展的结果有可能大不相同。摩尔定律告诉我们,当事物进入正常轨道后,其发展的速度将呈现出指数级的增长。芯片如此,网络如此,数据亦如此。
于是,当互联网进入下半场:工业互联网or产业互联网时代后,联所能连,万物互联,同一时间,诸多因素争相进入指数级发展轨道,形成了互联网不能承受又不能不承受之重。
人生若只如初见,何事秋风悲画扇。
对于格创东智所处的工业互联网领域来说,一个非常明显的特点就是汇聚大量工业数据,而工业数据的一个非常明显的特点就是和时间有关。
一般而言,工业数据的典型特点包括:
产生频率快
工业数据采集基本为秒级,部分高频数据采集为毫秒or微秒级,每一个采集点一秒钟内可产生多条数据
严重依赖于采集时间
每一条数据均要求对应唯一的时间
测点多、信息量大、数据结构相对简单
常规的实时监测系统均有成千上万的监测点,监测点每秒钟都产生数据,每天产生几十GB的数据量
工业数据是IT界“只如初见”的新问题,但是,在工业界,这早就不是问题。
在传统的工业数据采集和工业监控领域(SCADA),都需要对联网的设备进行监控,并对监控采样到的数据进行持久化。在工业领域早就有专门的数据库来完成这个任务了。
这个专门的数据库就叫做:实时数据库(此处应有掌声)。工业领域的实时数据库具有数据采集、实时数据缓存、数据回写(向设备发送指令)、采样数据归档存盘等主要功能。目前工业领域实时数据库基本上被国外厂家所垄断,价格昂贵。以著名的PI数据库为例,基础版本(只有5000个测点)就需要大约10万美元,每个数据采集接口需要6000美元。于是,不知道有多少工业版的IoT项目都被扼杀在“摇篮中”,被“秋风悲画扇”了……
上帝关门,必然开窗。
所幸,接物联网的东风,时序数据库(Time Series Database,TSDB)应运而“升”。
先看看维基百科上的解释:
勉强翻译一下:“时序列数据库就是用来存储时序列(time-series)数据并以时间(时间点或时间区间)建立索引的软件。”
简而言之,时序数据库全称为时间序列数据库。时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。
规范言之,时间序列数据(Time Series Data,TSD)可以用一个二元函数来表示:
TSD =Metric(Timestamp,Measurement),其中:
Metric代表可以唯一标识的数据序列;
Timestamp代表时间戳;
Measurement代表被测量;
简单的说,就是这类数据描述了某个被测量的主体在一个时间范围内的每个时间点上的测量值。它普遍存在于电力、化工行业等行业以及IT基础设施、运维监控系统和物联网等各类型实时监测中。
用来存储、管理、查询、处理上述二元函数数据的数据库,则可以称之为时序数据库。
时序数据库主要以解决下面几个问题:
时序数据的写入:如何支持每秒钟上千万上亿数据点的写入。
时序数据的查询:又如何支持在秒级对上亿数据的分组聚合运算。
时序数据的存储:解决由海量数据存储带来的成本敏感问题。
时序数据的生命周期管理:工业数据的价值主要体现在及时性,因此,工业数据的生命周期管理是时序数据库的核心使命。
各位看官,麻烦度娘一下,关键字:互联网监控系统,大家就会发现小米、饿了吗等互联网巨头也都在用时序数据库实现企业级的互联网监控系统。更别提目前所有国内外主流工业互联网平台了,几乎都是采用时序数据库来承接海量涌入的工业数据。
看到这里,估计已经有很多“杠精”跃跃欲试了:凭什么强大的Oracle、PostgreSQL 等传统关系型数据库搞不定时序数据?凭什么不用HBase、MongoDB、Cassandra等先进的分布式数据库来解决工业数据问题?有什么深刻技术理由非要用这个2017年才火爆起来的时序数据库呢?请继续关注格物汇的后续精彩文章!