【问题标题】:Azure IoT Hub - Save telemetry best practiceAzure IoT 中心 - 保存遥测最佳实践
【发布时间】:2016-12-03 22:52:25
【问题描述】:

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

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

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

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

提前致谢!

【问题讨论】:

    标签: azure-blob-storage azure-table-storage azure-eventhub azure-iot-hub


    【解决方案1】:

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

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

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

    祝你好运

    【讨论】:

      【解决方案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

      【讨论】:

        【解决方案3】:

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

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

        如有任何疑问,请随时告诉我。

        【讨论】:

        • 是的,没错,数据很简单但是很大。我设法让 Azure 流分析将数据推送到 BLOB 存储。下一个问题是如何对 BLOB 存储进行查询以获得像今天这样的 AVG 是什么? DeviceId, Timestamp, value
        • 流分析对于这个目的来说太昂贵了 IMO
        【解决方案4】:

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

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

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

        【讨论】:

        • 这只不过是指向其他地方的解决方案的指针。当您使用链接回答时,您至少应该总结与问题相关的部分。还要考虑如果文章被删除,链接可能会关闭(又名链接腐烂)。
        猜你喜欢
        • 1970-01-01
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 2010-10-18
        • 1970-01-01
        • 2012-02-23
        • 1970-01-01
        • 2019-11-12
        相关资源
        最近更新 更多