10

我正在研究一种可以保存天气数据的物联网解决方案。我已经搜索了几天关于如何设置后端。我打算使用 Azure IoT Hub 来处理通信,但下一步就是问题所在。

我想将遥测数据存储到数据库中。这就是我感到困惑的地方。一些示例表明我应该使用 Azure BLOB 存储或 Azure 表存储或 Azure SQL。

经过几年的数据收集,我想开始创建数据报告。所以存储需要擅长处理大数据。

我遇到的下一个问题是将接收 D2C 并将其存储到数据库的工作人员。所有 Azure IoT 示例都使用控制台应用程序,有些使用 Azure 流分析只是为了将事件移植到数据库。最佳做法是什么?它需要能够扩展并尝试使用最佳实践。

提前致谢!

4

4 回答 4

8

如果您选择 IoT 中心来处理通信,那么您在处理数据方面有几个选择(确保 IoT 中心是您的正确选择,如果您不需要双向通信,Azure 事件中心可能是更好的选择,处理大数据时要便宜得多)。

  • 流分析 - 让您将传入数据输出到 SQL 数据库、BLOB、事件中心、表存储、服务总线队列和主题、文档数据库、Power Bi 和 DataLake 存储。在此选项中,您不必管理自己的工作人员来处理数据。
  • EventProcessorHost - 在这里您必须编写自己的获取数据和存储数据的实现。此选项将使您可以灵活地将数据存储在所需的每个存储中,但您必须管理 EPH 的托管。Azure Worker Rule 是托管和缩放的不错选择。
  • Storm (HD Insights) - 您可以使用 Apache Storm 从 IoT Hub 读取数据,它还将为您提供比 Stream Analytics 提供的更广泛的实时计算选项。使用 Storm 读取数据后,您还可以选择将其存储在所需的每个存储中。请注意,Azure 上的 Storm 非常昂贵,并且可能对您的应用程序来说太过分了。

至于报告 - 这真的取决于您的需求,我会避免任何复杂报告的 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 堆栈的问题。

祝你好运

于 2016-07-31T08:49:34.417 回答
2

您将阅读 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 生成令牌,但它很容易设置。

在此处输入图像描述

如上图所示,

  • 设备将向 IoT 中心发送数据 [您甚至可以在此处使用设备配置服务]
  • IOTHub 支持多个端点。因此一端可以访问时间序列洞察,另一端可以访问任何数据库,例如 CosmoDB。

    注意:时间序列只能存储 400 天的数据,稍后将其删除。

  • 关于报告 - 时间序列具有广泛的报告组件,而且速度非常快。此外,您可以使用 c# 等编程语言访问它。

重要提示:在设计任何云架构师之前,请处理数据的“大小”因素。比如,数据的频率和大小。在此基础上,我们可以选择 azure cloud 中的资源。

请阅读此 http://download.microsoft.com/download/A/4/D/A4DAD253-BC21-41D3-B9D9-87D2AE6F0719/Microsoft_Azure_IoT_Reference_Architecture.pdf

于 2018-11-14T09:28:45.107 回答
1

Azure 为您的问题添加了一个有趣的新功能。

现在可以将 IoT 消息直接路由到 Azure 存储。 https://azure.microsoft.com/en-us/blog/route-iot-device-messages-to-azure-storage-with-azure-iot-hub/

我还没有测试过,但这篇文章看起来很有希望。

于 2017-10-03T06:52:28.527 回答
1

@KristerJohansson,根据您的描述,根据我的理解,这是一种物联网解决方案,数据收集器从一些带有传感器的设备接收天气数据并存储这些数据以进行分析和报告。我认为有一些关键基础需要考虑作为决定数据量的变量,例如天气数据列、数据格式、采样频率、设备数量等。

因此,考虑到可扩展性和大数据,根据我的经验,作为参考,我认为最佳实践是使用 IoTHub 处理通信并使用流分析从 IoTHub 检索和存储数据到 Blob 存储。经过几年的数据收集,您可以使用 Azure 机器学习从 blob 存储中读取这些数据以进行分析和报告。

任何问题,请随时告诉我。

于 2016-08-01T07:45:54.853 回答