当前位置: 首页 > 科技观察

哪些开源数据库适合物联网环境?_0

时间:2023-03-15 23:44:46 科技观察

根据Gartner的一份报告,预计未来五年物联网设备的数量将达到万亿。物联网提出了非常新的挑战,尤其是对于数据库管理系统,例如如何实时集成大量数据,以及处理数据安全性。例如,应用于智慧城市的基于物联网的交通传感器会实时产生大量的交通数据。数据库在充分处理物联网数据方面发挥着非常重要的作用。因此,除了合适的平台,合适的数据库也同样重要。由于物联网在全球多样化的环境中运行,选择合适的数据库变得非常具有挑战性。另一个例子是安装在智慧城市中的基于物联网的环境温度传感器,它可以在几分钟内生成大量关于活跃大气温度和湿度的数据。可见物联网的一个重要特征是以数据为中心:1.海量性假设有一个传感器网络,有100个传感器,每个传感器节点每分钟只发回1Kb的数据,那么每天的数据量为高达1.4Gb。如果是一些大型的敏感传感器网络,每天的数据量可达1TB以上。至于未来物联网的物联网时代,产生的数据量是非常大的。因此,物联网数据是海量的。2、多态性物联网的应用是无所不包的,产生的数据自然是多种多样的。有温度、湿度等环境数据;视频、音频等多媒体数据;以及与用户交换信息的结构化数据等。数据的多态性必然会增加数据的复杂性。不同网络产生的数据格式可能不同。即使是同一种数据,单位和精度也会有差异。测量量也在不同时间发生变化。所以物联网数据是多态的。3.关系和语义物联网数据不会相互独立。描述同一实体的数据在时间上是相关的;描述不同实体的数据在空间上是相关的;描述实体的不同维度也是相关的。不同的关联组合会产生丰富的语义,通过数据在时间或空间或维度上的关联可以推断出实体的变化。总之,在很多物联网系统中,需要对大量联网设备进行监控,并将监控采样到的数据持久化。经过分析,不难看出物联网中的数据类型有:RFID:射频识别地址/标识符唯一过程,系统和对象的描述性数据通用环境数据和位置数据传感器数据:多维时间序列数据历史数据物理模型:模型是用于控制执行器和命令数据状态的现实模板因此,在为物联网应用程序选择数据库之前我们应该考虑的因素是:处理大量数据时的大小、规模和索引效率dataUser-friendlySchemaportabilityquerylanguageprocessmodelingandtransactionheterogeneousandintegrationtimeseriesaggregationarchivingsecurityandcost下面通过这张对比图简单分析一下目前大数据时代使用的各种数据库的特点。很难看出这些基于存储的数据库各有优缺点。Hbase属于NOSQL。虽然适用于高并发查询,但不直接支持SQL查询;MYSQL属于传统RDS,系统扩展性差,不适合海量数据处理;Redis是一种内存数据库系统,过于依赖内存计算,系统的扩展性和安全性较差。那么什么样的数据适合物联网呢?其实在很多年前,工业领域就有专门的数据库来完成这个任务。在工业领域,这被称为实时数据库。工业领域的实时数据库主要有数据采集、实时数据缓存、数据回写(向设备发送指令)、采样数据归档存储等功能。目前,工业领域的实时数据库基本被国外厂商垄断,价格昂贵。例如,PI(PlantInformationSystem)是美国OSIsoft开发的一套基于Client/Server结构的商业化软件应用平台。发挥着特殊而重要的作用。PI数据库的基础版(仅5,000个测量点)成本约为100,000美元,每个数据采集接口成本为6,000美元。对于一家初出茅庐的物联网公司来说,这个价格太高了。下面重点推荐几款适合物联网的开源数据库:1.InfluxDB开源网站:https://github.com/influxdata/influxdbInfluxDB于2013年发布,是最新的数据库之一。该数据库使用Go编程语言开发,完全基于键值数据库LevelDB。InfluxDB是一个时间序列数据库,用于优化和处理时间序列数据。kdb在2000年就发布了时间序列数据,但是随着物联网的兴起,InfluxDB开始流行,因为它推动了NoSQL、NewSQL以及大量不断增长的数据。使用InfluxDB处理IoT数据的优势包括:允许索引它具有类似SQL的查询语言它还提供内置的缺失数据线性插值它支持自动数据下采样支持连续查询以计算聚合2.CrateDB开源URL:https://github.com/crate/crateCrateDB是一个分布式SQL数据库管理系统。作为开源软件并用Java编写,它包括来自FacebookPresto、ApacheLucene、Elasticsearch和Netty的组件,因此它被设计为具有高度可扩展性。CrateDB的开发是为了让物联网数据发挥作用。从工业互联网和联网汽车到可穿戴设备,CrateDB是新物联网解决方案创新者的首选数据库。将CrateDB用于物联网数据的优势包括:每秒数百万个数据点:快速、线性可扩展的数据摄取实时查询:列索引和字段缓存提供内存中SQL性能用于物联网分析的传感器数据结构:快速、强大的时间-系列、AI、地理空间、文本搜索、连接、聚合永远在线:内置数据复制和集群重新平衡确保不间断的性能ANSISQL:无需锁定,易于任何开发人们使用和集成内置MQTT代理:直接来自设备到数据库集成物联网生态系统:与Kafka、Grafana、NodeRED和其他流行的物联网堆栈软件一起运行在任何地方运行,以便在边缘或云端进行高效处理3.RethinkDB开源网站:https://github.com/rethinkdb/rethinkdb在开源数据库列表中,RethinkDB位居榜首。它是用于实时Web的可扩展JSON数据库,是从头开始构建的。RethinkDB通过转换传统数据库架构引入了令人兴奋的新访问模式。当开发人员向它发送命令时,它可以不断地将更新的查询结果推送到应用程序。这是开发人员称为交换卡的功能。RethinkDB充当系统状态数据库、实时存储库和消息代理,允许流程中的更改。其实时推送架构大大减少了构建可扩展实时应用程序所需的时间和精力。将RethinkDB用于IoT传感器数据的优势包括:RethinkDB具有用于检查API的查询语言,非常易于设置和学习。如果任何主服务器出现故障,命令将自动传输到新服务器。实时即插即用的节点功能,即使是一秒钟也不会停机,这有助于轻松添加节点。通过Ruby和Tornado中的Eventmachine为异步查询提供异步API。它仅提供SSL访问以通过公共互联网安全访问RethinkDB。Floor、Ceil和Round是RethinkDB提供的各种数学运算符。4.ApacheCassandra开源网站:http://cassandra.apache.org/,https://github.com/apache/cassandraApacheCassandra是一个免费的开源分布式NoSQL数据库管理系统,最初于2008年发布。它是旨在处理许多商品服务器上的大量数据,提供高可用性且无单点故障。在物联网中,由于连接的设备数量众多,在各种网络上生成、跟踪和共享数据的规模是巨大的。Cassandra非常擅长利用直接来自不同地理位置的设备、用户、传感器和类似机制的大量时间序列数据。使用ApacheCassandra处理物联网数据的优势包括:容错演示高性能去中心化:集群中的每个节点都是相同的读取和写入都是实时执行的,因此任何应用程序都不会停机专业支持:它加强了合同和服务由第三方提供。