术语“物联网”指的是:(i)通过互联网技术互联的智能对象的全球网络,(ii)实现这一点所需的一组支持技术,即RFID,传感器, 机器通信设备,以及(iii)利用这些技术开发新的业务和营销机会的应用和服务集合。
根据Gartner的报告,2017年全球将有84亿个互联设备投入使用。物联网呈现出高度新颖的挑战,特别是对数据库管理系统的挑战,如实时集成大量庞大的数据,将事件处理为他们流,并处理数据的安全性。一个例子就是安装在智能城市中的基于物联网的环境温度传感器,它可以在几分钟内产生大量关于活跃大气温度和湿度的数据。
为了有效处理物联网数据,找到合适的数据库非常重要。但是,物联网应用选择高效的数据库可能非常具有挑战性,因为物联网环境并不总是相同的。在为物联网应用选择数据库时,需要牢记许多因素。其中最重要的是可扩展性,以足够的速度处理大量数据的能力,灵活的模式,可移植性以及各种分析工具,安全性和成本。
物联网数据库应具有容错能力和高可用性。如果数据库集群中的任何节点出现故障,它仍应能够接受读取和写入请求。分布式数据库创建数据的多个副本或副本,并将数据写入多个服务器。如果任何存储数据的服务器失败,则其他服务器接管存储并响应该查询的任务,直到失败的服务器启动。物联网数据库应该具有高度的可用性,因为物联网数据库处理系统可能面临高度庞大的写入和存储。如果任何数据库服务器关闭或实时分布式数据库的数据写入过高,则可以将数据存储在消息传递系统中,直到数据库处理数据积压或添加到主数据库集群的任何其他服务器。
以下是一些可用于基于IoT的应用程序的顶级开放源代码数据库。
InfluxDBInfluxDB是由InfluxData开发的开源分布式时间序列数据库。它是用Go编程语言编写的,基于KeyDB数据库LevelDB。除了前端之外,HTTP接口和库还提供给用户进行数据库交互。 InfluxDB的主要优势在于它可以实时汇总时间段中的值,而无需任何手动干预。
InfluxDB可以通过像Grafana这样的软件来访问,Grafana是一个功能强大的前端工具,可以为时间序列数据提供可视化功能。 InfluxDB没有外部依赖关系,SQL查询用于查询包含度量,系列和点的数据结构。每个点由不同的键值对组成,称为fieldset和timestamp。值可以是64位整数,64位浮点,字符串和布尔值。点按其时间和标记集进行索引。 InfluxDB通过HTTP,TCP和UDP存储数据。
特征
- 纯粹用Go编程语言编写,便于将其编译为单个二进制文件,而无需外部依赖。
- 高性能的定制数据存储,专为时间序列数据编写。 InfluxDB的TSM引擎允许高效和高速的数据存储和压缩。
- 插件支持其他数据摄入协议,如Graphite,collectd,OpenTSDB。
- 用于数据库和用户管理的内置Web前端工具。
- 有能力将多个系列合并在一起。