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

如何批量生成数百个PowerBI报表的SQL Server/Azure数据源列表?

批量提取PowerBI报表所依赖的SQL Server/Azure表/视图列表

不需要逐个打开查询编辑器,有几种高效的批量处理方案:

1. PowerShell 脚本(适用于云端/本地PBIX)

借助MicrosoftPowerBIMgmt模块可以批量扫描PowerBI工作区或本地PBIX文件,提取数据源和表信息:

# 安装模块(首次运行)
Install-Module -Name MicrosoftPowerBIMgmt -Scope CurrentUser

# 连接PowerBI服务
Connect-PowerBIServiceAccount

# 指定目标工作区ID
$workspaceId = "你的工作区ID"

# 获取工作区所有数据集
$datasets = Get-PowerBIDataset -WorkspaceId $workspaceId

foreach ($dataset in $datasets) {
    # 获取数据集的表信息
    $tables = Get-PowerBITable -DatasetId $dataset.Id -WorkspaceId $workspaceId
    foreach ($table in $tables) {
        # 提取表的数据源连接和源对象(表/视图)
        $source = $table.Source
        if ($source.Type -eq "Sql") {
            Write-Output "报表: $($dataset.Name) | 数据源: $($source.Server) | 数据库: $($source.Database) | 表/视图: $($source.SqlQuery -replace 'SELECT.*FROM ','')"
        }
    }
}

如果是本地PBIX文件,可以用Import-PowerBIXml解析文件内容,提取相同的数据源信息。

2. Tabular Editor 工具

这是免费的开源工具,支持批量处理PowerBI模型:

  • 打开Tabular Editor,加载目标PBIX文件或连接到云端PowerBI数据集
  • 在左侧模型树中选中所有表,右键选择Export > Export Table Properties
  • 在导出设置中勾选Source属性,即可生成包含所有表/视图及其数据源的CSV文件

3. DAX Studio 查询DMV

连接到PowerBI数据集后,运行以下DMV查询直接获取表和数据源关联信息:

SELECT 
    t.Name AS TableName,
    s.ConnectionString,
    s.Name AS DataSourceName,
    t.SourceExpression
FROM $SYSTEM.TMSCHEMA_TABLES t
JOIN $SYSTEM.TMSCHEMA_DATA_SOURCES s ON t.DataSourceID = s.ID
WHERE s.ConnectionType = 'SQL'

查询结果会返回每个表对应的数据源连接和源表达式(从中可以提取表/视图名称)。

关于Microsoft Purview的现状

旧论坛的信息已经过时,当前Purview完全支持SQL Server和Azure数据源的扫描,并且可以自动识别PowerBI报表与底层SQL表/视图的血缘关系:

  • 配置Purview扫描PowerBI工作区和对应的SQL Server/Azure数据库
  • 在Purview数据目录中,直接查看任意PowerBI报表的血缘关系,就能看到它依赖的所有表/视图
  • 还可以批量导出报表与数据源的关联清单,满足你的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 15:46:18