我有一个位于IoT空间的Web应用程序。我们有一组称为“数据运行”的数据,它们大约是10万个数据点,每个数据点都由时间戳和值组成。这些数据运行在Azure中托管的Web门户中查看。折线图中显示了数据运行(高图)。当前,所有时间序列数据都存储在Azure托管的SQL Server中。我们发现从数据库中检索的速度越来越慢,因为时间序列表中有几亿条记录。
我决定研究Azure中的CosmosDB,并能够将数据上传到文档中,并使用适用于CosmosDB的.NET sdk检索数据。问题是我继续每分钟将允许的请求移交给CosmosDB。在任何给定时间,我们可能都会有一百多个用户查看这些数据运行,这意味着每个用户都会向CosmosDB发送请求。我们还允许用户使用图表上的UI删除数据点,这意味着将文档更新为CosmosDB。我想认为我们的应用程序规模和用户数量都很小,但是我完全迷失了如何在不增加吞吐量的情况下完成这项工作,并每月为CosmosDB支付1000美元。有没有人使用CosmosDB来存储需要不断进行检索和更新的数据?也许我正在尝试将CosmosDB用于通常不设计的功能?任何建议将不胜感激!
答案 0 :(得分:0)
CosmosDB速度非常快,如果您不小心的话会变得非常昂贵。您可能必须重新考虑如何提出请求,然后对它们进行批处理或使用某种类型的缓存来保存更改,直到您要提交为止。