你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:从 Azure IoT Central 导出数据并在 Power BI 中可视化见解

在前面的两个教程中,你使用店内分析创建并自定义了 IoT Central 应用程序 - 签出 应用程序模板。 在本教程中,将 IoT Central 应用程序配置为导出从设备收集的遥测数据。 然后,使用 Power BI 为商店经理创建自定义仪表板,以可视化从遥测中获得的见解。

本教程中,您将学习如何:

  • 配置 IoT Central 应用程序以将遥测数据导出到事件中心。
  • 使用逻辑应用将数据从事件中心发送到 Power BI 流数据集。
  • 创建 Power BI 仪表板以可视化流数据集中的数据。

先决条件

若要完成本教程,需要:

创建资源组

在创建事件中心和逻辑应用之前,需要创建资源组来管理它们。 资源组应与您的店内分析 - 结账 IoT Central 应用程序位于同一位置。 若要创建资源组,请执行以下操作:

  1. 登录到 Azure 门户
  2. 在左侧导航中,选择 “资源组”。 然后选择“添加”。
  3. 对于 订阅,请选择用于创建 IoT Central 应用程序的 Azure 订阅的名称。
  4. 资源组 名称中输入 retail-store-analysis
  5. 对于 区域,请选择为 IoT Central 应用程序选择的同一区域。
  6. 选择 审阅 + 创建
  7. 在“查看 + 创建”页面上,选择“创建”。

现在订阅中有一个名为 retail-store-analysis 的资源组。

创建事件中心

在将零售监视应用程序配置为导出遥测之前,需要创建事件中心来接收导出的数据。 以下步骤演示如何创建事件中心:

  1. 在 Azure 门户中,选择屏幕左上角的 “创建资源 ”。
  2. 在“搜索市场”中,输入事件中心,然后按 Enter
  3. “事件中心 ”页上,选择“ 创建”。
  4. “创建命名空间 ”页上,执行以下步骤:
    • 输入命名空间的唯一名称,例如 yourname-retail-store-analysis。 系统检查此名称是否可用。
    • 选择 基本 定价层。
    • 选择用于创建 IoT Central 应用程序的同一 订阅
    • 选择 零售商店分析 资源组。
    • 请选择用于创建 IoT Central 应用程序的位置。
    • 选择 创建。 可能需要等待几分钟,系统才能预配资源。
  5. 在门户中,导航到 零售商店分析 资源组。 等待部署完成。 可能需要选择“ 刷新 ”来更新部署状态。 还可以在 通知中检查事件中心命名空间创建的状态。
  6. 零售商店分析 资源组中,选择 事件中心命名空间。 您在门户中可以看到事件中心命名空间的主页。

需要一个具有发送权限的连接字符串以从 IoT Central 进行连接。 创建连接字符串:

  1. 在 Azure 门户中的事件中心命名空间中,选择 “共享访问策略”。 策略列表包括默认 的 RootManageSharedAccessKey 策略。
  2. 选择 + 添加
  3. 输入 SendPolicy 作为策略名称,选择“ 发送”,然后选择“ 创建”。
  4. 在策略列表中选择 SendPolicy
  5. 记下 连接字符串-主键 值。 在 IoT Central 中配置导出目标时使用它。

需要具有管理和侦听权限的连接字符串才能从逻辑应用连接到事件中心。 检索连接字符串:

  1. 在 Azure 门户中的事件中心命名空间中,选择 “共享访问策略”。 策略列表包括默认 的 RootManageSharedAccessKey 策略。
  2. 在策略列表中选择 RootManageSharedAccessKey
  3. 记下 连接字符串-主键 值。 将逻辑应用配置为从事件中心提取遥测数据时,可以使用它。

现在有了 事件中心命名空间,可以创建一个事件中心以用于 IoT Central 应用程序:

  1. 在门户中 事件中心命名空间 的主页上,选择 “+ 事件中心”。
  2. “创建事件中心 ”页上,输入 存储遥测 作为名称,然后选择“ 创建”。

现在,有一个事件中心,可以在配置从 IoT Central 应用程序导出数据时使用:

