当今世界正是一个万物智能互联的时代,同时也是大数据的时代。大数据(Big Data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长和多样化的信息资产。维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》在描述大数据时提出,在对大数据处理时不用随机分析法(抽样调查)这样的捷径,而是对所有数据进行分析处理。IBM提出大数据有5V特点,即Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实)。
物联网是大数据的重要来源,随着数据通信成本的急剧下降,物联网在各行各业中得到了推广应用。各种传感技术和智能设备的出现,计算机、摄像机等设备和智能手机、平板电脑、可穿戴产品等移动终端的迅速普及,使得物联网每秒钟都会产生海量的数据,促使全球数据总量发生急剧增长。从手环、共享出行、智能电表、环境监测设备到电梯、数控机床、挖掘机、工业生产线等都在源源不断地产生海量的实时数据并发往云端。这些海量数据是社会和企业宝贵的财富,能够帮助企业实时监控业务或设备的运行情况,生成各种维度的报表,而且通过大数据分析和机器学习,对业务进行预测和预警,帮助社会或企业进行科学决策、节约成本并创造新的价值。
相关机构统计,目前全世界的联网设备数量已经超过170亿台,除智能手机、平板电脑、笔记本电脑或固定电话等连接外,物联网专用设备的数量达到了70亿台。物联网连接设备无论是在消费级连接(智能家居、智能硬件等)还是在企业级连接(机器设备等)上,近几年都得到了强势的增长。预计2025年,活跃的物联网设备数量将超过220亿台。
对应于物联网系统中联网设备的飞速增长,数据的产生速度和数量已超出了一般人的想象,未来还将以指数级增长。例如,智能摄像头的分辨率正在从1080P向8K转化,一个摄像头一天所采集的数据量已经从100GB发展到200GB。2020年,一个互联网用户平均每天产生的数据量可能是1.5GB,而一家智能医院的所有设备,如CT机、核磁共振扫描仪等进行联网后,其一天所产生数据的总量已经超过3TB。
上述数字时刻都在提醒我们,未来将是一个充满数据的世界。在如今掌握数据便是掌握财富的时代,物联网创造出的价值也将会水涨船高。由于物联网数据具有非结构化、碎片化、时空域等特性,需要新型的数据存储和处理技术。而大数据技术可支持物联网系统中海量数据的深度应用。物联网帮助采集来自各种感知层终端的众多数据,然后将这些海量数据传送到云平台进行分析加工。物联网产生的大数据的处理过程可以分为数据采集、数据存储和数据分析处理3个基本步骤。数据采集和存储是基本功能,而大数据时代真正的价值蕴含在数据分析处理中。物联网数据分析处理的挑战还在于将新的物联网数据和已有的数据库进行整合。
物联网不同于传统互联网,互联网主要是人与人之间的连接,其数据采集和处理过程首先要满足人的需求。物联网拥有海量的节点,除了人和服务器,物品、设备、感知终端等都是物联网的组成节点,其数据规模远大于互联网。物联网节点的数据生成频率远高于互联网。物联网中的数据生成速率或采集频率更高,在很多情况下需要实时访问、控制相应的节点和设备,海量的数据必然对传输速率及实时性有更高的要求。物联网对数据真实性的要求很高,物联网是真实物理世界与虚拟数字世界关联的纽带,物联网对数据的处理将直接影响物理世界,所以物联网中数据的真实性显得尤为重要。除此之外,物联网拥有非常多样化的数据,物联网涉及的范围很广,从智慧城市、智能交通、智慧物流、商品溯源,到智能家居、智慧医疗、安防监控等都属于物联网的应用范畴,所以在不同领域的不同行业,需要面对类型不同的应用数据。
具体分析,物联网中的大数据大致有如下几个特征。
(1)数据是时序的,带有时间戳。联网的设备按照设定的周期或受外部的事件触发,源源不断地产生数据。每个数据点都是在一个时间点上产生的,这个时间点对于数据的计算和分析十分重要,必须记录。
(2)数据是结构化的。网络爬虫的数据及微博、微信的海量数据都是非结构化的,可以是文字、图片、视频等。但物联网设备产生的数据往往是结构化的,而且是数值型的,如智能电表采集的电流、电压数据就可以用4字节的标准浮点数来表示。
(3)数据极少有更新操作。联网设备产生的数据是机器日志数据,一般不容许修改而且也没有修改的必要。很少有场景需要对采集的原始数据进行修改。但是对于一个典型的信息化或互联网应用,记录是一定可以被修改或删除的。
(4)数据源是唯一的。一台设备采集的数据与另外一台设备采集的数据是完全独立的。一台设备的数据一定是这台设备产生的,不可能是人工或其他设备产生的,也就是说一台设备的数据只有一个生产者,数据源是唯一的。
(5)相对于互联网应用,写多读少。对于互联网应用,一条数据记录,往往是一次写、很多次读。例如,一条微博只写一次,但可能有上百万人读。但物联网设备产生的数据不一样,一般是由计算、分析程序自动地读,而且计算、分析次数不多,只有分析事故等场景时,才会需要人读原始数据。
(6)用户关注的是一段时间的趋势。不管是银行记录,还是微博、微信,对它的用户而言,每一条都很重要。但对于物联网数据,数据点之间的变化并不大,一般是渐变的,大家更关心的是一段时间,如过去的5分钟,过去的1小时数据的变化趋势,一般对某一特定时间点的数据并不关注。
(7)数据是有保留期限的。采集的数据一般都有基于时长的保留策略,如保留1天、1周、1个月、1年甚至更长时间,为节省存储空间,系统最好能自动删除。
(8)数据的查询分析往往是基于时间段和某一组设备的。对于物联网数据,做计算和分析的时候,一定是在指定时间范围的,不会只针对一个时间点或整段历程进行。而且往往需要根据分析的维度,对物联网设备的一个子集采集的数据进行分析,如某个地理区域的设备,某个型号、某个批次的设备,某个厂商的设备,等等。
(9)除存储查询外,往往还需要实时分析计算操作。对于大部分互联网大数据应用,离线分析更多被采用,即使有实时分析,但实时分析的要求并不高。例如用户画像,可以积累一定的用户行为数据后进行,早一天或晚一天不会影响结果。但是对于物联网应用,对数据的实时计算要求往往很高,因为需要根据计算结果进行实时报警,以避免事故的发生。
(10)流量平稳、可预测。给定物联网数量、数据采集频次,就可以较为准确地估算出所需要的带宽和流量,以及每天新生成的数据量。不像电商那样,在“双11”期间,流量大幅上涨;也不像12306网站,春节期间网站流量会出现几十倍的增长。
(11)数据处理的特殊性。与典型的互联网相比,数据处理需求不一样。例如,要检查某个具体时间设备采集的某个量的数据,但传感器实际采集的不是这个时间点的数据,这时往往需要做插值处理。还有很多场景,需要基于采集量,做复杂的函数计算。
(12)数据量巨大。以智能电表为例,一台智能电表每隔15分钟采集一次数据,每天自动生成96条记录。假设全国有5亿台智能电表,则每天光智能电表就生成近500亿条记录。一台联网的汽车每隔10~15秒采集一次数据发到云端,一台车一天就很容易产生1000条记录。如果将2亿辆车联网,那么每天将产生2000亿条记录。
为了对日益增长的互联网数据进行处理,大数据分析工具纷纷涌现,最典型的就是Hadoop系统。除了使用大家所熟悉的Hadoop组件(HDFS、MapReduce、HBase、Hive等),通用的大数据处理平台往往还使用Kafka或其他消息队列工具、Redis或其他缓存软件、Flink或其他实时流式数据处理软件。在大数据的存储方面也有人选用MongoDB、Cassandra或其他NoSQL数据库。这样一个典型的大数据处理平台基本上能很好地处理互联网行业的应用需求,如典型的用户画像、舆情分析等。
目前在农业、交通等物联网应用系统中,不少大数据处理平台是基于上述的互联网通用大数据处理平台架构进行开发的。虽然在某种程度上可以正常工作满足客户需求,但是由于物联网场景下的数据有其独特性,通用大数据处理平台在很多方面存在先天不足,具体有以下几点。
(1)运行效率低。现有的这些开源软件主要是用来处理互联网上非结构化数据的,但是物联网采集的数据都是时序的、结构化的。用非结构化数据处理技术来处理结构化数据,无论是存储还是计算,消费的资源都大很多。例如,智能电表采集电流、电压数据,用HBase或其他K-V型数据库存储的话,其中的Row Key往往是智能电表的ID,加上其他静态标签值。每个采集量的Key由Row Key、Column Family、Column Qualifier、时间戳、键值类型等组成,然后紧跟具体的采集量的值。这样存储数据,负载很大,浪费存储空间。
(2)运维成本高。每个模块,无论是Kafka、HBase、HDFS还是Redis,都有自己的管理后台,都需要单独管理。在传统的信息系统中,一个DBA只要学会管理MySQL或Oracle就可以,但现在一个DBA需要学会管理、配置、优化很多模块,工作量大了很多。而且由于模块数过多,定位一个问题变得更为复杂。例如,用户发现有条采集的数据丢失了,丢失的是Kafka、HBase、Spark数据还是应用程序数据,无法迅速定位。往往需要花很长时间,找到方法将各模块的日志关联起来才能找到丢失原因。模块越多,系统整体的稳定性就越差。
(3)应用推出慢、利润低。研发效率低、运维成本高导致产品推向市场的时间变长,让企业丧失商机。而且这些开源软件都在演化中,要同步使用最新的版本也需要耗费一定的人力。除互联网头部公司外,中小型公司在大数据处理平台投入的人力资源成本一般都远超过专业公司的产品或服务费用。
(4)对于小数据量场景,私有化部署太重。在物联网、车联网场景中,因为涉及生产经营数据的安全,私有化部署仍然是主流。而每个私有化部署,处理的数据量有很大的区别,从几百台设备到数万台设备不等。对于数据量小的场景,通用的大数据解决方案就显得过于臃肿,投入与产出不成正比。因此有的平台提供商往往有两套方案:一套针对大数据场景,使用通用的大数据处理平台;一套针对数据量小的场景,使用MySQL或其他数据库来处理,但研发和维护成本提高了。
物联网系统的数据是流式数据,单个数据点的价值很低,甚至丢失一小段时间的数据也不影响分析结论,不影响系统的正常运行。但由于数据记录规模巨大,导致数据的实时写入成为瓶颈,查询分析极为缓慢,这就成为新的技术挑战。传统的关系型数据库、NoSQL数据库及流式计算引擎由于没有充分利用物联网数据的特点,性能提升极为有限,只能依靠集群技术,投入更多的计算资源和存储资源来处理,造成系统的运营维护成本急剧上升。
针对上述问题,需要按照物联网场景来优化开发满足其应用特征的大数据处理平台,应具有如下特征。
(1)充分利用物联网的数据特点,在技术上做各种优化,大幅提高数据插入、查询的性能,降低硬件或云服务的成本。
(2)大数据处理平台必须是水平扩展的,随着数据量的增加,只需要增加服务器进行扩容即可。
(3)大数据处理平台必须有单一的管理后台,并易于维护,尽量做到零管理。
(4)大数据处理平台应该是开放的,有业界流行的标准SQL接口,提供Python、R或其他语言的开发接口,方便集成各种机器学习、人工智能算法或其他应用。
面对这一高速增长的物联网数据处理市场,近几年出现了一批专注于物联网场景下时序数据处理的公司。例如美国的InfluxData,其产品InfluxDB在IT运维监测方面有相当的市场占有率。在工业控制领域,老牌实时数据库公司OSIsoft在2017年5月获得软件银行集团12亿美元的投资,期望成为新兴的物联网领域数据库的领头羊。开源社区也十分活跃,如基于HBase开发的OpenTSDB。我国的阿里巴巴、百度、华为都有基于OpenTSDB的产品。北京涛思数据科技有限公司在吸取众多传统关系型数据库、NoSQL数据库、流式计算引擎、消息队列等软件的优点之后自主开发了一个完整的时序大数据处理引擎TDengine。
物联网中数据的产生主要依赖于各种物联网设备,通过这些设备中的各种传感器感知用户的行为习惯,进而形成相关的数据。在对大数据进行进一步处理,形成有效的数据后,再利用这些数据更好地服务用户。物联网系统与大数据的融合应用空间广阔,大数据和物联网技术的结合充满无限可能。物联网系统中的大数据处理技术可以帮助人们建立智能监控模型、智能分析模型、智能决策模型等应用服务工具,深刻改变人们的生活。数据存储、数据计算与挖掘技术,都将成为万物互联场景下大数据应用的核心能力。
作为一个典型的范例,工业物联网是围绕工业生产系统各环节,充分应用移动互联、人工智能等现代信息技术和先进通信技术,实现工业生产各环节的万物互联、人机交互,具有状态全面感知、信息高效处理、应用便捷灵活特征的智能服务系统。而工业大数据是工业物联网与大数据技术的深度融合应用。工业大数据是在工业产品全生命周期的信息化应用中所产生的数据,是工业物联网的核心,也是工业智能化发展的关键。工业大数据是基于网络互联和大数据技术,贯穿于工业的设计、工艺、生产、管理、服务等各环节,使工业系统具备描述、诊断、预测、决策、控制等智能化功能的模式和结果。
业界普遍认为,工业大数据的主要来源有3类。第一类是企业经营相关的业务数据,这类数据来自企业信息化过程,包括企业资源计划(ERP)、产品生命周期管理(PLM)、供应链管理(SCM)、客户关系管理(CRM)和环境管理系统(EMS)等,此类数据是工业企业传统的数据资产。第二类是机器设备互联数据,主要是指在工业生产过程中,装备、物料及产品加工过程的工况状态、环境参数等运营情况数据,通过MES系统实时传递,目前在智能装备大量应用的情况下,此类数据增长最快。此类数据是工业物联网系统实时采集的数据。第三类是企业外部数据,包括工业企业产品售出之后的使用、运营情况的数据,同时还包括大量客户、供应商、互联网等数据。
从工业领域的物联网与大数据的融合应用来看,工业物联网大数据与普遍意义上的互联网大数据具有以下不同之处。
互联网大数据是在数据分析的基础上,分析用户的使用习惯、消费偏好和行为特征等相关数据,运用的是统计学的知识对数据进行处理。例如今日头条,通过数据分析,给用户推荐阅读内容,增加用户的黏性;又如淘宝,通过统计、分析消费者的消费习惯,推荐相关的产品给用户。而工业物联网系统中的大数据是通过对设备、机组等进行连续记载,获得的设备运行的全部数据,根据对设备的监测,在多指标的逻辑算法之上,基于数据分析的综合评估,指导设备调整、检修、配件更换、耗材更换,以保证生产的连续性。
互联网所收集的数据,大多通过关联性挖掘,是一种发散性的数据收集和分析,互联网大数据在进行预测和决策时,仅仅考虑两个属性之间的关联是否具有统计显著性。例如亚马逊收集买家的行为,对转化率、相关性、买家满意率和留存率数据进行分析,类似这样的数据并不能准确地反映每个买家购买行为的决定因素。
而工业物联网系统中的大数据具有非常强的目的性,更强调数据的准确性。工业大数据对预测和分析结果的容错率比互联网大数据低很多。例如工业物联网系统中的故障预测,其基于装备真实健康状态和衰退趋势,结合用户决策活动的定制化需求,提供设备使用、维修和管理等活动相关的最优决策支持,达成任务活动与设备状态的最佳匹配,以保障生产系统的持续稳定运行。
互联网大数据在时效性方面没有特殊的要求,其数据是长期积累的,从中找出数据中的相关性即可。而工业物联网系统中的大数据非常注重数据的时效性,时间序列特征明显,数据的时间戳和数值幅度都在变化;采集的频率高,数据量大并且数据维数多、价值分散。例如,工业设备的故障,厂房或生产的灾难性故障,火灾、污染物的泄露等,这些不仅需要事后的补救,更为重要的是,工业物联网还需要在数据提供和采集的基础上进行提前预测并发出预警,在灾难可能发生之前采取措施避免灾难的发生。