最适合物联网的开源数据库
物联网(IoT)可以生成大量的数据,包括流数据,时间序列数据,RFID数据,传感数据等。有效管理这些数据需要使用数据库。物联网数据的本质需要不同类型的数据库。以下是一些与IoT结合使用时可获得非常好的结果的数据库。
物联网(IoT)可以被看作是通过一个通用平台相互连接各种东西的网络。只需将家中和工作场所的所有设备连接起来的场景以及室外空气温度升高时室内空调自动降温的环境中观察,任何公众聚会中的人数都很容易知晓,并且可以每天监测一个人的健康参数。这是物联网可能带来的影响。
物联网的现状非常分散。有不同的公司和组织正在为其客户或其个人需求构建自己的平台。但是一个通用的平台,所有的设备,无论他们的公司,都可以通过用户友好的界面相互连接,但仍然缺失。
估计未来五年物联网设备的数量将达到数万亿。
数据库是物联网所必需的吗?
物联网产生了许多乏味的挑战,特别是在数据库管理系统领域,例如实时集成大量的大量数据,在处理数据流时处理事件以及处理数据安全性等方面。例如,智能城市中应用的基于物联网的交通传感器将实时生成大量的交通数据。
数据库在充分处理物联网数据方面发挥着非常重要的作用。因此,在适当的平台上,正确的数据库同样重要。由于物联网在全球多元化的环境中运作,选择适当的数据库变得非常具有挑战性。
在为物联网应用选择数据库之前应考虑的因素有:
1)内存 ,规模和索引
2)处理大量数据时的有效性
3)用户友好的模式
4)便携性
5)查询语言
6)流程建模和交易
7)异质性和一体化
8)时间序列聚合
9)存档
10)安全性和成本
物联网中的数据类型有:
1)RFID:射频识别
2)地址/唯一标识符
3)过程,系统和对象的描述性数据
4)普遍的环境数据和位置数据
5)传感器数据:多维时间序列数据
6)历史数据
7)物理模型:模型是现实的模板
8)用于控制的执行器和命令数据的状态
适用于物联网的数据库
InfluxDB:InfluxDB于2013年首次发布,是最近的数据库之一。 Go编程语言用于开发此数据库,该数据库完全基于LevelDB,一个键值数据库。 InfluxDB是一个时间序列数据库,用于优化和处理时间序列数据。 2000年Kdb首次发布时间序列数据,但随着物联网的兴起,InfluxDB开始流行起来,因为它推动了NoSQL,NewSQL和大量不断增加的数据。
使用InfluxDB进行物联网数据的优势包括:
1)允许编制索引
2)它有一个类似于SQL的查询语言
3)它还提供了缺失数据的内置线性插值
4)它支持自动数据下采样
5)支持连续查询来计算聚合
CrateDB:CrateDB是一个分布式SQL数据库管理系统。作为开源代码并以Java编写,它包含了来自Facebook Presto,Apache Lucene,Elasticsearch和Netty的组件,因此它的设计具有很高的可扩展性。 CrateDB是为了使物联网数据正常工作而开发的。从工业互联网和连接汽车到可穿戴设备,CrateDB是新型物联网解决方案创新者的首选数据库。
使用CrateDB进行物联网数据的优势包括:
1)每秒数百万个数据点:快速,可线性扩展的数据摄取
2)实时查询:列式索引和字段缓存提供内存中的SQL性能
3)动态模式:即时添加和查询新的传感器数据结构
4)物联网分析:快速,强大的时间序列,AI,地理空间,文本搜索,连接,聚合
5)始终开启:内置数据复制和群集重新平衡确保不间断的性能
6)ANSI SQL:无需锁定,便于任何开发人员使用和集成
7)内置MQTT代理:直接从设备到数据库集成
8)物联网生态系统:适用于Kafka,Grafana,NodeRED和其他流行的物联网堆栈软件
9)在任何地方运行,以便在边缘或云中进行高效处理
MongoDB:MongoDB是一个免费且开放源代码的跨平台面向文档的数据库程序。它被分类为NoSQL数据库程序。 MongoDB使用带模式的类似JSON的文档。组织倾向于物联网,因为它允许他们存储来自任何上下文的数据,这些数据可以实时分析,也可以在架构随时更改。
使用MongoDB进行物联网数据的优势包括:
1)高度强大的数据库
2)面向文档
3)用于一般目的
4)作为NoSQL数据库,它使用类似JSON的文档和模式
RethinkDB:在开源数据库列表中,RethinkDB位于顶部。它是用于实时Web的可扩展JSON数据库,它是从头开始构建的。 RethinkDB通过转换传统的数据库体系结构引入了令人兴奋的新访问模式。当开发人员向其发送命令时,它可以不断将更新后的查询结果推送至应用程序。这是开发人员称为换卡的功能。 RethinkDB作为系统状态的数据库,实时存储库和消息代理,这是更改进程允许的。其实时推送体系结构大大减少了构建可扩展实时应用程序所需的时间和精力。
将RethinkDB用于物联网传感器数据的优点包括:
1)RethinkDB具有适用于检查API的查询语言,这非常容易设置和学习。
2)如果任何主服务器发生故障,命令会自动转移到新服务器。
3)实时即插即用的节点功能,即使是一秒钟也没有停机时间,有助于节点的轻松添加。
4)通过Ruby和Tornado中的Eventmachine提供异步查询,从而提供异步应用程序编程接口。
5)它提供SSL访问只是为了通过公共互联网安全地访问RethinkDB。
6)Floor,Ceil和Round是由RethinkDB提供的各种数学运算符。
SQLite:SQLite数据库引擎是一个提供无服务器(自包含)事务性SQL数据库引擎的流程库。由于可移植性和占用空间小,它对游戏和移动应用程序的开发产生了重大影响。
SQLite适用于不需要任何人力支持的设备,因为数据库不需要管理权限。它非常适合用于手机,机顶盒,电视机,游戏机,相机,手表,厨房电器,恒温器,汽车,机床,飞机,遥感器,无人机,医疗设备和机器人等。如在物联网中。
客户端/服务器数据库引擎旨在位于网络核心的数据中心内。 SQLite也可以在那里工作,但SQLite也在网络边缘蓬勃发展,为自己提供帮助,同时为应用程序提供快速和可靠的数据服务,否则这些应用程序会存在不可靠的连接。
使用SQLite进行物联网数据的优势包括:
1)提供小内存占用
2)它是真实的
3)使用前不需要设置
4)没有依赖关系
Apache Cassandra:Apache Cassandra是一个免费的开源分布式NoSQL数据库管理系统,最初于2008年发布。它旨在通过许多商品服务器处理大量数据,提供高可用性,无单点故障。
在物联网中,由于大量连接的设备,通过各种网络生成,跟踪和共享数据的规模非常巨大。 Cassandra非常擅长利用大量时间序列数据,这些数据直接来自设备,用户,传感器以及存在于不同地理位置的类似机制。
使用Apache Cassandra进行物联网的优势
数据包括:
1)容错
2)演示高性能
3)分散化:集群中的每个节点都是相同的
4)可扩展
5)耐用
6)确保您处于控制之下:每个更新都可以选择同步和异步复制
7)弹性:读取和写入都是实时执行的,因此任何应用程序都没有停机时间
8)专业支持:它强化了第三方提供的合同和服务。
文章来自:https://opensourceforu.com/2018/05/open-source-databases-that-work-best-for-iot/