物联网开源数据库分析归纳

以下是一些top开源数据库,可用于IoT应用程序

InfluxDB

一款开源、分布式、时间序列数据库,由InfluxData研发。以Go编程语言所写,基于key-value数据库LevelDB。除了前端,HTTP接口与库提供给用户用于数据库交互。InfluxDB的主要优点或者长处是能够在时段中动态(on-the-fly)聚合数值,不用任何手动介入。
能够被软件例如:Grafana访问,Grafana是一个强大的前端工具,为时序数据提供可视化特性。InfluxDB没有外部依赖关系,像查询SQL用于查询数据结构,由measurements(衡量)、series(序列)与points(点)构成。每一点由可变key-value对称作fieldsettimestamp时间戳构成。值可以是64位整型、64位浮点型、字符串以及布尔型。通过时间与tagset检索点。InfluxDB通过HTTPTCPUDP存储数据。
特性:

  • 完全以Go编程语言所写,加速编译成简单二进制文件,无外部依赖关系
  • 高性能自定义数据仓库,尤其对时序数据。InfluxDB TSM引擎允许有效高速数据存储与压缩
  • 插件支持其他数据ingestion消化工具,如:GraphitecollectdOpenTSDB
  • 内置web前端工具,用于数据与用户管理
  • 胜任将多个序列合并

官网地址:https://www.influxdata.com/

CrateDB

一款开源分布式SQL数据库管理系统,由Crate.io公司研发,充分继承了可检索的基于文档的数据仓库。Crate.io CEO Christian Lutz说:“当我们创建Crate.io时,我们着手为机器数据时代重新创造SQL。现今,75%客户因其简单使用、性能与多功能性使用CrateDB,用于管理机器与IoT。”
CrateDB使得机器数据应用能够为SQL开发者所用,在这之前,这些只有使用NoSQL解决方案才有可能。CrateDB结合SQL与搜索多功能性,容易扩展容器。它提供了一个很好的备选给分析数据仓库工具如SplunkCrateDB平台包括分布式SQL查询引擎,提供更快速的联合、聚合与ad-hoc查询;SQL集成数据与查询多功能性检索;容器架构与简单扩展自动数据分片。
CrateDB使用的主要语言是SQL,但是它也能使用NoSQL式数据库基于文档的方法。使用来自Facebook PrestoSQL解析器,用于查询与预测分析。包含一个内置管理接口,Crate Shell CLI允许用户建立互动SQL查询。
特性:

  • 高可扩展性:数据库更新非常容易,可以通过仅仅增加新机器更新集群就可以完成;无需集群内数据重新分布,因为这会由CrateDB自动完成
  • 高可用性:如果任何事情出错,会使数据库高可用,因为提供集群内数据自动复制;甚至硬件或者软件更新都不会影响正常的数据操作。CrateDB有自愈问题节点的能力。
  • 实时数据消化:提供毫秒级别的查询性能,甚至写在同时发生,去除锁开销
  • 支持多种数据:支持关系型与JSON文档,也提供blob存储与检索视频、图像与其他非结构化文件
  • 支持地域查询与动态schema,使得CrateDB极其灵活,对后端基于Agile的开发与IoT数据存储非常好。

官网:https://crate.io

Riak时序数据库

源自BashoRiak时序(TS)数据库是一款针对物联网(IoT)开源分布式NoSQL key-value存储优化的数据库。用户可以关联大量数据点与时间上的特定点。基于无主架构,也即集群内每个节点能够响应读写请求;分布式数据库自动在集群内同位(co-locate)、复制与分发数据以达到高性能与可用性。
数据访问要求高度优化,支持Apache Spark集成,使得集成支持Spark Streaming、数据帧与Spark SQL成为可能。
Riak TS可以在数据中心或者公共云上直接安装,AWS Amazon机器镜像(AMI)也可用于该数据库促进用户于AWS工作框架内体验Riak TS
特性:

  • 支持增加新节点至已有集群架构中,无需分片sharding;数据自动在数据库集群内均匀(uniformly)分发
  • 支持表格与字段定义DDL或者数据定义语言,支持存储结构与半结构化数据
  • 支持多集群复制,促进系统管理员在内部数据中心与世界上任何地方任何地理位置数据中心复制数据
  • 支持用户类SQL数据查询,方便灵活接入全球数据库
  • 支持应用集成,使用API与不同语言客户端库,像JavaRubyPythonErlangGoNodeJS.NET
  • Riak Meso框架提供有效集群资源管理与‘推送按钮’扩展或收缩RIAK节点
  • 支持完全集成Apache Spark,针对时序数据操作分析

