gpt4 book ai didi

mysql - 存储来自 10000 个节点的遥测数据

转载 作者:可可西里 更新时间:2023-11-01 07:04:39 24 4
gpt4 key购买 nike

我需要存储每隔几分钟从 10000 多个节点(可能会增加)生成的遥测数据,每个节点都通过 Internet 将数据提供给服务器进行日志记录。我还需要从 Web 应用程序查询此数据。

我在决定最好的存储解决方案是什么时遇到了一些麻烦..

每个节点都有一个唯一的ID,每个变量包都会有一个时间戳。 (可能需要由服务器生成)。

遥测数据在同一个数据包中包含所有变量,因此从概念上讲,它可以很容易地存储在单个数据库表中,每个变量一列。序列号+时间戳足以作为 key 。每个遥测数据包的大小为 64 字节,包括设备 ID 和时间戳。所以每年大约 100Gb+。

我希望能够查询数据以获取跨时间范围的变量,并存储此数据的汇总报告以便绘制图表。

现在,如何最好地处理这个问题?我对使用 MySQL 非常熟悉,所以我倾向于这个。如果我要使用 MySQL,为每个设备 ID 设置一个单独的表是否有意义? - 这会使查询速度更快还是拥有 10000 个表会成为问题?

我不认为需要一次性查询所有设备的变量,但可能需要。或者我是否应该将所有内容都放在一个表中,如果它变得非常大,则使用 MySQL 集群?

或者有更好的解决方案吗?我一直在查看一些非关系数据库,但看不到任何完全符合要求或看起来非常成熟的东西。例如,MongoDB 每行会有相当多的大小开销,而且我不知道与 MySQL 相比,它在大时间范围内查询单个变量的值时效率如何。 MySQL 也已经存在了一段时间并且很健壮。

我还希望能够轻松复制和备份数据。

任何想法或如果有人做过与您输入的类似的事情,我们将不胜感激!

最佳答案

你看过time-series databases了吗? ?它们是为您描述的用例而设计的,并且由于内置数据折叠和压缩,实际上最终可能会在空间需求方面更加高效。

我建议研究使用 HBase 或 Cassandra 进行原始存储的实现,因为它可以为您提供经过验证的异步复制功能和吞吐量。

HBase 时序数据库:

关于mysql - 存储来自 10000 个节点的遥测数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10524416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com