随着数据通讯成本的急剧下降,以及各种传感技术和智能设备的出现,从手环、共享出行、智能电表、环境监测设备到电梯、数控机床、挖掘机、工业生产线等都在源源不断的产生海量的实时数据并发往云端。这些海量数据是社会和企业宝贵的财富,能够帮助企业实时监控业务或设备的运行情况,生成各种维度的报表,而且通过大数据分析和机器学习,对业务进行预测和预警,帮助社会或企业进行科学决策、节约成本并创造新的价值。

    Gartner报告联网的设备在2019年已经超过142亿,预计2021年将达到250亿,这是一个巨大的数量,产生海量的数据。但与现在大家所熟悉的互联网相比,物联网数据有其显著不同特点,本文对其特点做一分析。

    • 数据是时序的,一定带有时间戳:联网的设备按照设定的周期,或受外部的事件触发,源源不断的产生数据,每一个数据点是在一时间点产生的,这个时间对于数据的计算和分析十分重要,必须要记录。
    • 数据是结构化的:网络爬虫的数据、微博、微信的海量数据都是非结构化的,可以是文字、图片、视频等等。但物联网设备产生的数据往往是结构化的,而且是数值型的,比如智能电表采集的电流、电压就可以用4字节的标准的浮点数来表示。
    • 数据极少有更新操作:联网设备产生的数据是机器日志数据,一般不容许而且也没有修改的必要。很少有场景,需要对采集的原始数据进行修改。但对于一个典型的信息化或互联网应用,记录是一定可以修改或删除的。
    • 数据源是唯一的:一个物联网设备采集的数据与另外一个设备采集的数据是完全独立的。一台设备的数据一定是这台设备产生的,不可能是人工或其他设备产生的,也就是说一台设备的数据只有一个生产者,数据源是唯一的。
    • 相对互联网应用,写多读少:对于互联网应用,一条数据记录,往往是一次写,很多次读。比如一条微博或一篇微信公共号文章,一次写,但有可能上百万人读。但物联网设备产生的数据不一样,对于产生的数据,一般是计算、分析程序自动的读,而且计算、分析次数不多,只有分析事故等场景,人才会主动看原始数据。
    • 用户关注的是一段时间的趋势:对于一条银行记录,或者一条微博、微信,对于它的用户而言,每一条都很重要。但对于物联网数据,每个数据点与数据点的变化并不大,一般是渐变的,大家关心的更多是一段时间,比如过去的五分钟,过去的一个小时数据变化的趋势,一般对某一特定时间点的数据值并不关注。
    • 数据是有保留期限的:采集的数据一般都有基于时长的保留策略,比如仅仅保留一天、一周、一个月、一年甚至更长时间,为节省存储空间,系统最好能自动删除。
    • 数据的查询分析往往是基于时间段和某一组设备的:对于物联网数据,做计算和分析的时候,一定是指定时间范围的,不会只针对一个时间点或者整个历史进行。而且往往需要根据分析的维度,对物联网设备的一个子集采集的数据进行分析,比如某个地理区域的设备,某个型号、某个批次的设备,某个厂商的设备等等。
    • 除存储查询外,往往需要实时分析计算操作:对于大部分互联网大数据应用,更多的是离线分析,即使有实时分析,但实时分析的要求并不高。比如用户画像、可以积累一定的用户行为数据后进行,早一天晚一天画不会怎么影响结果。但是对于物联网应用,对数据的实时计算要求往往很高,因为需要根据计算结果进行实时报警,以避免事故的发生。
    • 流量平稳、可预测:给定物联网数量、数据采集频次,就可以较为准确的估算出所需要的带宽和流量,每天新生成的数据大小。而不是像电商,在双11期间,淘宝、天猫、京东等流量是几十倍的涨幅。不像12306网站,春节期间,网站流量是几十倍的增长。
    • 数据处理的特殊性:与典型的互联网相比,还有不一样的数据处理需求。比如要检查某个具体时间的设备采集的某个量,但传感器实际采集的时间不是这个时间点,这时候往往需要做插值处理。还有很多场景,需要基于采集量,做复杂的数学函数计算。
    • 数据量巨大:以智能电表为例,一台智能电表每隔15分钟采集一次数据,每天自动生成96条记录,全国就有接近5亿台智能电表,每天光智能电表就生成近500亿条记录。一台联网的汽车每隔10到15秒就采集一次数据发到云端,一台车一天就很容易产生1000条记录。如果中国2亿辆车全部联网,每天将产生2000亿条记录。五年之内,物联网设备产生的数据将占世界数据总量的90%以上。

    物联网、工业互联网的数据是流式数据,象视频流,而且单个数据点的价值很低,甚至丢失一小段时间的数据也不影响分析的结论,也不影响系统的正常运行。但看似简单的事情,由于数据记录条数巨大,导致数据的实时写入成为瓶颈,查询分析极为 缓慢,成为新的技术挑战。传统的关系型数据库、NoSQL 数据库以及流式计算引擎由于没有充分利用物联网数据的特点,性能提升极为有限,只能依靠集群技术,投入更多的计算资源 和存储资源来处理,系统的运营维护成本急剧上升。

    面对这一高速增长的物联网数据市场,近几年出现一批专注时序数据处理的公司,比如美国的InfluxData,其融资已经超过1.3亿美元,其产品InfluxDB在IT运维监测方面有相当的市场占有率。在工业控制领域老牌实时数据库公司OSIsoft在2017年5月获得软银12亿美元的投资,期望成为新兴的物联网领域的数据库的领头羊。开源社区也十分活跃,比如基于HBase开发的OpenTSDB。中国国内,阿里、百度、华为都有基于OpenTSDB的产品。

    2017年成立的北京涛思数据科技有限公司看好这一市场,不依赖任何第三方软件或开源软件,在吸取众多传统关系型数据库、NoSQL 数据库、流式计算引擎、消息队列等软件的优点之后自主开发了TDengine, 一个完整的时序大数据处理引擎。TDengine的性能远超InfluxDB, 而且其安装、部署、维护简单,使用SQL接口,学习成本几乎为零,有望成为时序数据处理市场的一匹黑马。