我正在研究一种能够保存天气数据的物联网解决方案.关于如何设置后端,我已经搜索了几天了.我将使用Azure IoT Hub来处理通信,但下一步是问题.
我想将遥测存储到数据库中.这是我感到困惑的地方.一些示例说我应该使用Azure BLOB存储或Azure表存储或Azure SQL.
经过几年的数据收集,我想开始创建数据报告.因此存储需要善于处理大数据.
我坚持的下一个问题是将接收D2C并将其存储到数据库的工作者.所有Azure IoT示例都使用控制台应用程序,而有些则使用Azure Stream分析将事件移植到数据库.什么是最佳做法?它需要能够扩展并尝试使用最佳实践.
提前致谢!
如果您选择IoT Hub来处理通信,您可以选择如何处理数据(确保IoT集线器是您的正确选择,如果您不需要双向通信,Azure Event Hub将是更好的选择,处理大数据时便宜很多).
流分析 - 允许您将传入的数据输出到SQL数据库,BLOB,事件中心,表存储,服务总线队列和主题,文档数据库,Power Bi和DataLake存储.在此选项中,您不必管理自己的工作人员来处理数据.
EventProcessorHost - 在这里,您必须编写自己的获取数据并存储它的实现.此选项将使您可以灵活地将数据存储在所需的每个存储中,但您必须管理EPH的托管.Azure Worker Rule是托管和扩展的不错选择.
Storm(HD Insights) - 您可以使用Apache风暴来从IoT Hub读取数据,它还将为您提供比Stream Analytics提供的更广泛的实时计算选项.使用Storm读取数据后,您还可以选择将其存储在所需的每个存储中.请注意,Azure上的风暴非常昂贵,可能对您的应用程序来说太过分了.
至于报告 - 它实际上取决于您的需求,我会避免任何复杂报告的blob /表存储,这两个更优化用于存储大量数据而不是用于进行复杂查询.
如果您想让自己的报告/查询,您可以选择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堆栈的假设回答了您的问题.
祝好运