显示 Azure 门户中事件中心命名空间的屏幕截图。

配置数据导出

有了事件中心后,即可配置 店内分析 - 签出 应用程序以从连接的设备导出遥测数据。 以下步骤演示如何配置导出:

  1. 登录到 店内分析 - 结账 IoT Central 应用。
  2. 在左窗格中选择 “数据导出 ”。
  3. 选择“+ 新建导出”
  4. 输入 遥测导出 作为 导出名称
  5. 选择要导出的遥测数据类型。
  6. 在“ 目标 ”部分中,选择 新建一个
  7. 输入 存储数据事件中心 作为 目标名称
  8. 选择“Azure 事件中心”作为目标类型。
  9. 选择“连接字符串”作为授权类型。
  10. 请粘贴您在创建事件中心时保存的 SendPolicy 的连接字符串。
  11. 输入 store-telemetry 作为 事件中心
  12. 选择“ 创建 ”,然后选择 “保存”。
  13. “遥测导出 ”页上,等待导出状态更改为 “正常”。

数据导出可能需要几分钟时间才能开始将遥测数据发送到事件中心。 可以在 “数据导出 ”页上查看导出的状态。

创建 Power BI 数据集

Power BI 仪表板显示零售监视应用程序中的数据。 在此解决方案中,你将 Power BI 流数据集用作 Power BI 仪表板的数据源。 在本部分中,定义流数据集的架构,以便逻辑应用可以从事件中心转发数据。 以下步骤演示如何为环境传感器创建两个流数据集,并为占用传感器创建一个流数据集:

  1. 登录到 Power BI 帐户。

  2. 选择 工作区,然后选择“ 创建工作区”。

  3. “创建工作区 ”页上,输入 店内分析 - 签出工作区名称。 选择“保存”

  4. 在工作区页面上,选择 + 新建 > 流式数据集

  5. “新建流式处理数据集 ”页上,选择 API,然后选择“ 下一步”。

  6. 输入 区域 1 传感器 作为 数据集名称

  7. 在下表中输入从 中获取的三个值:

    值名称 值类型
    时间戳 日期时间
    湿度 Number
    温度 Number
  8. 打开 历史数据分析

  9. 选择“ 创建 ”,然后选择 “完成”。

  10. 创建另一个名为 Zone 2 传感器 的流数据集,其架构和设置与 区域 1 传感器 流数据集相同。

现在有两个流数据集。 逻辑应用将连接到“店内分析 - 收银台”应用程序的两个环境传感器的遥测数据路由到以下两个数据集:

该屏幕截图显示了 Power B I 中的区域一传感器数据集定义。

此解决方案为每个传感器使用一个流式处理数据集,因为无法将筛选器应用于 Power BI 中的流数据。

还需要一个用于占有遥测数据的流数据集:

  1. 在工作区页上,选择“创建 > 流式处理数据集”。

  2. “新建流式处理数据集 ”页上,选择 API,然后选择“ 下一步”。

  3. 输入 占用传感器 作为 数据集名称

  4. 在下表中输入流中的五个

    值名称 值类型
    时间戳 日期时间
    队列长度 1 Number
    队列长度 2 Number
    停留时间 1 Number
    停留时间 2 Number
  5. 打开 历史数据分析

  6. 选择“ 创建 ”,然后选择 “完成”。

现在,你有一个第三个流式数据集,用于存储模拟占用传感器的值。 此传感器报告商店中两次结帐时的队列长度,以及客户在这些队列中等待的时间:

Power BI 中关于占用数据集定义的屏幕截图。

创建逻辑应用

在此解决方案中,逻辑应用从事件中心读取遥测数据,分析数据,然后将其发送到创建的 Power BI 流数据集。

在创建逻辑应用之前,需要获取在“创建并部署店内分析应用模板”教程中已连接到 IoT Central 应用的两个 RuuviTag 传感器的设备 ID:

  1. 登录到 店内分析 - 结账 IoT Central 应用。
  2. 在左窗格中选择 “设备 ”。 然后选择 RuuviTag
  3. 记下 设备 ID。 在以下屏幕截图中,ID 为 8r6vfyiv1x1rvfk4ymk6z

