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

时间:2018-09-26 12:19:36

标签: azure powerbi azure-stream-analytics

我需要显示连接的温度传感器的电流(最新读数)。每分钟将来自传感器的数据发送到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?如何仅显示最新读数(当前温度)? PowerBI

1 个答案:

答案 0 :(得分:1)

  

什么是PartitionId?

根据您的描述,您的数据源为IOT-HUB,因此它是IOT-HUB服务的partitionId。您可以参考此案例来了解它:Sending message to Azure IoT hub partition

Here是一个很好的博客,供您参考,尤其是Power BI Real-time Dashboard的博客。

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

  

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

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

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 () )  

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

enter image description here

希望它对您有帮助。