【发布时间】:2021-12-26 21:56:32
【问题描述】:
我想要一些关于最佳选择的建议,因为我在基于 Web 的 API 上检索数据的速度很慢(超过 30 秒)。
我有多个 IoT 传感器(超过 100 个),并且随着 TX 将传感器数据更新到我的 IoT 中心,这些传感器数据也会不断增长,然后将其保存到数据库或存储中。
以前我将所有传感器数据保存到 SQL 表中,但随着数据的增长,我发现它变得非常慢,因此我使用了 Azure 表存储。每个 Sensor 都有自己独立的表存储,分区键是月份和年份(例如 202012),行键是时间戳(例如 0002518033824243332546)。
事实证明这要快得多,因为传感器数据量减少了,因为每个传感器都有自己的表,但是随着表的增长对于任何特定的传感器,我需要在更长的时间内检索数据(1月)这再次变得非常缓慢。每个传感器 TX 每 1 分钟更新一次,因此每天产生 1400 条记录,1 个月大约有 44640 条记录。
有没有更好的解决方案来满足我的要求?
为每个传感器创建一个单独的 SQL 表是个好主意吗? SQL 存储中可以有多少张表?
谢谢
【问题讨论】:
-
您真的需要历史报告的所有数据吗?如果不是,如何存储汇总数据以进行更长时间的报告?
-
如果不知道您如何使用所有传感器数据,就不可能回答您的问题。一个传感器一个传感器?一个小时一个小时?搜索异常值?历史图表?要不然是啥?请edit您的问题或询问其他问题。通常,这是一种糟糕的数据库设计,需要在应用程序扩展时创建更多的表。正确索引的大表比许多表工作得更好。
-
是的,样本需要用于平均目的,但首先我需要先检索数据。一旦我们得到原始数据,我们就会在一小时内对其进行平均。这是每个传感器完成的
标签: sql azure azure-sql-database azure-table-storage