显示 IoT Central 应用程序中设备列表中的设备 ID 的屏幕截图。

以下步骤演示如何在 Azure 门户中创建逻辑应用:

  1. 登录到 Azure 门户 ,然后选择屏幕左上角的 “创建资源 ”。
  2. 在“搜索市场”中,输入“逻辑应用”,然后按 Enter
  3. “逻辑应用 ”页上,选择“ 创建”。
  4. “创建 ”页上:
    • 输入逻辑应用的唯一名称,例如 yourname-retail-store-analysis
    • 选择用于创建 IoT Central 应用程序的同一 订阅
    • 选择 零售商店分析 资源组。
    • 选择 类型消耗
    • 请选择用于创建 IoT Central 应用程序的位置。
    • 选择 创建。 可能需要等待几分钟,系统才能预配资源。
  5. 在 Azure 门户中,导航到新的逻辑应用。
  6. “逻辑应用设计器 ”页上,向下滚动并选择 “空白逻辑应用”。
  7. 搜索连接器和触发器中,输入 事件中心
  8. “触发器”中,选择“事件中心中事件可用时”
  9. 输入 存储遥测 作为 连接名称
  10. 选择 “访问密钥 ”作为身份验证类型。
  11. 粘贴之前记下的 RootManageSharedAccessKey 策略的事件中心连接字符串,然后选择“ 创建”。
  12. 事件中心中事件可用时执行操作:
    • 在“事件中心名称”中,选择“store-telemetry”
    • 内容类型中,选择 应用程序/json
    • 间隔 设置为 3, 将频率 设置为秒
  13. 选择 “保存” 以保存逻辑应用。

