最适合物联网的开源数据库
the Internet of Things (IoT) can be regarded as a network in which various things are connected to each other through a common platform. Just visualise a scenario in which every device at home and the workplace is connected, and a world where the air-conditioning in a room automatically lowers its temperature when the outside temperature rises up, when the number of people in any public gathering is easily known, and when one’s health parameters can be monitored on a daily basis. This is the possible impact of the Internet of Things.
物联网(IoT)可以被看作是通过一个通用平台将各种事物相互连接起来的网络。只需将家中和工作场所的所有设备连接起来的场景以及室外空气温度升高时室内空调自动降温的环境中观察,任何公众聚会中的人数都很容易知晓,并且可以每天监测一个人的健康参数。这是物联网可能带来的影响。
The current state of the Internet of Things is very fragmented. There are different companies and organisations that are building their own platforms for either their customers or their individual needs. But a common platform on which all the devices, irrespective of their company, can be connected with each other via a user friendly interface, is still missing.
物联网的现状非常分散。有不同的公司和组织正在为其客户或其个人需求构建自己的平台。但是一个通用的平台,所有的设备,无论他们的公司,都可以通过用户友好的界面相互连接,但仍然缺失。
IoT devices are estimated to number in the trillions in the coming five years.
Is a database necessary for IoT?
估计未来五年物联网设备的数量将达到数万亿。
数据库是物联网所必需的吗?
The Internet of Things creates many tedious challenges, especially in the field of database management systems, like integrating tons of voluminous data in real-time, processing events as they stream and dealing with the security of data. For instance, IoT based traffic sensors applied in smart cities would produce huge amounts of data on traffic in real-time. Databases have a very important role to play in handling IoT data adequately. Therefore, along with a proper platform, the right database is equally important. As IoT operates across a diverse environment in the world, it becomes very challenging to choose an adequate database.
物联网产生了许多乏味的挑战,特别是在数据库管理系统领域,例如实时集成大量的大量数据,在处理数据流时处理事件以及处理数据安全性等方面。例如,智能城市中应用的基于物联网的交通传感器将实时生成大量的交通数据。数据库在充分处理物联网数据方面发挥着非常重要的作用。因此,随着一个适当的平台,正确的数据库同样重要。由于物联网在全球多元化的环境中运作,选择适当的数据库变得非常具有挑战性。
The factors that should be considered before choosing a database for IoT applications are:
1) Size, scale and indexing
2) Effectiveness while handling a huge amount of data
3) User-friendly schema
4) Portability
5) Query languages
6) Process modelling and transactions
7) Heterogeneity and integration
8) Time series aggregation
9) Archiving
10) Security and cost
在为物联网应用选择数据库之前应考虑的因素有:
1)尺寸,比例和索引
2)处理大量数据时的有效性
3)用户友好的模式
4)便携性
5)查询语言
6)流程建模和交易
7)异质性和一体化
8)时间序列聚合
9)存档
10)安全性和成本
The types of data in the Internet of Things are:
1) RFID: Radio frequency identification
2) Addresses/unique identifiers
3) Descriptive data for processes, systems and objects
4) Pervasive environmental data and positional data
5) Sensor data: Multi-dimensional time series data
6) Historical data
7) Physics models: Models that are templates for reality
8) State of actuators and command data for control
物联网中的数据类型有:
1)RFID:射频识别
2)地址/唯一标识符
3)过程,系统和对象的描述性数据
4)普遍的环境数据和位置数据
5)传感器数据:多维时间序列数据
6)历史数据
7)物理模型:模型是现实的模板
8)用于控制的执行器和命令数据的状态
Databases suited for the Internet of Things
InfluxDB: InfluxDB was first released in 2013, and is one of the recent databases. The Go programming language was used in developing this database, which is totally based on LevelDB, a key-value database. InfluxDB is a time series database, which is used to optimise and handle time series data. Time series data was first released by Kdb in 2000, but InfluxDB became popular with the rise in the Internet of Things as it gave movement to NoSQL, NewSQL and a vast amount of increasing data.
适用于物联网的数据库
InfluxDB:InfluxDB于2013年首次发布,是最近的数据库之一。 Go编程语言用于开发此数据库,该数据库完全基于LevelDB,一个键值数据库。 InfluxDB是一个时间序列数据库,用于优化和处理时间序列数据。 2000年Kdb首次发布时间序列数据,但随着物联网的兴起,InfluxDB开始流行起来,因为它推动了NoSQL,NewSQL和大量不断增加的数据。
The advantages of using InfluxDB for IoT data include:
1) Allows indexing of series
2) It has an SQL-like query language
3) It also provides the built-in linear interpolation for missing data
4) It supports automatic data down sampling
5) Supports continuous queries to compute aggregates
使用InfluxDB进行物联网数据的优势包括:
1)允许编制索引
2)它有一个类似于SQL的查询语言
3)它还提供了缺失数据的内置线性插值
4)它支持自动数据下采样
5)支持连续查询来计算聚合
CrateDB: CrateDB is a distributed SQL database management system. Being open source and written in Java, it includes components from Facebook Presto, Apache Lucene, Elasticsearch and Netty—thus it is designed for high scalability. CrateDB was made for putting IoT data to work. From the industrial Internet and connected cars to wearables, CrateDB is the database of choice for innovators of new IoT solutions.
CrateDB:CrateDB是一个分布式SQL数据库管理系统。作为开源代码并以Java编写,它包含了来自Facebook Presto,Apache Lucene,Elasticsearch和Netty的组件,因此它的设计具有很高的可扩展性。 CrateDB是为了使物联网数据正常工作而开发的。从工业互联网和连接汽车到可穿戴设备,CrateDB是新型物联网解决方案创新者的首选数据库。
The advantages of using CrateDB for IoT data include:
1) Millions of data points per second: Fast, linearly scalable data ingestion
2) Real-time queries: Columnar indices and field caches provide in-memory SQL performance
3) Dynamic schema: Add and query new sensor data structures on-the-fly
4) IoT analytics: Fast, robust time series, AI, geospatial, text search, joins, aggregations
5) Always on: Built-in data replication and cluster rebalancing ensure non-stop performance
6) ANSI SQL: No lock-in, and easy for any developer to use and integrate
7) Built-in MQTT broker: Direct device-to-database integration
8) IoT ecosystem: Works with Kafka, Grafana, NodeRED, and other popular IoT stack software
9) Runs anywhere for efficient processing at the edge or in the cloud
使用CrateDB进行物联网数据的优势包括:
1)每秒数百万个数据点:快速,可线性扩展的数据摄取
2)实时查询:列式索引和字段缓存提供内存中的SQL性能
3)动态模式:即时添加和查询新的传感器数据结构
4)物联网分析:快速,强大的时间序列,AI,地理空间,文本搜索,连接,聚合
5)始终开启:内置数据复制和群集重新平衡确保不间断的性能
6)ANSI SQL:无需锁定,便于任何开发人员使用和集成
7)内置MQTT代理:直接从设备到数据库集成
8)物联网生态系统:适用于Kafka,Grafana,NodeRED和其他流行的物联网堆栈软件
9)在任何地方运行,以便在边缘或云中进行高效处理
MongoDB: MongoDB is a free and open source cross-platform document-oriented database program. It is categorised as a NoSQL database program. JSON-like documents with schemas are used by MongoDB. It is preferred by organisations for IoT, as it lets them store data from any context, which can be analysed in real-time, and also to change the schema as they go along.
MongoDB:MongoDB是一个免费且开放源代码的跨平台面向文档的数据库程序。它被分类为NoSQL数据库程序。 MongoDB使用带模式的类似JSON的文档。组织倾向于物联网,因为它允许他们存储来自任何上下文的数据,这些数据可以实时分析,也可以在架构随时更改。
The advantages of using MongoDB for IoT data include:
1) Highly powerful database
2) Document-oriented
3) Has uses for general purposes
4) Being a NoSQL database, it uses JSON-like documents with schemas
使用MongoDB进行物联网数据的优势包括:
1)高度强大的数据库
2)面向文档
3)用于一般目的
4)作为NoSQL数据库,它使用类似JSON的文档和模式
RethinkDB: In the open source database list, RethinkDB stands at the top. It is a scalable JSON database for the real-time Web, which is built from the ground up. RethinkDB introduces an exciting new access model by transposing the traditional database architecture. It can continuously push updated query results to applications in real-time, when a command is given to it by the developer. This is a feature the developers call changefeeds. RethinkDB serves as a database, real-time repository and message broker of the system state, which is allowed by changefeed. Its real-time push architecture dramatically reduces the time and effort necessary to build scalable real-time apps.
RethinkDB:在开源数据库列表中,RethinkDB位于顶部。它是用于实时Web的可扩展JSON数据库,它是从头开始构建的。 RethinkDB通过转换传统的数据库体系结构引入了令人兴奋的新访问模式。当开发人员向其发送命令时,它可以不断将更新后的查询结果推送至应用程序。这是开发人员称为换卡的功能。 RethinkDB作为系统状态的数据库,实时存储库和消息代理,这是更改进程允许的。其实时推送体系结构大大减少了构建可扩展实时应用程序所需的时间和精力。
将RethinkDB用于物联网传感器数据的优点包括:
The advantages of using RethinkDB for IoT sensor data include:
1) RethinkDB has an adaptable query language for examining APIs, which is very easy to set up and learn.
2) Commands are automatically shifted to a new server if any primary server fails.
3) Plug-and-play function of nodes in real-time, without any downtime for even a single second, helps in the easy addition of nodes.
4) Offers asynchronous queries via Eventmachine in Ruby and Tornado, which gives an asynchronous application programming interface.
5) It offers SSL access just to have secured access to RethinkDB via public Internet.
6) Floor, ceil and round are various mathematical operators that are offered by RethinkDB.
1)RethinkDB具有适用于检查API的查询语言,这非常容易设置和学习。
2)如果任何主服务器发生故障,命令会自动转移到新服务器。
3)实时即插即用的节点功能,即使是一秒钟也没有停机时间,有助于节点的轻松添加。
4)通过Ruby和Tornado中的Eventmachine提供异步查询,从而提供异步应用程序编程接口。
5)它提供SSL访问只是为了通过公共互联网安全地访问RethinkDB。
6)Floor,Ceil和Round是由RethinkDB提供的各种数学运算符。
SQLite: SQLite Database Engine is a process library that provides a serverless (self-contained) transactional SQL database engine. It has had a major impact on game and mobile application development due to its portability and
small footprint.
SQLite works appropriately with the devices that do not require any human support, as the database requires no administrative permissions. It is a good fit for use in cell phones, set-top boxes, televisions, game consoles, cameras, watches, kitchen appliances, thermostats, automobiles, machine tools, air planes, remote sensors, drones, medical devices and robots, as well as in IoT.
Client/server database engines are designed to live inside a data centre at the core of the network. SQLite works there too, but SQLite also thrives at the edge of the network, fending for itself while providing fast and reliable data services to applications that would otherwise have dodgy connectivity.
SQLite:SQLite数据库引擎是一个提供无服务器(自包含)事务性SQL数据库引擎的流程库。由于可移植性和可移植性,它对游戏和移动应用程序的开发产生了重大影响
占地面积小。
SQLite适用于不需要任何人力支持的设备,因为数据库不需要管理权限。它非常适合用于手机,机顶盒,电视机,游戏机,相机,手表,厨房电器,恒温器,汽车,机床,飞机,遥感器,无人机,医疗设备和机器人等。如在物联网中。
客户端/服务器数据库引擎旨在位于网络核心的数据中心内。 SQLite也可以在那里工作,但SQLite也在网络边缘蓬勃发展,为自己提供帮助,同时为应用程序提供快速和可靠的数据服务,否则这些应用程序会存在不可靠的连接。
The advantages of using SQLite for IoT data include:
1) Offers a small memory footprint
2) It is authentic
3) No setting up required prior to use
4) Has no dependencies
使用SQLite进行物联网数据的优势包括:
1)提供小内存占用
2)它是真实的
3)使用前不需要设置
4)没有依赖关系
Apache Cassandra: Apache Cassandra is a free and open source distributed NoSQL database management system, which was initially released in 2008. It was intended to handle huge amounts of data through many commodity servers, providing high availability with no single point of failure.
In IoT, the generation, tracking and sharing of data through a variety of networks is carried out on an immense scale due to the massive number of connected devices. Cassandra is excellent at utilising lots of time series data that comes directly from devices, users, sensors, and similar mechanisms that subsist in diverse geographic locations.
Apache Cassandra:Apache Cassandra是一个免费的开源分布式NoSQL数据库管理系统,最初于2008年发布。它旨在通过许多商品服务器处理大量数据,提供高可用性,无单点故障。
在物联网中,由于大量连接的设备,通过各种网络生成,跟踪和共享数据的规模非常巨大。 Cassandra非常擅长利用大量时间序列数据,这些数据直接来自设备,用户,传感器以及存在于不同地理位置的类似机制。
The advantages of using Apache Cassandra for IoT data include:
1) Fault tolerant
2) Demonstrates high performance
3) Decentralised: Every node in the cluster is identical
4) Scalable
5) Durable
6) Ensures you’re in control: Each update has a choice of synchronous and asynchronous replication
7) Elastic: Both read and write execute in real-time, thus there is no downtime for any application
8) Professionally supported: It reinforces contracts and services that are available from third parties.
使用Apache Cassandra获得物联网数据的优势包括:
1)容错
2)演示高性能
3)分散化:集群中的每个节点都是相同的
4)可扩展
5)耐用
6)确保您处于控制之下:每个更新都可以选择同步和异步复制
7)弹性:读取和写入都是实时执行的,因此任何应用程序都没有停机时间
8)专业支持:它强化了第三方提供的合同和服务。