哪个后端数据库适合物联网实施

物联网 传感器 系统架构 数据传输
2021-06-12 22:51:11

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

在此处输入图片说明

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

什么是最适合摄取这么多数据并进行分析的数据库?

对于适合物联网的数据库,是否有任何经过验证的基准?

请提出您的想法和建议。

4个回答

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

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

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

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

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 上发布的数字,要么是在 Twitter 上声称的数字。如果您觉得任何数字有误,请告诉我,我会更新它们。