在 Power BI 中显示来自 Azure 流的当前(最新)值

Posted

技术标签:

【中文标题】在 Power BI 中显示来自 Azure 流的当前(最新)值【英文标题】:Show current (latest) value from Azure stream in Power BI 【发布时间】:2018-09-26 12:19:35 【问题描述】:

我需要显示连接的温度传感器的电流(最后读数)。来自传感器的数据每分钟发送一次到 Azure IoT 中心。流分析作业将其输出到 Power BI 接收器。这是传感器发送的 JSON 数据: "temp": "22.88", "name": "POC", "id": "232053ab5ba5ceee", "time": "2018-09-23 07:09:06", "agentid": "ZRQOfcbeFBHk" 这就是 PowerBI 收到的内容: [ "temp": "AAAAA555555", "name": "AAAAA555555", "id": "AAAAA555555", "time": "AAAAA555555", "agentid": "AAAAA555555", "EventProcessedUtcTime": "2018-09-23T07:22:56.643Z", "PartitionId": 98.6, "EventEnqueuedUtcTime": "2018-09-23T07:22:56.643Z", "IoTHub": "AAAAA555555" ]

什么是 PartitionId,如何仅显示最新读数(当前温度)?

【问题讨论】:

【参考方案1】:

什么是 PartitionId?

根据你的描述,你的数据源是IOT-HUB,所以是IOT-HUB服务的partitionId。你可以参考这个案例来了解:Sending message to Azure IoT hub partition

Here 是一个很好的博客供您参考,尤其是“Power BI 实时仪表板”一章。

打开数据集,您会看到数据集下的表格,其中包含我们传递的两个字段(ts 和 value)以及来自 Event Hub 的其他字段(EventEnqueuedUtcTime、EventProcessedUtcTime 和 PartitionId)。

如何仅显示最新读数(当前温度)?

据我所知,您可以通过 measure 在桌面上实现它。

result = 
VAR maxdate =
    CALCULATE ( MAX ( Table1[time] ), ALL ( Table1 ) )
RETURN
  CALCULATE(MAX(Table1[temp]),FILTER(Table1,Table1[time]=maxdate)) 

result = 
VAR maxdate =
    CALCULATE ( MAX ( Table1[time] ), ALL ( Table1 ) )
RETURN
    IF ( MAX(Table1[time]) = maxdate, MAX(Table1[temp]), BLANK () )  

分别对应以下两种显示方式。

【讨论】:

以上是关于在 Power BI 中显示来自 Azure 流的当前(最新)值的主要内容,如果未能解决你的问题,请参考以下文章

Azure 中的 Power BI 报告、共享容量和 Pro 许可证

Azure 数据工厂体系结构与 Azure SQL 数据库到 Power BI

将 Azure 数据连接到 Power BI 的 oData 时出现问题

在 Power BI 中显示相同值的所有行和行总数

如何通过 Azure 虚拟网络从 power bi 桌面应用程序连接到 cosmos db

Power BI:需要根据切片器选择向表格视觉对象添加列