我正在研究一种能够保存天气数据的物联网解决方案。 关于如何设置后端,我已经搜索了几天了。 我将使用Azure IoT Hub来处理通信,但下一步就是问题。
我想将遥测存储到数据库中。这是我感到困惑的地方。 一些示例说我应该使用Azure BLOB存储或Azure表存储或Azure SQL。
经过几年的数据收集,我想开始创建数据报告。因此,存储需要善于处理大数据。
我遇到的下一个问题是将接收D2C并将其存储到数据库的工作者。所有Azure IoT示例都使用控制台应用程序,而有些则使用Azure Stream分析将事件移植到数据库。什么是最佳做法?它需要能够扩展并尝试使用最佳实践。
提前致谢!
答案 0 :(得分:7)
如果您选择IoT Hub来处理通信,您可以选择如何处理数据(确保IoT集线器是您的正确选择,如果您不需要双向通信,Azure Event Hub将会是一个更好的选择,在处理大数据时会更便宜。)
至于报告 - 它实际上取决于您的需求,我会避免任何复杂报告的blob /表存储,这些2更优化用于存储大量数据而不是用于进行复杂查询。
如果您想让自己的报告/查询,您可以选择Sql / DocumentDb。但请确保如果您选择NoSql解决方案,您将从无架构的架构中受益。
对于Paas解决方案,您可以选择Power BI - https://powerbi.microsoft.com/en-us/blog/outputting-real-time-stream-analytics-data-to-a-power-bi-dashboard/
免责声明 - 我已根据您希望使用Azure堆栈的假设回答了您的问题。
祝你好运答案 1 :(得分:1)
@KristerJohansson,根据您的描述,根据我的理解,它是一种物联网解决方案,数据采集器从带有传感器的某些设备接收天气数据并存储这些数据以供分析和使用。报告。我认为有一些关键基础需要被视为决定数据量的变量,例如天气数据列,数据格式,采样频率,设备数量等。
因此考虑可扩展性和根据我的经验,大数据作为参考,我认为最好的做法是使用IoTHub处理通信并使用Stream分析来检索&将数据从IoTHub存储到Blob存储。经过几年的数据收集,您可以使用Azure机器学习从blob存储中读取这些数据以进行分析和报告。
如有任何疑虑,请随时告诉我。
答案 2 :(得分:1)
Azure为您的问题添加了一个新的有趣功能。
现在可以将IoT消息直接路由到Azure存储。 https://azure.microsoft.com/en-us/blog/route-iot-device-messages-to-azure-storage-with-azure-iot-hub/
我还没有测试过,但文章看起来很有希望。
答案 3 :(得分:1)
您将在阅读 https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-endpoints
您还应该查看“时间序列见解”
https://azure.microsoft.com/en-us/services/time-series-insights/
这是我的粗略草图。时间序列要求从Active Directory生成令牌,但是设置很容易。
如上所示,
IOTHub支持多个端点。因此一端可以查看时间序列见解,而另一端可以访问任何数据库(例如CosmoDB)。
注意:时间序列只能存储400天的数据,以后会删除它。
关于报告-时间序列包含大量报告组件,并且非常快。另外,您可以使用c#等编程语言来访问它。
重要说明:在设计任何云架构师之前,请研究数据的“大小调整”因素。就像数据的频率和大小。基于此,我们可以选择Azure云中的资源。