Real-Time Dashboards in Power BI: Streaming Data and Live Updates

Build Power BI real-time dashboards that display streaming data with live updates — covering streaming datasets, Azure Event Hubs integration, and IoT analytics patterns.

E
ECOSIRE Research and Development Team
|2026年3月19日4 分钟阅读721 字数|

Power BI 中的实时仪表板:流数据和实时更新

大多数分析平台都是针对昨天的数据构建的 - 它们按照以分钟或小时为单位的计划进行刷新,并且用户知道他们看到的是过去某个时刻的快照。对于大多数分析用例来说,这很好。

但有一类问题使得昨天的数据毫无用处:监控需要在几秒钟内发现质量缺陷的生产线、跟踪服务器基础设施的实时负载、监控发生的零售交易欺诈,或实时管理车队位置。对于这些用例,Power BI 的流式传输和实时功能将仪表板从历史审查工具转变为实时操作监视器。

本指南涵盖了 Power BI 的三种实时数据方法、每种方法的技术架构、实际配置步骤以及实时仪表板提供最大价值的 IoT 和操作监控模式。

要点

  • Power BI 支持三种流模式:推送数据集(REST API)、流数据集(无历史记录)和混合流(有历史记录的 REST API)
  • Azure 事件中心和 Azure 流分析是大容量 IoT 和事件流的标准管道
  • Power BI 仪表板上的流式磁贴实时更新,无需刷新页面
  • 推送数据集支持历史分析;纯流数据集仅显示当前状态
  • 实时仪表板最适合运营监控,而不是探索性分析
  • 流数据集限制为每个数据集每小时 100 万行
  • 嵌入的 Power BI 可以在自定义操作应用程序中显示实时仪表板
  • 在数据到达 Power BI 之前,可以使用 Azure 流分析对流数据运行异常检测

Power BI 的三种实时模式

Power BI 提供了三种不同的实时数据方法,每种方法都有不同的功能和权衡。

模式1:流式数据集(纯流式传输) 数据通过 REST API 推送到流数据集。仪表板实时更新。不存储历史数据 - 数据集仅显示当前/最近状态。将其视为实时行情,而不是历史记录。

  • 最适合:不需要历史背景的实时运营指标
  • 数据保留:无(或非常短的窗口)
  • 报告类型:仅仪表板图块(无报告)
  • 延迟:近实时(秒)
  • 限制:每个数据集 100 万行/小时

模式2:推送数据集(带历史记录的API) 数据通过 REST API 推送并存储在 Power BI 数据集中(如导入模式)。仪表板随着新数据的到来而更新。由于保留了历史记录,因此可以使用完整的报告和图表。刷新是在数据到达时发生的,而不是按计划进行。

  • 最适合:通过趋势分析进行运营监控
  • 数据保留:完整历史记录(受导入模式数据集大小限制)
  • 报告类型:完整报告+仪表板图块
  • 延迟:近实时(秒)
  • 限制:每个数据集每小时 100 万行,总共 500 万行(可通过 Premium 扩展)

模式 3:直接查询/实时连接(数据库支持) Power BI 连接到实时数据库或 Azure Analysis Services 实例并实时查询。随着基础数据的变化,Power BI 图表会在刷新时反映变化。

  • 最适合:针对实时分析数据库的丰富分析查询
  • 数据保留:由后端系统管理
  • 报告类型:完整的交互式报告
  • 延迟:秒到分钟(取决于查询和源性能)
  • 限制:源数据库容量

Azure 事件中心 + 流分析架构

对于大容量 IoT 和事件流,建议的架构在数据到达 Power BI 之前通过 Azure 服务管道传输数据:

IoT Devices / Application Events
        ↓
Azure IoT Hub / Azure Event Hubs
(ingestion layer — billions of events/day)
        ↓
Azure Stream Analytics
(real-time processing, windowing, aggregation)
        ↓
Power BI Streaming Dataset
(display layer — dashboard tiles update live)

为什么采用这种架构?

原始物联网数据高速传入(每秒来自制造传感器、车辆遥测或应用程序日志的数千个事件)。 Power BI 流数据集每小时可处理 100 万行 — 足以满足聚合数据的需求,但不足以满足原始高频传感器流的需求。

Azure 流分析位于中间,应用时间窗口聚合将数据量减少到 Power BI 可以处理的范围,同时增加分析价值:

-- Stream Analytics query: aggregate sensor readings every 30 seconds
SELECT
    System.Timestamp() AS WindowEnd,
    DeviceId,
    AVG(Temperature) AS AvgTemperature,
    MAX(Temperature) AS MaxTemperature,
    MIN(Temperature) AS MinTemperature,
    COUNT(*) AS ReadingCount,
    AVG(Pressure) AS AvgPressure,
    CASE
        WHEN AVG(Temperature) > 85 THEN 'Critical'
        WHEN AVG(Temperature) > 75 THEN 'Warning'
        ELSE 'Normal'
    END AS AlertLevel
