你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
教程:从已处理的数据中获取见解
在本教程中,你将填充实时仪表板,以从在上一教程中发送到事件中心的 OPC UA 数据中捕获见解。 使用 Microsoft Fabric 实时智能,可以将数据从事件中心引入 Microsoft Fabric,并将其映射到可作为实时仪表板源的 KQL 数据库。 然后构建一个仪表板,以可视化图块的形式显示该数据,以捕获见解并显示随时间变化的值。
这些操作是示例端到端教程体验的最后步骤,涉及从在边缘部署 Azure IoT 操作到从云中的该设备数据获取见解。
先决条件
在开始本教程之前,必须完成教程:使用数据流将资产遥测数据发送到云
还需要 Microsoft Fabric 订阅。 在订阅中,你需要借助“参与者”权限或更高权限访问工作区。
此外,Fabric 租户必须允许创建实时仪表板。 这是一项可以由租户管理员启用的设置。 有关详细信息,请参阅在管理门户中启用租户设置。
我们将解决什么问题?
OPC UA 数据到达云中后,你会获得大量可供分析的信息。 你可能想要组织该数据并创建包含图形和可视化效果的报表,以便从数据中派生见解。 本教程中的步骤说明了如何将该数据连接到实时智能并构建实时仪表板。
将数据引入实时智能
在本部分,我们设置 Microsoft Fabric eventstream,以将事件中心连接到实时智能中的 KQL 数据库。 此过程包括设置数据映射,以将有效负载数据从其 JSON 格式转换为 KQL 中的列。
创建事件流
在本部分,我们创建一个 eventstream,用于将数据从事件中心引入 Microsoft Fabric 实时智能,并最终引入 KQL 数据库。
首先导航至 Microsoft Fabric 中的实时智能体验,并打开 Fabric 工作区。
按照在 Microsoft Fabric 中创建 eventstream 中的步骤,在工作区创建新的 eventstream 资源。
创建 eventstream 后,你会看到主编辑器,于是就可以开始生成 eventstream。
添加事件中心作为源
接下来,将上一个教程中的事件中心添加为事件流的数据源。
按照将 Azure 事件中心源添加到 eventstream 中的步骤添加事件源。 请注意以下事项:
- 你将使用共享访问密钥身份验证创建新的云连接。
- 请确保在事件中心启用了本地身份验证。 可以从 Azure 门户中的“概述”页设置此设置。
- 对于使用者组,请使用默认选择($Default)。
- 对于“数据格式”时,请选择“Json”(默认情况下可能已选择它)。
完成此流后,Azure 事件中心将作为源显示在 eventstream 实时视图中。
验证数据流
按照以下步骤检查迄今为止的工作,确保数据流入 eventstream。
启动在之前的教程中部署了 Azure IoT 操作的群集。 使用 Azure IoT 操作实例部署的 OPC PLC 模拟器应该开始运行并将数据发送到 MQTT 代理。 可以按照验证数据是否流动中的说明,使用 mqttui 验证这部分流。
抽几分钟时间等待数据传播。 然后,在 eventstream 实时视图中选择 AzureEventHub 源并刷新“数据预览”。 应该会看到来自模拟器的 JSON 数据开始出现在表中。
提示
如果数据尚未到达 Eventstream,则可能需要检查事件中心活动以验证它是否正在接收消息。 这将有助于隔离需要调试的流部分。
准备 KQL 资源
在本部分,我们在 Microsoft Fabric 工作区中创建一个 KQL 数据库,用作数据的目标。
按照创建 Eventhouse 中的步骤创建带子 KQL 数据库的实时智能 Eventhouse。 只需完成标题为“创建 Eventhouse”的部分。
接下来,在数据库中创建表。 将其命名为 OPCUA 并使用以下列。
列名称 Data type AssetId string 温度 十进制 湿度 十进制 时间戳 datetime 创建 OPCUA 表后,选择数据库并使用“浏览数据”按钮打开查询窗口。
运行以下 KQL 查询,为表创建数据映射。 该数据映射将称为 opcua_mapping。
.create table ['OPCUA'] ingestion json mapping 'opcua_mapping' '[{"column":"AssetId", "Properties":{"Path":"$[\'AssetId\']"}},{"column":"Temperature", "Properties":{"Path":"$[\'ThermostatTemperature\']"}},{"column":"Humidity", "Properties":{"Path":"$[\'ThermostatHumidity\']"}},{"column":"Timestamp", "Properties":{"Path":"$[\'EventProcessedUtcTime\']"}}]'
将数据表添加为目标
接下来,返回到 eventstream 视图,你可以在其中添加新的 KQL 表作为 eventstream 目标。
按照将 KQL 数据库目标添加到 eventstream 中的步骤添加目标。 请注意以下事项:
使用直接引入模式。
在“配置”步骤中,选择前面创建的 OPCUA 表。
在“检查”步骤中,打开“高级”选项。 在“映射”下,选择“现有映射”,然后选择“opcua_mapping”。
提示
如果未找到现有映射,请尝试刷新 eventstream 编辑器并重启添加目标的步骤。 也可从 KQL 表(而不是从 eventstream)启动相同的配置过程,如从 Eventstream 获取数据中所述。
完成此流后,KQL 表将作为目标显示在 eventstream 实时视图中。
抽几分钟时间等待数据传播。 然后,选择 KQL 目标并刷新“数据预览”,以查看表中显示的 eventstream 中已处理过的 JSON 数据。
如果你愿意,你还可以直接在 KQL 数据库中查看和查询该数据。
创建实时仪表板
在本部分中,你将创建一个新的实时仪表板来可视化教程数据。 仪表板会自动允许按资产 ID 和时间戳进行筛选,并会显示温度和湿度数据的视觉对象摘要。
注意
仅当租户管理员允许在 Fabric 租户中创建实时仪表板时,你才可以创建实时仪表板。 有关详细信息,请参阅在管理门户中启用租户设置。
创建仪表板并连接数据源
按照创建新的仪表板部分中的步骤,通过实时智能功能创建新的实时仪表板。
然后,按照添加数据源部分中的步骤,将数据库添加为数据源。 请记住以下注意事项:
- 在“数据源”窗格中,数据库将位于“OneLake 数据中心”下。
配置参数
接下来,为仪表板配置一些参数,以便视觉对象可以按资产 ID 和时间戳进行筛选。 仪表板附带按时间范围筛选的默认参数,因此只需创建一个可以按资产 ID 进行筛选的参数。
切换到“管理”选项卡,然后选择“参数”。 选择“+ 添加”以添加新参数。
创建具有以下特征的新参数:
- 标签:资产
- 参数类型:单选(默认已选中)
- 变量名称:_资产
- 数据类型:字符串(默认已选中)
- 源:查询
数据源:数据库(默认已选中)
选择“编辑查询”,并输入以下 KQL 查询。
OPCUA | summarize by AssetId
- 值列:AssetId
- 默认值:选择查询的第一个值
选择“完成”,保存参数。
创建折线图磁贴
接下来,在仪表板上添加一个磁贴,以显示所选资产和时间范围内温度和湿度随时间变化的折线图。
选择“+ 添加磁贴”或“新建磁贴”以添加新磁贴。
为磁贴输入以下 KQL 查询。 此查询应用仪表板选择器中针对时间范围和资产的筛选器参数,并拉取生成的包含时间戳、温度和湿度的记录。
OPCUA | where Timestamp between (_startTime.._endTime) | where AssetId == _asset | project Timestamp, Temperature, Humidity
运行查询,以验证是否可以找到数据。
选择查询结果旁边的“+ 添加视觉对象”,为该数据添加视觉对象。 创建具有以下特征的视觉对象:
- 磁贴名称:随时间推移而变化的温度和湿度
- 视觉对象类型:折线图
- Data:
- Y 列:“温度(小数)”和“湿度(小数)”(已默认推断)
- X 列:时间戳(日期/时间)(已默认推断)
- Y 轴:
- 标签:单位
- X 轴:
- 标签:时间戳
选择“应用更改”以创建磁贴。
在仪表板上查看已完成的磁贴。
创建最大值磁贴
接下来,创建一些磁贴来显示温度和湿度的最大值。
选择“新建磁贴”以创建新磁贴。
为磁贴输入以下 KQL 查询。 此查询应用仪表板选择器中针对时间范围和资产的筛选器参数,并从生成的记录中获取最高温度值。
OPCUA | where Timestamp between (_startTime.._endTime) | where AssetId == _asset | top 1 by Temperature desc | summarize by Temperature
运行查询,以验证是否可以找到最高温度。
选择“+ 添加视觉对象”,为该数据添加视觉对象。 创建具有以下特征的视觉对象:
- 磁贴名称:最高温度
- 视觉对象类型:统计信息
- Data:
- 值列:温度(小数)(已默认推断)
选择“应用更改”以创建磁贴。
在仪表板上查看已完成的磁贴(可能需要重设磁贴的大小才能看到完整的文本)。
打开磁贴的选项,然后选择“复制磁贴”。
这会在仪表板上创建重复的磁贴。
在新磁贴上,选择铅笔图标对其进行编辑。
将 KQL 查询中的“温度”替换为“湿度”,使其与下面的查询匹配。
OPCUA | where Timestamp between (_startTime.._endTime) | where AssetId == _asset | top 1 by Humidity desc | summarize by Humidity
运行查询,以验证是否可以找到最高湿度。
在“视觉对象格式设置”窗格中,更新以下特征:
- 磁贴名称:最高湿度
- Data:
- 值列:湿度(小数)(已默认推断)
选择“应用更改”。
在仪表板上查看已完成的磁贴。
保存已完成的仪表板。
现在,你已拥有一个仪表板,可显示这些教程中资产数据的不同类型视觉对象。 在这里,我们可以试验筛选器并添加其他磁贴类型,以了解如何通过仪表板使用数据执行更多操作。
我们如何解决问题?
在本教程中,你使用了事件流将事件中心数据引入 Microsoft Fabric 实时智能中的 KQL 数据库。 然后,我们创建了一个由该数据驱动的实时仪表板,可以直观地跟踪随时间变化的值。 通过在 Microsoft Fabric 中将来自各种源的边缘数据关联在一起,你可以创建具有可视化效果和交互式功能的报表,从而更深入地了解资产运行状况、利用率和运营趋势。 这有助于提高工作效率、提升资产性能并推动明智的决策,从而获得更好的业务成果。
通过此操作,你完成了教程流程中在云端使用 Azure IoT 操作从部署到分析管理设备数据的最后一步。
清理资源
如果继续学习下一教程,请保留所有资源。
如果要移除 Azure IoT 操作部署但保留群集,请使用 az iot ops delete 命令:
az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP
如果要删除为此快速入门创建的所有资源,请删除部署 Azure IoT 操作的 Kubernetes 群集,然后移除包含该群集的 Azure 资源组。
如果使用了 Codespaces 来完成这些快速入门,请从 GitHub 中删除你的 Codespace。
注意
该资源组包含你在本教程中创建的事件中心命名空间。
还可以删除与本教程相关的 Microsoft Fabric 工作区和/或其中的所有资源(包括 Eventstream、Eventhouse 和实时仪表板)。