在 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 时出现问题