我必须为我的客户提供物联网服务。 MQTT,Kafka和Rest Services组件将用于将数据从设备提取到数据库。我需要对后端的数据进行一些分析。数据大小为135字节/设备和6000设备/秒。我在这里共享了体系结构以了解需求和组件。



我研究了数据存储(MongoDB,Postgresql(TimescaleDB),Redis,Neo4j,Cassandra) ),每个供应商都证明他们的数据库适合IoT用例。对于使用经过验证的/最可靠/可扩展的IoT数据库,我感到困惑。

是否有适用于IoT的合适数据库的可靠基准?

请提出您的想法和建议。

评论

我最近将ElasticSearch用于类似的用例。但是我不能说为什么它比其他人更好,这部分主要是基于意见的。我确实使用Kafka将传感器连接到DB。有不错的库支持使用Elasticsearch对Kafka进行流处理

“物联网用例”范围太广,无法对实施进行排名。每个人都有其优点和缺点。

不是我的领域,但是如果任何现代数据库看起来不合适,我都会感到惊讶。使用您熟悉的工具或最精巧的工具。

#1 楼

物联网几乎是时间序列数据。这里有一些TSDB:InfluxDB,OpenTSDB,GridDB等。它们都具有社区/ oss版本,因此您可以查看它是否适合您的需求。 InfluxDB是一种流行的,但请注意,群集仅适用于付费版本。 OpenTSD是纯OSS,GridDB表示它是面向IoT的,并且比InfluxDB更快。根据您的需求,也许您想寻找一种摄取速度快的食物。

#2 楼

您只能使用NoSQL数据库,因为任何SQL数据库都不允许直接在服务器上使用6K TPS,也不能使用已经专门从事此类操作的任何SaaS云服务或平台-例如通过MQTT / Kafka接收远程信息处理数据,将其拆分并存储给这6000个设备,并提供简单的REST API来访问遥测数据。像flespi或类似的东西。

评论


明白了,谢谢。您能告诉我哪种NoSQL数据库最适合我的用例?

–穆里什·汗(Mourish Khan)
18年3月20日在6:10

这实际上取决于您的经验和运行时环境。对于AWS / GoogleCloud,这将是一种选择,对于本地安装,我会建议LevelDB或其任何竞争对手,只需在Google上搜索levelDB,您就会看到它们的完整列表。在任何变体中,您都需要在Web应用程序和数据库之间实现中间API,因此它还取决于您为此使用的后端类型。当您使用mqtt填充数据并从Web访问数据和历史记录时,正是本文所述的情况。

–shal
18 Mar 20 '18在6:42

顺便说一句,我在过去15年中尝试了许多这种NoSQL数据库。从Berkeley DB的早期开始。最后,当您需要应用程序中的全部功能和性能并试图从数据库的最大IOP和吞吐量中压缩时,我别无选择,只能开发自己的数据库引擎,专门针对远程信息处理(IoT)用例和需求。但这是我的经验+)

–shal
18 Mar 20 '18在6:48

“ 6K TPS”? 6TB /秒?

–莫格说要恢复莫妮卡
19年4月29日在7:12

6.000事务/秒

–shal
19年4月30日在8:22

#3 楼

Timescaledb是为时间序列数据集定制的postgres扩展,效果非常好。您将获得通常的关系数据库功能,SQL的使用,可靠性,索引,可伸缩性。

#4 楼

问题很广泛,无法给出准确答案,但是这些链接可以帮助您:

http://outlyer.com/blog/top10-open-source-time-series-databases/


跟进基准测试:http://outlyer.com/blog/time-series-database-benchmarks/

其他比较:
https: //gist.github.com/sacreman/00a85cf09251147175241d334aafa798


我设置了一些规则来尝试限制范围,否则此博客
将永远不会结束。

仅比较了免费和开放源时间序列数据库及其功能
。因此有人问“您是否尝试过Kdb +和
Informix?”答案是否定的。但是,它们可能很棒。

该列表将仅包含将其自己的营销材料中按时间序列分类的
,或由某人写在博客中的关于
的数据库。很酷的公司,因为他们正在使用这些时间
系列数据。

完成的工作是阅读官方文档,阅读
StackOverflow,仔细阅读Github问题和代码,通常
一起破解信息。考虑到这一点,有些事实可能是不正确的。

如果有人发现任何事实上的错误,请告诉我,我会
更新博客。

/>基准测试是基于市场营销主张和估算。为什么?
因为基准测试是一项很大的工作,并且容易出错。
您总是会得到“您应该调整此特殊的未记录的设置
”。列出的数字对大多数数据库都是非常有利的。
它们是过去一段时间在Twitter上发布的博客或声明的数字。如果您认为任何数字有误,请通知我
,我会进行更新。


#5 楼

调查Hyprcubd。全面披露-我是联合创始人之一。它具有许多使我们与众不同的功能:

无服务器-无法配置,只能创建表并进行操作
开箱即用的高可用性
高耐用性(11 9s)
高摄入量-无需Kafka在我们面前
SQL接口-聚合和函数