此内容是《基本指南》的一部分: 企业物联网项目成功的全面指南
开始 通过我们的介绍内容让您自己加快速度。

4 .要求选择最好的企业物联网数据库

物联网数据库与传统数据库有何不同?了解数据库需要什么标准来应对物联网技术带来的挑战。

物联网给数据库管理系统带来了一系列新的挑战,包括实时获取数据、在事件流入时进行处理以及保护比以前在企业应用中遇到的更大容量的物联网设备和数据。

与此同时,物联网对数据质量和完整性的限制更少。例如,从车队中收集数据的应用程序可以容忍数分钟的数据丢失,但仍然能够监控车辆的整体功能能力。尽管物联网传感器能够快速生成数据,但它们不需要传统企业业务应用中出现的相同类型的事务。这减少了对原子性、一致性、隔离性和持久性事务的需求。

为了找到合适的物联网数据库进行适当的处理物联网数据及其需求,组织必须抛开为传统业务操作设计数据库应用程序的先入之见。

确定IOT数据库要求

在选择数据库时,组织必须牢记四个主要考虑事项:

  1. 可扩展性。物联网应用的数据库必须是可伸缩的。理想情况下,物联网数据库是线性可扩展的,因此在10节点集群中增加一台服务器可以增加10%的吞吐量。物联网数据库通常是分布式的,除非应用程序只收集少量不会大幅增长的数据。分布式数据库可以在普通硬件上运行,并通过添加新服务器而不是用更大的服务器进行扩展。分布式数据库尤其适合于此IaaS因为根据需要从数据库集群中添加和删除服务器相对容易。
    分布式数据库与集中式数据库
    分布式数据库和集中式数据库有五个主要区别。
  2. 容错。物联网数据库还应该具有容错性和高可用性。如果数据库集群中的一个节点宕机,它应该仍然能够接受读和写请求。分布式数据库复制数据并将其写入多个服务器。如果存储特定数据集的一个服务器失败,那么存储数据集副本的另一个服务器可以响应读取查询。可以用几种方式处理写请求。如果通常接受写请求的服务器宕机,服务器中的另一个节点可以接受写请求,并在目标服务器恢复在线时将其转发给目标服务器。
  3. 高可用性。确保高可用性关于使用Apache Kafka或Amazon Kinesis等分布式消息传递系统来写入,该系统是基于Apache Kafka。这些系统可以接受高卷的写入,并在发布和订阅系统中持久地存储它们。如果服务器已关闭或者写入的写入量太高,对于分布式数据库实时摄取,则可以存储在消息传递系统中,直到数据库处理数据的积压或附加节点被添加到数据库群集。
  4. 灵活性。物联网数据库应根据应用程序的要求灵活。NoSQL数据库——特别是键值、文档和列族数据库——可以轻松适应不同的数据类型和结构,而不需要预定义的固定模式。当一个组织有多个数据类型并且这些数据类型可能会随着时间的推移而变化时,NoSQL数据库是很好的选择。在其他情况下,收集固定数据集的应用程序(例如关于天气条件的数据)可能在关系数据库模型上工作得更好。内存中的SQL数据库,如MemSQL或PostgreSQL,提供了这个选项。

是一个妥善合适的管理或内部IoT数据库吗?

组织可以将数据库保留在内部,以便更好地控制设备、软件、安全和数据。内部意味着组织可以根据当前的需要改变他们的设备,而无需等待服务提供商做出改变。各组织负责自己的IT专业人员在现场维护和妥善保护物联网数据库。与管理数据库相比,正确的IT专业人员、设备和软件加起来的总成本更高。

为了找到合适的物联网数据库来正确处理物联网数据及其需求,组织必须抛开为传统业务操作设计数据库应用程序的先入之见。

数据库 - AS-A-Service比购买设备成本更低;内部管理员不需要维护数据库,服务通常至少提供基本的安全性。服务提供商可能提供全天候的支持。安全性也是数据库服务的一个缺点,因为它增加了攻击面。组织在托管物联网数据库中的选择仅限于该服务提供的内容。

内部物联网数据库需要考虑

对于管理自己数据库的组织来说,他们有很多选择。DataStax Cassandra是一个高度可伸缩的分布式数据库,支持灵活的大表模式和快速写操作,并可扩展到大容量数据。它是在开源NoSQL数据库Apache Cassandra上构建的。Riak物联网是一个分布式的、高度可扩展的键值数据存储,集成了Apache Spark,一个具有实时分析的大数据平台。Cassandra还集成了Spark和Hadoop MapReduce等大数据分析平台。

开源时间序列数据库OpenTSDB可以运行在Hadoop和HBase上。该数据库由命令行接口和时间序列守护进程(Time Series Daemon, TSD)组成。tsd负责处理所有数据库请求,它们彼此独立运行。即使tsd使用HBase存储时间序列数据,TSD用户几乎没有与HBase本身接触。

MemSQL是一个为实时数据流调优的关系数据库。使用MemSQL,流数据、事务和历史数据可以保存在同一个数据库中。该数据库还能够很好地与开箱即用的地理空间数据协同工作,这可能对基于位置的物联网应用非常有用。MemSQL支持与数据仓库产品集成,包括Hadoop分布式文件系统和Apache Spark。

如何在托管IOT数据库选项之间进行选择

企业和开发人员有许多托管数据库不同优势的服务可供选择。他们应该考虑使用AWS的产品,如Kinesis和DynamoDB、Azure Cosmos DB、MongoDB或谷歌Firebase。组织可以使用Kinesis实时捕获数据并将数据发送到NoSQL文档数据库DynamoDB, DynamoDB集成了Elastic MapReduce服务,提供基于Hadoop和spark的分析服务。

如果组织确实选择使用数据库 - AS-Service提供商,他们应该仔细考虑成本结构。AWS Kinesis Streams Pricing主要基于碎片时间;分片小时每秒1 MB的输入容量和每秒2 MB的输出。客户每小时支付0.015美元。至于数据本身,Kinesis Streams使用Put Payload单元来计算总使用情况。每个单元包括一个和25kb的数据,所以例如,将10kb记录计费为一个单元,并且将30kb记录计费为两个。每1,000,000单位收取0.014美元的客户。

使用AWS DynamoDB,每月的前25gb是免费的。之后每GB的费用是每月0.25美元。至于操作,写吞吐量每10个单位的写容量每小时收取0.0065美元。对于每50个单元,读取吞吐量以相同的速率收费。请注意,云中的数据消耗将超过数据的原始大小,而且价格取决于地区。

Azure Cosmos DB基于请求单元的价格 - 例如,读取1 kB项的成本 - 是否读取,写或查询数据库操作。从单区域账户提供100个请求单位的吞吐量售价每小时0.008美元。

深入挖掘物联网数据管理

搜索CIO.
搜索安全
搜索网络
搜索数据中心
搜索数据管理
关闭