You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查Power BI数据集表是否刷新并新增数据?

可行解决方案:无Premium许可证下监控Power BI数据集刷新及数据新增状态

方案一:基于Power BI REST API实现(无需Premium)

核心流程

  • 获取API权限:注册Azure AD应用,授予Dataset.Read.All和Report.Read.All权限(根据场景选委托或应用权限),通过客户端凭据流获取访问令牌。
  • 拉取刷新历史:调用GET https://api.powerbi.com/v1.0/myorg/groups/{group-id}/datasets/{dataset-id}/refreshes,获取每个数据集的刷新状态(成功/失败)和时间戳。
  • 追踪数据变化:
    1. 在目标数据集里添加隐藏计算表,用DAX记录各业务表的行数和当前时间:
      TableRowTracker = 
      UNION(
          ROW("TableName", "Sales", "RowCount", COUNTROWS(Sales), "RefreshTime", NOW()),
          ROW("TableName", "Customers", "RowCount", COUNTROWS(Customers), "RefreshTime", NOW())
      )
      
    2. 通过API调用GET https://api.powerbi.com/v1.0/myorg/groups/{group-id}/datasets/{dataset-id}/tables/{table-name}/rows,拉取TableRowTracker的历史数据。
    3. 对比同一表相邻两次记录的RowCount:当前行数大于上一次标记为有新数据,否则标记为无数据变化。
  • 构建监控报表:用Power Query将API返回的所有数据整合,用矩阵可视化展示——行放数据集/报表名称,列放表名,单元格按状态设置条件格式(绿色=有新数据,红色=无变化,灰色=刷新失败)。

方案二:Spark源端自动映射+批量监控

核心流程

  • 自动生成映射关系:在Spark端编写脚本,从Power BI网关配置或数据集连接字符串中提取关联的Spark表信息,生成元数据表powerbi_dataset_mapping,包含DatasetName、DatasetID、SparkTableName字段。
  • 定期采集行数数据:用Spark调度任务(如Airflow)定期执行SELECT COUNT(*) FROM table,将表名、行数、时间戳存入监控表table_row_monitor。
  • Power BI整合展示:在Power BI中连接Spark的元数据和监控表,通过DatasetName关联数据集与对应表,计算行数差异后标记状态,最终用矩阵呈现。

方案三:轻量内置方案(适合小规模场景)

核心流程

  • 启用刷新日志:确保目标数据集的“刷新历史记录”处于开启状态(Power BI服务默认开启)。
  • 添加行变化度量值:在数据集中手动添加度量值,对比当前与上一次刷新的行数:
    SalesRowChange = 
    VAR CurrentCount = COUNTROWS(Sales)
    VAR LastRefreshCount = CALCULATE(COUNTROWS(Sales), LASTDATE(RefreshLog[RefreshTime]))
    RETURN IF(CurrentCount > LastRefreshCount, 1, 0)
    
    注:需手动维护RefreshLog表,通过Power Query定时导入数据集的刷新历史记录
  • 构建监控报表:新建Power BI报表,连接所有需监控的数据集,用矩阵展示数据集、表名称,基于度量值设置条件格式。

内容的提问来源于stack exchange,提问作者coding

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 17:52:49