如何选择一个更适合物联网的数据平台?

2020年8月22日  12:20:26 来源:168炒股学习网  阅读:88人次

神州数码(000034)

发表于 财富号评论(cfhpl)
如何选择一个更适合物联网的数据平台?

我们每天都生活在各种物体所环绕的世界中,而每个物体都与网络密切连接而彼此互联,组成了大家口中的物联网IoT(Internet of Things)。

行业专家预测未来IoT设备的数量将以指数级增长,而现如今量级已经达到了300亿。
管理众多的联网设备产生的数据,相比管理传统数据要复杂很多,最大难点是“数据量”大幅提升和“处理实时性”要求显著加强。
因此,我们需要更加专业的物联网数据平台高效地存储和处理时序数据。

本文将从什么是时序数据讲起,详细介绍在物联网领域为什么我们需要InfluxData数据平台。
什么是时序数据

每一个IoT设备都会通过传感器产生大量的实时数据,例如机器温度、容量、内存使用率等,这些数据都是带有时间戳的,我们称之为时间序列数据(时序数据)。

它的特点是一系列来源维度相同的数据点,每个点都对应着一个值和一个时间点,经过一段时间间隔连续进行测量而得出。

很好区分时序数据和其他数据的一点是总有一个坐标轴记录的是时间。
如下图记录的就是不同时刻三支股票的不同价格:

时序数据的类型

时序数据分为两种类型:

常规型(regular)

非常规型(irregular)

常规型时序数据通常是软硬件的传感器上周期性测量的数据(例如每10s产生一次数据),这类时序数据我们简称指标(metrics)。

非常规时序数据一般是事件驱动型的,由用户或其他外界非周期性的事件所产生的,这里我们称之为事件(events),但是可以通过规律性的总结将非常规时序数据转变为常规时序数据,例如可以记录每十分钟股票的交易价格等。

时序数据库产品

现在我们了解了什么是时序数据,也了解到IoT设备所产生的数据都是时序数据,这意味着需要一个弹性的并且可扩展的IoT平台架构去存储和处理这些数据,我们称之为时序数据库。

目前市场上时序数据库有很多,例如InfluxDB、Graphite、RRD、OpenTSDB但不是每个时序数据库都能完美的满足客户的所有需求。
而在这当中InfluxDB所涵盖的功能及服务更加全面。

例如很多时序数据库仅支持常规型时序数据的处理和存储,但InfluxDB对于两种类型的时序数据都支持;InfluxDB对于数据的整个生命周期,从产生到加工,存储再到展示都有相对应的组件去完成,而部分时序数据库则需要第三方软件来实现。

什么是InfluxData平台

InfluxData平台是一个开源时间序列平台,它由一整套组件所构成,我们称为InfluxData Tick Stack。
它包括四部分:Telegraf、InfluxDB、Chronograf和Kapacitor。

Telegraf

用于数据抓取与收集,并传输到InfluxDB中。
Telegraf是一个插件驱动型的代理服务器,含有200多个插件可以与其他产品集成;Go语言编写,单一二进制,内存占用极低。

InfluxDB

作为数据库存储时序数据,是整个Tick Stack的存储层,可以处理高写入以及查询负载,并提供一种类似于SQL的查询语言,叫InfluxQL,专门用于数据交互。

Chronograf

用于时序数据的展示,是整个Tick Stack的UI层,提供多模板与库以便迅速建立面板并提供实时的数据可视化,为企业提供更有效的监控和预测。

Kapacitor

作为数据处理、监控与告警的核心,由TICKscript编写而成,可实时处理InfluxDB中的流数据以及批数据。
Kapacitor还有一个强大的告警系统,并提供一个插件基架,可以与任何第三方的异常检测插件进行集成。

为了更好地支持开发人员,2017年11月,InfluxData还宣布了Flux语言,这是一种专注于工业领域,针对时序数据而创造的功能性查询语言,在时序数据的查询,分析等方面表现尤为突出。

为什么要选择InfluxData平台

当我们回顾来看处于物联网中的每个物体,确实只有数据才能更好的”表达”它们。

IoT领域会频繁产生大量纳秒级的数据,并且需要对这些数据进行快速地聚合、索引、存储以及可视化来更好地挖掘其潜在价值,进而形成企业知识,指导企业的日常生产和经营决策。