INTO [PowerBIOutput]
FROM [IoTHubInput] TIMESTAMP BY EventTime
GROUP BY DeviceId, TUMBLINGWINDOW(second, 30)

此查询接收来自数千个设备的原始温度和压力读数,并在每 30 秒窗口中为每个设备输出一条聚合记录 - 将每小时数百万个原始事件转换为 Power BI 可以轻松处理的数万条聚合记录。


在 Power BI 中创建流数据集

第 1 步:创建流数据集

在 Power BI 服务 → 工作区 → 新建 → 流数据集。

选择“API”作为数据源(用于 REST API 推送)。定义模式 - 将与每个数据记录一起推送的字段:

字段名称数据类型
时间戳日期时间
设备ID文字
温度数量
压力数量
警报级别文字
机器线文字

如果要存储历史数据以进行报告级分析,请将“历史数据分析”设置为“开”。 OFF 创建纯流数据集。

创建后,Power BI 提供:

  • 推送 URL:发送数据的 REST 端点
  • API Key:推送端点的身份验证

第2步:将数据推送到流数据集

任何可以发出 HTTP POST 请求的系统都可以推送数据。有效负载格式:

[
  {
    "Timestamp": "2026-03-19T14:32:15Z",
    "DeviceID": "LINE-A-SENSOR-007",
    "Temperature": 72.4,
    "Pressure": 14.7,
    "AlertLevel": "Normal",
    "MachineLine": "Assembly Line A"
  }
]

通过curl推送进行测试:

curl -X POST \
  "https://api.powerbi.com/beta/{tenant}/datasets/{datasetId}/rows?key={apiKey}" \
  -H "Content-Type: application/json" \
  -d '[{"Timestamp":"2026-03-19T14:32:15Z","DeviceID":"LINE-A-SENSOR-007","Temperature":72.4,"Pressure":14.7,"AlertLevel":"Normal","MachineLine":"Assembly Line A"}]'

步骤 3:创建仪表板图块

在 Power BI 仪表板中,单击“添加磁贴”→ 自定义流数据 → 选择流数据集 → 配置可视化(仪表、折线图、卡片等)→ 添加到仪表板。

当新数据到达时,流数据集图块会自动更新 - 无需刷新页面。


构建实时制造仪表板

制造是最具影响力的实时 Power BI 用例之一。生产线生成恒定的传感器数据:温度、压力、速度、计数和质量检查结果。实时仪表板使运营经理和质量工程师能够即时查看生产线状态。

制造实时仪表板布局:

KPI 板块(顶行):

  • 当前 OEE(整体设备效率)——每分钟更新
  • 今天生产的单位与目标相比 - 根据每个生产计数进行更新
  • 缺陷率(最后 30 分钟)——随着质量检查的记录而更新
  • 活动警报(当前警告/严重情况的计数)

线路状态视觉: 通过颜色编码显示每条生产线当前状态(运行、空闲、故障)的仪表或记分卡视觉效果。每 30 秒从流数据集中更新一次。

温度趋势(最近2小时): 显示滚动 2 小时窗口内每个机器区域的温度的折线图。温度异常(接近临界阈值)在触发设备故障之前会以视觉尖峰的形式出现。

警报源: 显示最近 10 个警报的表格图块 — 设备 ID、警报类型、严重性和时间戳。当新警报被推送到流数据集时,它们会出现在顶部。


实时金融交易监控

金融服务公司使用 Power BI 实时仪表板进行交易监控,尤其是欺诈检测,在处理后几秒内识别异常交易至关重要。

财务实时监控架构:

支付处理器 → Azure 事件中心 → 流分析(应用欺诈评分规则)→ Power BI 流数据集

流分析应用对事务进行分类的规则:

SELECT
    System.Timestamp() AS Timestamp,
    MerchantCategory,
    COUNT(*) AS TransactionCount,
    SUM(Amount) AS TotalAmount,
    AVG(Amount) AS AvgAmount,
    SUM(CASE WHEN FraudScore > 0.8 THEN 1 ELSE 0 END) AS HighRiskCount,
    SUM(CASE WHEN FraudScore > 0.8 THEN Amount ELSE 0 END) AS HighRiskAmount
INTO [PowerBIOutput]
FROM [TransactionInput] TIMESTAMP BY TransactionTime
GROUP BY MerchantCategory, TUMBLINGWINDOW(minute, 5)

Power BI 仪表板显示交易量、价值和欺诈风险指标的滚动 5 分钟窗口。高风险交易计数的激增会触发立即审查,并且由于数据在交易发生后几秒钟内到达,因此欺诈运营团队可以在交易仍在等待授权时进行干预。


IoT 设备监控仪表板

IoT 部署(智能建筑传感器、互联车辆、环境监测网络)生成 Power BI 可以实时可视化的连续遥测数据。

