mcpField
L
lineage-analysis

lineage-analysis

github.com/data-goblin数据与数据库1.1k59 次安装今天更新
代码仓库

关于 lineage-analysis

lineage-analysis 是一项技能,可扫描有权访问的 Power BI 工作区,查找关联到语义模型的报表。它适用于变更影响评估和依赖审计,并按工作区汇总发现的报表。

主要功能

  1. 01查找关联语义模型的报表
  2. 02并行扫描可访问的工作区
  3. 03按工作区汇总结果
  4. 04将结果导出为 JSON

适用场景

  1. 01更改模型前评估报表影响
  2. 02审计使用共享模型的报表
  3. 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 插件)——通过 fab CLI 管理工作区和项目

评论

支持 Markdown