我需要创建高度可扩展的解决方案——数千个站点中的现场设备将数据实时传送到后端系统,而 SQL Azure 在添加 sql 数据库和应用程序服务器方面似乎非常适合。
每个现场设备每秒有效地发送 400 个传感器值 - 每天大约两个小时,而所有其他时间每 5 分钟发送 400 个传感器值。此外,当该现场设备发生错误时,它还会发送所有 400 个传感器的最后一分钟数据(400 * 60 个读数)——当出现任何问题时会导致大量数据。
我真的很想设计系统,使独立的现场设备及其存储的数据不会影响其他设备。允许每个现场设备不影响其他现场设备的性能。
我开始设计时考虑使用单个数据库来保存所有设备的数据 - 但是在模拟多个站点设备时已经开始出现死锁。因此,我正在转向多数据库解决方案。主数据库保存所有设备的查找表 - 将连接字符串返回到真实数据库
在项目的这个阶段,最重要的是我能够将这些数据实时传递回在 Web 浏览器中运行的用户界面——每秒更新它们的屏幕。
在项目的未来阶段,有必要开始跨多个设备聚合数据,显示统计数据,例如区域 Y 中传感器 X 的总和。我可以看到这对于多数据库方法来说很难做到。
所以会重视任何建议,例如
您认为使用 Sql Azure 托管潜在的 1000 个数据库并使用此主数据库间接指向真实数据库是否明智?
从应用程序到数据库的连接是否会出现问题 - 例如连接池问题?
我将如何从 Sql Azure 中的所有这些不同数据库中聚合数据。
会对您的所有评论感兴趣。问候,克里斯。