若要将逻辑添加到逻辑应用设计,请选择 “代码”视图

  1. "actions": {}, 替换为以下的 JSON。 然后将两个占位符 [YOUR RUUVITAG DEVICE ID 1][YOUR RUUVITAG DEVICE ID 2] 替换为你的两个 RuuviTag 设备的 ID。 你之前记下了这些 ID:

    "actions": {
        "Initialize_Device_ID_variable": {
            "inputs": {
                "variables": [
                    {
                        "name": "DeviceID",
                        "type": "String"
                    }
                ]
            },
            "runAfter": {},
            "type": "InitializeVariable"
        },
        "Parse_Telemetry": {
            "inputs": {
                "content": "@triggerBody()?['ContentData']",
                "schema": {
                    "properties": {
                        "deviceId": {
                            "type": "string"
                        },
                        "enqueuedTime": {
                            "type": "string"
                        },
                        "telemetry": {
                            "properties": {
                                "DwellTime1": {
                                    "type": "number"
                                },
                                "DwellTime2": {
                                    "type": "number"
                                },
                                "count1": {
                                    "type": "integer"
                                },
                                "count2": {
                                    "type": "integer"
                                },
                                "humidity": {
                                    "type": "number"
                                },
                                "temperature": {
                                    "type": "number"
                                }
                            },
                            "type": "object"
                        },
                        "templateId": {
                            "type": "string"
                        }
                    },
                    "type": "object"
                }
            },
            "runAfter": {
                "Initialize_Device_ID_variable": [
                    "Succeeded"
                ]
            },
            "type": "ParseJson"
        },
        "Set_Device_ID_variable": {
            "inputs": {
                "name": "DeviceID",
                "value": "@body('Parse_Telemetry')?['deviceId']"
            },
            "runAfter": {
                "Parse_Telemetry": [
                    "Succeeded"
                ]
            },
            "type": "SetVariable"
        },
        "Switch_by_DeviceID": {
            "cases": {
                "Occupancy": {
                    "actions": {},
                    "case": "Occupancy"
                },
                "Zone 2 environment": {
                    "actions": {},
                    "case": "[YOUR RUUVITAG DEVICE ID 2]"
                },
                "Zone_1_environment": {
                    "actions": {},
                    "case": "[YOUR RUUVITAG DEVICE ID 1]"
                }
            },
            "default": {
                "actions": {}
            },
            "expression": "@variables('DeviceID')",
            "runAfter": {
                "Set_Device_ID_variable": [
                    "Succeeded"
                ]
            },
            "type": "Switch"
        }
    },
    
  2. 选择 “保存 ”,然后选择 设计器 以查看添加的逻辑的可视版本:

    Azure 门户中逻辑应用设计器的屏幕截图,其中包含初始逻辑应用。

  3. 选择按 DeviceID 切换以展开操作。 然后选择 区域 1 环境,然后选择 添加操作

  4. 搜索连接器和操作,输入 “向数据集添加行”

  5. 选择 Power BI 在数据集中添加行 操作。

  6. 选择 “登录 ”,然后按照提示登录到 Power BI 帐户。

  7. 登录过程完成后,在 “将行添加到数据集 ”作中:

    • 选择 店内分析 - 签出 为工作区。
    • 选择 区域 1 传感器 作为数据集。
    • 选择 RealTimeData 作为表。
    • 选择 “添加新参数 ”,然后选择“ 时间戳”、“ 湿度”和 “温度 ”字段。
    • 选择Timestamp字段,然后从动态内容列表中选择enqueuedTime
    • 选择“湿度”字段,然后选择“分析遥测”旁边的“查看更多”。 然后选择 湿度
    • 选择“温度”字段,然后选择“分析遥测”旁边的“查看更多”。 然后选择 温度

    选择 保存 以保存更改。 区域 1 环境动作如下屏幕截图所示:

    显示逻辑应用设计器中“区域一环境操作”的屏幕截图。

  8. 选择 区域 2 环境 操作,然后选择 添加操作

  9. 搜索连接器和操作,输入 “向数据集添加行”

  10. 选择 Power BI 添加行到数据集 操作。

  11. “向数据集 2 添加行” 作中:

    • 选择 店内分析 - 签出 为工作区。
    • 选择 区域 2 传感器 作为数据集。
    • 选择 RealTimeData 作为表。
    • 选择 “添加新参数 ”,然后选择“ 时间戳”、“ 湿度”和 “温度 ”字段。
    • 选择“时间戳”字段,然后从“动态内容”列表中选择“enqueuedTime”
    • 选择“湿度”字段,然后选择“分析遥测”旁边的“查看更多”。 然后选择 湿度
    • 选择“温度”字段,然后选择“分析遥测”旁边的“查看更多”。 然后选择 温度

    选择 保存 以保存更改。

  12. 选择 “占用” 操作,然后选择 “添加操作”

  13. 搜索连接器和操作中,搜索“向数据集添加行”

  14. 选择 Power BI 在数据集中添加行

  15. “向数据集 3 添加行”操作中

    • 选择 店内分析 - 签出 为工作区。
    • 选择 占用传感器 作为数据集。
    • 选择 RealTimeData 作为表。
    • 选择 “添加新参数 ”,然后选择 “时间戳”、“ 队列长度 1”、“ 队列长度 2”、“ 停留时间 1”和 “停留时间 2 ”字段。
    • 选择“时间戳”字段,然后从“动态内容”列表中选择“enqueuedTime”
    • 选择“队列长度 1”字段,然后选择“分析遥测”旁边的“查看更多”。 然后选择 count1
    • 选择“队列长度 2”字段,然后选择“分析遥测”旁边的“查看更多”。 然后选择 count2
    • 选择“停留时间 1”字段,然后选择“分析遥测”旁边的“查看更多”。 然后选择 DwellTime1
    • 选择“停留时间 2”字段,然后选择“分析遥测”旁边的“查看更多”。 然后选择 DwellTime2

    选择 保存 以保存更改。 占用操作在屏幕截图中显示如下:

    该屏幕截图显示了逻辑应用设计器中的占用操作。

逻辑应用自动运行。 若要查看每个运行的状态,请导航到 Azure 门户中逻辑应用的 “概述 ”页,然后选择“ 运行历史记录”。 选择 “刷新 ”以更新运行列表。