智能楼宇监控: 建筑传感器(温度、湿度、二氧化碳、占用率、能耗)每 60 秒将数据推送到 Azure IoT 中心。流分析按楼层和区域进行聚合。 Power BI 仪表板显示:

  • 逐层温度图(使用 Power BI 的矩阵视觉样式作为热图)
  • 建筑区域的实时能耗
  • 占用率与 HVAC 效率的相关性
  • 带有阈值警报的空气质量指示器

车队管理: 车辆 GPS 遥测技术每 30 秒推送一次位置、速度、燃油油位和诊断代码。流分析计算:

  • 当前车辆位置(每辆车的最后已知位置)
  • 超速违规(车辆超过地理围栏速度限制)
  • 车辆接近燃油阈值
  • 来自 OBD2 诊断代码的预测性维护标志

Power BI 的 ArcGIS 或 Azure Maps 视觉效果在地图上显示实时车辆位置。当新的 GPS 记录到达时,流数据集会更新位置标记。


实时与近实时:做出正确的选择

真正的实时(亚秒级延迟)比近实时(15 秒到 5 分钟延迟)更复杂、更昂贵。对于大多数业务用例,接近实时就足够了。

延迟要求适当的解决方案复杂性
< 1 秒专用流媒体平台(Kafka、Flink)— Power BI 嵌入式非常高
1–10 秒Azure 事件中心 → 流分析 → Power BI 流
10–60 秒从应用程序推送 REST API → Power BI 流数据集中等
1–15 分钟计划刷新(高级版每 1 分钟自动刷新一次)
15–60 分钟标准计划刷新非常低

对于大多数业务监控用例(操作仪表板、支持票证队列、销售活动监控),1-5 分钟的延迟是完全足够的,并且可以通过简单的计划刷新而不是流式架构来实现。

真正的流式架构在以下情况下是合理的:(1) 由数据触发的业务决策必须在几秒钟内发生才有价值,或者 (2) 数据量如此之大,以至于数据库中的具体化需要很长时间才能跟上计划的刷新。


常见问题

有多少设备可以同时将数据推送到 Power BI 流数据集?

Power BI 流数据集的速率限制为每个数据集每小时 100 万行。对于每秒有数千台设备发送数据的物联网场景,这个限制很快就会被突破。标准体系结构使用 Azure 事件中心(每天可以处理数十亿个事件)和 Azure 流分析来聚合设备遥测,然后将减少的聚合数据推送到 Power BI。直接设备到 Power BI 推送仅适用于来自少量设备的低频数据。

流数据集磁贴适用于 Power BI 报表还是仅适用于仪表板?

纯流数据集磁贴(不含历史数据)仅适用于 Power BI 仪表板,不适用于交互式报告。这是因为流式切片渲染器在具有自动刷新功能的仪表板层上运行,而不是在报表引擎中运行。包含历史数据的推送数据集(启用历史分析的“API”源类型)支持所有图表类型的完整交互式报告。推送数据集的仪表板图块也会近乎实时地更新。

Power BI 如何处理流数据集中的数据排序?

Power BI 的流数据集不强制排序 - 数据按其到达的顺序显示。对于时间序列图表,日期时间列用于对 x 轴进行排序。迟到的数据(不按顺序到达的记录)可能会在图表重新排序之前导致短暂的显示瑕疵。 Azure 流分析处理结构化流管道的迟到容忍度,确保数据在到达 Power BI 之前以一致的顺序到达。

我可以在同一个报告中合并实时流数据和历史导入数据吗?

是的,但是使用复合模型。推送数据集(包含历史数据的 REST API)可以与其他导入模式表一起导入 Power BI 数据集。更常见的方法:使用 Azure 流分析将流式摘要写入 Azure SQL(用于通过导入模式进行历史分析)和 Power BI 流式数据集(用于实时显示)。报告连接到导入模式的 Azure SQL 数据集以获取历史图表,而仪表板则使用流式磁贴来获取实时 KPI。

非流式 Power BI 仪表板的自动刷新最小值是多少?

对于分配了 Premium 容量的仪表板,Power BI 仪表板磁贴(连接到导入或 DirectQuery 数据集)的最小自动刷新间隔为 1 分钟。如果没有 Premium,最短时间为 30 分钟。这种“自动刷新”会导致图块按时间间隔重新查询数据集 - 这不是真正的流式传输,但为操作监控提供近乎实时的更新,其中 1 分钟的新鲜度是可以接受的。


后续步骤

实时仪表板需要与历史分析不同的技术方法——架构、数据管道和仪表板设计都发生了变化。当运营决策真正需要在事件发生后几秒或几分钟内而不是几小时或几天内做出时,这种投资是合理的。

ECOSIRE 的 Power BI 仪表板开发服务 包括实时流架构设计、Azure 事件中心和流分析配置以及运营监控仪表板实施。请联系我们来评估您的使用案例是否需要实时流式传输或近实时计划刷新是否满足您的需求。

E

作者

ECOSIRE Research and Development Team

在 ECOSIRE 构建企业级数字产品。分享关于 Odoo 集成、电商自动化和 AI 驱动商业解决方案的洞见。

通过 WhatsApp 聊天