那么,如何选择一个优秀的时序数据库就变得至关重要了。
目前,我们了解到许多正在使用InfluxDB数据库的客户,他们之前在选择IoT数据平台之初,并没有把InfluxDB作为首选,之后遇到了许多技术上的问题和瓶颈。

以下是我们总结的三个主要方面:

01 其他数据库的尝试

-MYSQL

一种流行的开源关系数据库管理系统,但是其数据库技术设计的初衷是解决用户特定的需求。
像MySQL和Oracle这种关系型数据库,它们都是致力于在数据间建立并保留某种关系(比如每个客户有订单,每个订单又有订单行)。
但这类数据库不适合处理物联网数据(流数据、带有时间戳的实时数据),并且在压缩、时间性能、数据查询以及可拓展性方面上,存在很大缺陷。

-Hbase或 Cassandra

另一种常见的选择通常是HBase(Google的BigTable架构的一个开源实现,采用Java编写的,开源、非关系型、分布式数据库)或者Cassandra。
这类数据库属纵列或键值数据库,是专为任意数量的“大数据”而设计,但它们同样也不适合处理物联网数据。
比如,这两种数据库都不以时间作为关键要素;它们不会压缩时间戳数据以提高资源利用率;它们无法处理物联网流数据所需的每秒数百万次写入;它们没有内置的功能来完成基于时间的查询(例如查询一个传感器的读数在一星期内超过某个平均值的次数);并且它们不能自动降采样旧数据的时间精度以释放资源。
以上功能对于Hbase或Cassandra数据库,均需额外配备技术资源才可实现。

-MongoDB

部分客户会尝试MongoDB,一个以C和C++编写的开源的面向文档型的数据库,属于NoSQL数据库。
虽然它不是一个时序数据库,但是它的开发者经常推广它用于物联网行业当中。
然而MongoDB是一个NoSQL数据库,更适用于文件存储或键值对存储,而这两种用途对IoT数据处理都不具优势。
研究测试表明InfluxDB在IoT数据摄取和磁盘存储方面均明显优于MongoDB。

综上,客户真正需要的是一个处理IoT时序数据的数据库软件(TSDB)。
它专门处理指标、事件或带有时间戳的测量并对于测量变化有着优秀的能力而InfluxDB是一款专为时序数据而设计的开源软件平台是IoT数据平台的更优选择。

02 初代时序数据库的尝试

客户测试时序数据库时,一般从第一代时序数据库开始。
然而时序数据库产品也会根据不同类型的时序数据而彼此存在差异。
例如Graphite、RRD、OpenTSDB,这类时序数据库只支持常规型时序数据。
相反,现代时序数据平台,比如InfluxDB,则既支持常则型时序数据也支持非常规型时序数据。

此外,InfluxDB已经在第一代时序数据方案上进化了数据模型的优化,并且对于可以使用的标签和字段的数量也没有了限制,还把时间戳的精度精细到以纳秒为单位,随着亚毫秒操作变得越来越普遍,这一点至关重要。

03 客户需要的不仅仅是一个数据库

有些客户在开始时仅仅选择的是一款数据库产品,它们在支持高写入负载、大数据集存储、时间序列功能和最优数据压缩方面上固然不错,但很快这些客户就会发现:

他们真正需要的不仅仅是一个数据库,他们还需要在流数据存储到数据库之前对其执行关联、聚合和模式检测操作(也就是流式分析),他们还需要可视化实时数据,并设置通知、控制和操作服务来使整个系统更加自动化。

简而言之,他们需要的是一个时间序列平台来支持他们的IoT架构。

如果你还想了解更多关于InfluxData时序数据库的信息,不妨加入我们的Meetup社区,这里有各种技术干货,热点分享,更有精彩的线上/线下活动、技术讨论,对时序数据技术感兴趣的你,一定不要错过!

(来源:神州数码(000034))

相关文章:
新手入门推荐
168炒股学习网
一家专注为中小股民提供炒股入门知识的网站!
我们相信客户至上,并真诚为您服务!祝您投资愉快!
商务合作微信QQ:765565686,联系人:陈经理
版权所有:168chaogu.com,粤ICP备14098693号