创建 Power BI 仪表板

现在,你的 IoT Central 应用程序的遥测数据正通过事件中心流式传输。 然后,逻辑应用分析事件中心消息并将其添加到 Power BI 流式处理数据集。 现在,可以创建 Power BI 仪表板来可视化遥测数据:

  1. 登录到 Power BI 帐户。
  2. 选择 “工作区 > 店内分析 - 结账”
  3. 选择 “+ 新建 > 仪表板”。
  4. 输入 应用商店分析 作为仪表板名称,然后选择“ 创建”。

添加折线图

添加四个折线图磁贴以显示两个环境传感器的温度和湿度。 使用下表中的信息创建磁贴。 若要添加每个磁贴,请先选择“ 编辑 > 添加磁贴”。 选择 “自定义流数据”,然后选择“ 下一步

设置 图表 #1 图表 #2 图表 #3 图表 #4
Dataset 区域 1 传感器 区域1传感器 区域 2 传感器 区域 2 传感器
可视化效果类型 折线图 折线图 折线图 折线图
时间戳 时间戳 时间戳 时间戳
价值观 温度 湿度 温度 湿度
时间窗口 60 分钟 60 分钟 60 分钟 60 分钟
Title 温度 (1 小时) 湿度(1 小时) 温度 (1 小时) 湿度(1 小时)
副标题 区域 1 区域 1 区域 2 区域 2

以下屏幕截图显示了第一个图表的设置:

该屏幕截图显示了 Power B I 仪表板中的折线图定义。

添加卡片以显示环境数据

添加四个卡片磁贴以显示两个环境传感器的最新温度和湿度值。 使用下表中的信息创建磁贴。 若要添加每个磁贴,请先选择“ 编辑 > 添加磁贴”。 选择 “自定义流数据”,然后选择“ 下一步

设置 卡片 #1 卡片 #2 卡片 #3 卡片 #4
Dataset 区域 1 传感器 区域 1 传感器 区域 2 传感器 区域 2 传感器
可视化效果类型 Card Card Card Card
Fields 温度 湿度 温度 湿度
Title 温度 (F) 湿度(%) 温度 (F) 湿度(%)
副标题 区域 1 区域 1 区域 2 区域 2

以下屏幕截图显示了第一张卡片的设置:

该屏幕截图显示了 Power B I dashboard.tings 中的卡定义。

添加磁贴以显示结帐占用数据

添加四个卡片磁贴以显示商店中两次结帐的队列长度和停留时间。 使用下表中的信息创建磁贴。 若要添加每个磁贴,请先选择“ 编辑 > 添加磁贴”。 选择 “自定义流数据”,然后选择“ 下一步

设置 卡片 #1 卡片 #2 卡片 #3 卡片 #4
Dataset 占用传感器 占用传感器 占用传感器 空间占用传感器
可视化效果类型 簇状柱形图 簇状柱形图 仪表 仪表
时间戳 时间戳 N/A N/A
价值 停留时间 1 停留时间 2 队列长度 1 队列长度 2
时间窗口 60 分钟 60 分钟 N/A N/A
Title 停留时间 停留时间 队列长度 队列长度
副标题 结算 1 结帐 2 结账 1 结账 2

将仪表板上的磁贴调整大小并重新排列,使其与以下屏幕截图一致:

此屏幕截图显示了带有已调整大小和已重新排列磁贴的 Power BI 仪表板。

可以添加一些图形资源以进一步自定义仪表板:

显示具有其他图形的 Power BI 仪表板的屏幕截图。

清理资源

完成 IoT Central 应用程序后,可以通过登录到应用程序并导航到“应用程序部分中的管理页来删除该应用程序。

如果您想保留应用程序,但希望降低与之相关的成本,请禁用用于向事件中心发送遥测数据的数据导出。

可以通过删除名为 retail-store-analysis 的资源组,在 Azure 门户中删除事件中心和逻辑应用。

通过从工作区的 Power BI 设置页中删除工作区,可以删除你的 Power BI 数据集和仪表板。