我需要显示连接的温度传感器的电流(最新读数)。每分钟将来自传感器的数据发送到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"
}
]
答案 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 () )
分别对应以下两种显示方式。
希望它对您有帮助。