物联网产生大量的数据,包括流数据、时间序列数据、RFID数据、传感数据等。要有效地管理这些数据,就需要使用数据库。物联网数据的本质需要一种不同类型的数据库。以下是一些数据库,当与物联网一起使用时,会给出非常好的结果。
物联网可以看作是一个网络,在这个网络中,各种事物通过一个共同的平台相互连接。只是想象一个场景,在该场景中,每一个设备在家里和工作场所的连接,和一个世界,空调在房间外面的温度上升时自动降低其温度,当在任何公共集会的人数很容易知道,当一个人的健康可以每天监控参数。这就是物联网可能带来的影响。
物联网目前的状态是非常零散的。有不同的公司和组织正在为他们的客户或他们的个人需求建立自己的平台。但是,目前还没有一种通用的平台,可以让所有设备(无论它们是哪家公司的)通过用户友好的界面相互连接。
据估计,未来5年,物联网设备的数量将达数万亿。
物联网带来了许多繁琐的挑战,尤其是在数据库管理系统领域,比如实时整合海量数据、处理流中的事件以及处理数据的安全性。例如,应用于智能城市的基于物联网的交通传感器可以实时生成大量的交通数据。
数据库在充分处理物联网数据方面扮演着非常重要的角色。因此,适当的数据库与适当的平台同等重要。由于物联网在世界上不同的环境中运行,选择合适的数据库变得非常具有挑战性。
在为物联网应用选择数据库之前应该考虑的因素是:
物联网中的数据类型有:
InfluxDB:流感数据库首次发布于2013年,是最近的数据库之一。该数据库完全基于键值数据库LevelDB,采用Go编程语言进行开发。InfluxDB是一个时间序列数据库,用于优化和处理时间序列数据。时间序列数据最早由Kdb在2000年发布,但随着物联网的兴起,随着NoSQL、NewSQL和大量增长的数据的出现,InfluxDB变得流行起来。
对物联网数据使用InfluxDB的优点包括:
CrateDB: CrateDB是一个分布式SQL数据库管理系统。它是开源的,用JAVA编写的,包含了来自Facebook Presto、Apache Lucene、Elasticsearch和Netty的组件——因此它是为高可伸缩性而设计的。CrateDB是为使物联网数据工作而设计的。从工业互联网、联网汽车到可穿戴设备,CrateDB是新型物联网解决方案创新者的首选数据库。
将CrateDB用于物联网数据的优点包括:
MongoDB: MongoDB是一个免费的、开源的、跨平台的、面向文档的数据库程序。它被归类为一个NoSQL数据库程序。MongoDB使用具有模式的类似json的文档。它是物联网组织的首选,因为它可以让他们存储来自任何上下文的数据,可以实时分析,也可以在他们进行时改变模式。
MongoDB用于物联网数据的优点包括:
RethinkDB:在开放源码数据库列表中,RethinkDB位于顶部。它是一个可伸缩的实时Web JSON数据库,是从头开始构建的。RethinkDB通过改变传统数据库架构引入了一种令人兴奋的新访问模型。当开发人员向它发出命令时,它可以不断地将更新后的查询结果实时推送到应用程序。这是一个被开发人员称为change feed的特性。RethinkDB充当数据库、实时存储库和系统状态的消息代理,这是change feed允许的。它的实时推送架构大大减少了构建可伸缩实时应用程序所需的时间和精力。
对物联网传感器数据使用RethinkDB的优点包括:
SQLite数据库引擎是一个进程库,它提供了一个无服务器的(自包含的)事务性SQL数据库引擎。由于其可移植性和较小的内存占用,它对游戏和移动应用程序开发产生了重大影响。
SQLite适用于不需要任何人工支持的设备,因为数据库不需要管理权限。它非常适合用于手机、机顶盒、电视、游戏机、相机、手表、厨房电器、恒温器、汽车、机床、飞机、远程传感器、无人机、医疗设备和机器人,以及物联网。
客户端/服务器数据库引擎被设计为驻留在网络核心的数据中心内。SQLite也在那里工作,但SQLite也在网络的边缘蓬勃发展,在为自己提供快速可靠的数据服务的同时,为那些连接不可靠的应用程序提供服务。
对物联网数据使用SQLite的优点包括:
Apache Cassandra: Apache Cassandra是一个免费的开源分布式NoSQL数据库管理系统,最初发布于2008年。它旨在通过许多商用服务器处理大量数据,提供没有单点故障的高可用性。
在物联网中,由于连接的设备数量巨大,通过各种网络产生、跟踪和共享数据的规模非常大。Cassandra非常擅长利用大量的时间序列数据,这些数据直接来自于设备、用户、传感器以及存在于不同地理位置的类似机制。
在物联网中使用Apache Cassandra的优点
数据包括: