SuperAPI AI 工具集

lineage-analysis

通用与其它

查看项目

更新于 10-15 20:32

技能介绍

用途:追踪语义模型到下游报表的依赖关系,跨 Fabric 工作区映射影响面。适用于修改或删除语义模型前评估影响、审计哪些报表连接到某模型及其位置、识别连接到生产模型的孤儿或测试报表、跨工作区依赖映射。

主要能力:脚本 scripts/get-downstream-reports.py 查找绑定到某语义模型的所有报表。支持按工作区与模型名调用:python3 scripts/get-downstream-reports.py "Workspace Name" "Model Name";也可用 --dataset-id 直接按数据集 GUID 查询;加 --json 输出便于后续处理。依赖 azure-identity、requests(pip install azure-identity requests),通过 DefaultAzureCredential 认证(支持 az login、托管标识或环境变量)。实现上先列出用户可访问的全部工作区,再并行(8 个 worker)查询各工作区报表并检查 datasetId,按工作区分组,约 100 个工作区通常 10 秒内完成。权限方面,对待扫描工作区需具备贡献者或更高权限;无权限工作区中的报表不会出现。需覆盖整个租户时,可改用 --dataset-id 配合租户管理员令牌与 admin/reports API。

限制:报表并非唯一消费者。语义模型还可被 Excel 实时连接工作簿、复合模型、Power BI 服务中的探索、Fabric notebook、Fabric 数据代理、分页报表(.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 才能直接编辑的旧格式;出现在意外工作区的报表可能表示副本、分叉或指向共享模型的薄报表;下游报表多意味着高影响模型,变更需协调。