关于 lineage-analysis
lineage-analysis 是一项技能,可扫描有权访问的 Power BI 工作区,查找关联到语义模型的报表。它适用于变更影响评估和依赖审计,并按工作区汇总发现的报表。
主要功能
- 01查找关联语义模型的报表
- 02并行扫描可访问的工作区
- 03按工作区汇总结果
- 04将结果导出为 JSON
适用场景
- 01更改模型前评估报表影响
- 02审计使用共享模型的报表
- 03查找跨工作区的意外或测试报表
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ data-goblin/ power-bi-agentic-development --skill lineage-analysis安装后在 Claude Code 中输入/lineage-analysis确认已加载。
附带文件scripts/get-downstream-reports.py
详细介绍
血缘分析
追踪语义模型的下游依赖,查找整个租户中所有关联的报表。无需管理员权限——只需具有工作区参与者访问权限即可。
适用场景
- 修改或删除语义模型前,了解其影响
- 审核哪些报表与模型关联,以及它们所在的位置
- 查找与生产模型关联的孤立或测试报表
- 跨工作区依赖映射
下游报表
运行 scripts/get-downstream-reports.py,查找所有绑定到语义模型的报表。
# By workspace and model name
python3 scripts/get-downstream-reports.py "Workspace Name" "Model Name"
# By dataset GUID directly
python3 scripts/get-downstream-reports.py --dataset-id <guid>
# JSON output for further processing
python3 scripts/get-downstream-reports.py "Workspace" "Model" --json
要求: azure-identity、requests(pip install azure-identity requests)。通过 DefaultAzureCredential 进行身份验证(支持 az login、托管标识或环境变量)。
工作原理: 列出用户有权访问的所有工作区,然后并行查询每个工作区中的报表(8 个工作线程),检查 datasetId。按工作区分组结果。对于约 100 个工作区,通常不到 10 秒即可完成。
权限: 对要扫描的任何工作区,需具有工作区参与者或更高权限。无法访问的工作区中的报表不会显示。若要覆盖整个租户,请使用 --dataset-id 标志和租户管理员令牌,并改用 admin/reports API。
限制
报表并非唯一的使用方。 语义模型还可供以下对象使用:
- Analyze in Excel 工作簿(.xlsx 实时连接)
- 复合模型(通过 DirectQuery 链接到其他语义模型)
- Explorations(Power BI 服务中的临时可视化探索)
- Fabric 笔记本(通过 Spark 或 sempy 连接)
- Fabric 数据 Agent
- 分页报表(.rdl)
- 引用该模型的数据流
- 通过 XMLA 连接的第三方工具
该脚本只能发现 Power BI 报表。若要完整映射包括这些其他项目类型在内的依赖关系,请使用 Fabric 血缘 API(fab api "admin/groups/{id}/lineage")或 Power BI 服务 UI 中的血缘视图。
不适合一次处理大量模型。 每次运行脚本都会扫描所有可访问的工作区。对数十个语义模型循环运行会产生过多 API 调用,并有触发限流的风险。若要批量盘点多个模型,请在有租户管理员访问权限时使用管理员扫描 API(fab api "admin/workspaces/getInfo"),或使用跨工作区目录 fab find ... -P type=SemanticModel 快速获取非管理员可见的列表。这两种替代方案都无法解析报表到模型的依赖关系边;fab find 和 OneLake 目录不会公开血缘信息。为此,仍需进行逐工作区扫描(本脚本采用的方法),或使用官方 Power BI 血缘管理员 API fab api "admin/groups/{ws-id}/lineage"。
结果解读
| 字段 | 含义 |
|---|---|
报表格式 PBIR | 现代格式,可作为 JSON 编辑 |
报表格式 PBIRLegacy | 旧版格式,需转换为 PBIR 才能直接编辑 |
| 报表位于意外的工作区 | 可能表示存在副本、分支或指向共享模型的精简报表 |
| 下游报表较多 | 模型影响范围大——更改需要协调 |
相关技能
semantic-model—— 设计、构建、刷新和审查模型(质量、内存、DAX、设计)refreshing-semantic-model—— 触发并监控模型刷新fabric-cli(fabric-cli 插件)——通过fabCLI 管理工作区和项目