通用大数据架构为何不适合处理物联网数据?

为处理日益增加的互联网数据,众多的工具开始出现,最流行的应该是 Hadoop 体系。除使用你们所熟悉的 Hadoop 组件如 HDFS,MapReduce, HBase, Hive 外,通用的大数据处理平台每每还使用 Kafka 或其余消息队列工具,Redis 或其余缓存软件,Flink 或其余实时流式数据处理软件。存储上也有人选用 MongoDB,Cassandra 或其余 NoSQL 数据库。这样一个典型的大数据处理平台基本上能很好的处理互联网行业的引用,好比典型的用户画像、舆情分析等等。git

很天然,在物联网、车联网、工业互联网起来后,你们都想到的是用通用的大数据处理平台来处理它们的数据。如今市场上流行的物联网、车联网等大数据平台几乎无一例外是这类架构,这套方法证实彻底工做。但这套通用方法效果如何?能够说有不少不足,主要表如今几个方面。github

  • 开发效率低:由于不是单一软件,须要集成至少 4 个以上模块,并且不少模块都不是标准的 POSIX 或 SQL 接口,都有本身的开发工具、开发语言、配置等等,须要必定的学习成本。并且因为数据从一个模块流动到另一个模块,数据一致性容易受到破坏。同时,这些模块基本上都是开源软件,总会有各类 BUG,即便有技术论坛、社区的支持,一旦被一技术问题卡住,总要耗费工程师很多时间。总的来说,须要搭建一个还不错的团队才能将这些模块顺利的组装起来,所以须要耗费较大的人力资源。
  • 运行效率低:现有的这些开源软件主要是用来处理互联网上非结构化的数据,可是物联网采集的数据都是时序的、结构化的。用非结构化数据处理技术来处理结构化数据,不管是存储仍是计算,消费的资源都大不少。举个例子,智能电表采集电流、电压两个量,用 HBase 或其余 KV 型数据库存储的话,其中的 Row Key 每每是智能电表的 ID,加上其余静态标签值。每一个采集量的 key 由 Row Key,Column Family, Column Qualifier, 时间戳,键值类型等组成,而后紧跟具体的采集量的值。这样存储数据,overhead 很大,浪费存储空间。并且若是要作计算的话,须要将具体采集量先解析出来。好比计算一段时间电压的平均值,就须要先将电压值从 KV 的存储里解析出来,放入一个数组,而后再进行计算。解析 KV 结构的 overhead 很大,致使计算的效率大幅下降。KV 型存储的最大好处是 schemaless, 写数据前不用定义数据结构,想怎么记录就能够怎么记录,这对于几乎天天都会更新的互联网应用而言,是个很诱人的设计。可是对于物联网、车联网等应用而言,没多少引人之处,由于物联网设备产生的数据的 schema 通常是不变的,即便改变,频次很低,由于相应的配置或固件须要更新才行。
  • 运维成本高:每一个模块,不管是 Kafka, HBase, HDFS 仍是 Redis,都有本身的管理后台,都须要单独管理。在传统的信息系统中,一个 DBA 只要学会管理 MySQL 或是 Oracle 就能够了,但如今一个DBA须要学会管理、配置、优化不少模块,工做量大了不少。并且因为模块数过多,定位一个问题变的更为复杂。好比用户发现有条采集的数据丢失,这丢失是 Kafka, HBase,Spark,仍是应用程序丢失?没法迅速定位,每每须要花很长时间,找到方法将各模块的日志关联起来才能找到缘由。并且模块越多,系统总体的稳定性就越低。
  • 应用推出慢、利润低:因为研发效率低,运维成本高,致使产品推向市场的时间变长,让企业丧失商机。并且这些开源软件都在演化中,要同步使用最新的版本也须要耗费必定的人力。除互联网头部公司外,中小型公司在大数据平台的人力资源成本通常都远超过专业公司的产品或服务费用。
  • 对于小数据量场景,私有化部署过重:在物联网、车联网场景中,由于涉及到生产经营数据的安全,不少仍是采起私有化部署。而每一个私有化部署,处理的数据量有很大的区别,从几百台联网设备到数千万台设备不等。对于数据量小的场景,通用的大数据解决方案就显得过于臃肿,投入产出不成正比。所以有的平台提供商每每有两套方案,一套针对大数据场景,使用通用的大数据平台,一套针对小数据规模场景,就使用 MySQL 或其余 DB 来搞定一切。但这样致使研发、维护成本提升。

通用大数据平台有上述的问题,是否有好的办法解决?那么咱们须要针对物联网的场景作细致的分析。仔细研究会发现,全部机器、设备、传感器产生的数据都是时序的,并且不少还带有位置信息。这些数据具备明显的特征,1: 数据是时序的,必定带有时间戳;2:数据是结构化的;3: 数据极少有更新或删除操做;4:数据源是惟一的;5:相对互联网应用,写多读少;6:用户关注的是一段时间的趋势,而不是某一特色时间点的值;7: 数据是有保留期限的;8:数据的查询分析必定是基于时间段和地理区域的;9:除存储查询外,还每每须要各类统计和实时计算操做;10:流量平稳,能够预测;11:每每须要有插值等一些特殊的计算;12:数据量巨大,一天采集的数据就能够超过 100 亿条。算法

若是咱们充分利用上述特征,彻底能够开发出一个特殊的针对物联网场景进行优化的大数据平台。这个平台将具备以下特征,1:充分利用物联网的数据特色,在技术上作各类优化,大幅度提升数据插入、查询的性能,下降硬件或云服务成本;2:必须是水平扩展的,随着数据量的增长,只须要增长服务器扩容便可;3:必须有单一的管理后台,是易于维护的,尽可能作到零管理;4:必须是开放的,有业界流行的标准 SQL 接口,提供 Python、R 或其余开发接口,方便集成各类机器学习、人工智能算法或其余应用。数据库

涛思数据的 TDengine 就是充分利用物联网数据的 12 大特色而开发的全栈式的大数据处理引擎,具有上面所说的几大特征,有望解决通用大数据平台在处理物联网数据时的不足。按照涛思数据的设计思路,使用 TDengine,应能够大幅简化物联网大数据平台的架构,缩短研发周期,下降平台运营费用。数组


目前,TDengine 已经在 GitHub 上开源,欢迎你们下载体验,若有任何问题,均可以在 GitHub 上提出,咱们有专门的研发人员进行解答。缓存

相关文章
相关标签/搜索