官网:http://basho.com/products/riak-ts/

MongoDB

一款强大、灵活、免费与开源、基于文档、可扩展的通用数据库,能够横向扩展(scale out)特性,例如:二级索引、范围查询、排序、聚合与地域索引。被归类为NoSQL数据库,因为使用带schema的类JSON文档。
增加文档动态边距padding,预分配数据文件用额外空间使用交换一致性能。有效利用RAM缓存,校正索引查询。支持丰富的查询语言以支持读写操作(CRUD),以及数据聚合、文本搜索与地域查询。
特性:

  • 支持多种快速查询通用二级索引,为用户提供唯一复合地域全文本索引特性
  • 支持“聚合流水线”为数据库优化从简单搭建复杂聚合
  • 支持在一段时间之后到期的数据TTL(存活时间)采集
  • 支持简单易用协议存储大型文件与元数据文件
  • 支持JSON存储与传输信息。JSON作为标准协议,对于web与数据库而言是一大好处
  • 支持使用Javascript函数在服务端对信息处理Map-Reduce
  • 支持MongoDB管理服务(MMS)工具,允许用户跟踪数据库与备份数据
  • 支持自动负载平衡配置,因为放置于分片中的数据

官网: https://www.mongodb.com/

RethinkDB

一款开源分布式数据库,主要用于存储JSON文档;能够纵向扩展至多个机器。RethinkDB看作开发者第一手、最主要的选择,特别是IoT开发者,用于提供feed实时数据。它完全革命化传统数据库架构,通过调用新的接入模型实时更新应用查询结果。提供灵活的查询语言,用于监控API,非常容易开始与学习。
提供很多优于MongoDB的好处:

  • 先进的查询语言,支持连表、子查询以及大规模并行分布式计算
  • 优雅与强大的操作与监控API,与查询语言集成,使得扩展RethinkDB极其简单
  • 简单美化管理UI,使可以在几个点击就分片与复制,提供在线文档与查询语言建议

特性:

  • 容错:如果主服务器失败,那么支持自动切换到新服务器
  • 便于增加节点:实时插拔节点,无需任何一秒宕机时间
  • 异步应用编程接口:支持异步查询,通过Ruby Tornado事件机器
  • 支持SSL接入,通过公网安全接入RethinkDB
  • 更多功能:支持多种数学操作符,例如:floorceilround

官网:https://rethinkdb.com/

SQLite

一款开源、嵌入式关系型数据库,用于给应用提供一种便捷方法无需开销管理数据。完全可移植、易用、紧凑、有效与可靠。
兼容ACID,实现大多数SQL标准,使用动态与弱类型SQL语法。SQLite引擎不像其他数据库是单独的进程;能够连接到静态或者动态应用。
特性:

  • 无需操作独立的服务进程或者系统,可以在无服务环境中操作
  • 无需任何系统管理,需要低配置机器搭建
  • 自包含,没有外部依赖关系
  • ANSI-C书写,提供简单易用API
  • 跨平台:兼容UNIXLINUXWindowsMAC-OS x等等
  • 事务完全ACID兼容,允许多进程安全访问
  • 支持SQL92中所有SQL查询
  • 代码完全测试与验证,没有错误,经常更新

官网:https://www.sqlite.org

Apache Cassandra

视为一款高扩展分布式开源数据库,用于多商用服务器检管理大量结构化数据。与其他开源数据库相比,从可用性、线性扩展性能、简单性与多数据库服务器间简单数据分发方面来说,提供很多额外优良的性能。
Facebook研发,首要的目的在于促进邮箱检索,在2008年开源。实现无失败“动态式复制模型”,增加更强大的“列族”数据模型。
特性:

  • 大量可扩展架构:无主设计,所有节点在相同层次,提供操作方便性,容易横向扩展
  • 无主架构:可以在任何节点上读写数据
  • 线性扩展性能:随着更多节点增加,Cassandra性能提升
  • 故障检测与恢复:失败节点容易恢复
  • 灵活与动态数据模型:支持快速读写数据类型
  • 数据保护:用提交日志设计与内置安全像备份与恢复机制保护数据
  • 可调数据一致性:支持分布式架构下强数据一致性
  • 多数据中心复制:提供特性在多数据中心间复制数据
  • 数据压缩:压缩高达80%数据,无需任何开销
  • 查询语言:提供类似SQL查询语言

官网:http://cassandra.apache.org

你可能感兴趣的:(物联网)