mcpField
P
powerbi-consumption-cli

powerbi-consumption-cli

github.com/microsoft数据与数据库1.3k62 次安装3 周前更新
代码仓库

关于 powerbi-consumption-cli

powerbi-consumption-cli 是用于只读探索 Power BI 语义模型的技能,通过 DAX 查询发现元数据。它从表清单引导至更深入的模型信息,并强调限定查询范围且不修改模型。

主要功能

  1. 01发现表、列、度量值和关系
  2. 02使用 DAX INFO.VIEW 与 INFO 函数
  3. 03指导限定范围的元数据及依赖查询
  4. 04执行分析型 DAX 查询
  5. 05仅进行只读操作

适用场景

  1. 01分析前盘点语义模型
  2. 02检查度量值和关系
  3. 03追踪模型对象间的依赖
  4. 04对语义模型执行数据查询

MCP 相关

README 提到应通过 Fabric MCP 服务提供 ExecuteQuery,并说明该能力不可用时的排查方式。它没有将此技能描述为 MCP 服务或客户端。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/microsoft/skills-for-fabric --skill powerbi-consumption-cli

安装后在 Claude Code 中输入/powerbi-consumption-cli确认已加载。

附带文件references/discovery-queries.md

详细介绍

更新检查 — 每个会话仅执行一次(必需) 首次在会话中使用此技能时,继续操作前请先运行 check-updates 技能。

  • GitHub Copilot CLI / VS Code:调用 check-updates 技能。
  • Claude Code / Cowork / Cursor / Windsurf / Codex:比较本地与远程 package.json 版本。
  • 如果本会话早些时候已完成检查,则跳过。

重要说明

  1. 若要通过工作区名称查找工作区详情(包括其 ID):先列出所有工作区,然后使用 JMESPath 进行筛选
  2. 若要通过工作区 ID、项目类型和项目名称查找项目详情(包括其 ID):先列出该工作区中该类型的所有项目,然后使用 JMESPath 进行筛选

Power BI 语义模型使用 — CLI 技能

目录

任务参考说明
在 Fabric 中查找工作区和项目COMMON-CLI.md § 在 Fabric 中查找工作区和项目必读 — 请先阅读链接内容 [用于按名称查找工作区 ID,或按名称、项目类型和工作区 ID 查找项目 ID]
Fabric 拓扑和关键概念COMMON-CORE.md § Fabric 拓扑和关键概念层级结构;在 Fabric 中查找内容
环境 URLCOMMON-CORE.md § 环境 URL生产环境(公有云)
身份验证和令牌获取COMMON-CORE.md § 身份验证和令牌获取受众错误会导致 401;涵盖令牌受众、委托权限与应用权限、OAuth 流程、身份类型和 Entra 应用注册
核心控制平面 REST APICOMMON-CORE.md § 核心控制平面 REST API包括工作区/项目 CRUD、按名称解析、分页、LRO 轮询和速率限制模式
OneLake 数据访问COMMON-CORE.md § OneLake 数据访问需要 storage.azure.com 令牌,而非 Fabric 令牌;涵盖 URL 结构、与 ADLS Gen2 的一致性以及快捷方式
作业执行COMMON-CORE.md § 作业执行运行按需作业;获取/取消作业
容量管理COMMON-CORE.md § 容量管理列出容量;将工作区分配给容量
注意事项、最佳实践和故障排除COMMON-CORE.md § 注意事项、最佳实践和故障排除常见错误;最佳实践
工具选择依据COMMON-CLI.md § 工具选择依据
身份验证操作指南COMMON-CLI.md § 身份验证操作指南az login 流程、环境检测、令牌获取和调试
通过 az rest 调用 Fabric 控制平面 APICOMMON-CLI.md § 通过 az rest 调用 Fabric 控制平面 API始终传入 --resource;包括工作区/项目操作、分页和 LRO 模式
通过 curl 访问 OneLake 数据COMMON-CLI.md § 通过 curl 访问 OneLake 数据使用 curl,不要使用 az rest(令牌受众不同);列出/读取/上传/删除文件以及创建目录
SQL / TDS 数据平面访问COMMON-CLI.md § SQL / TDS 数据平面访问使用 sqlcmd (Go) 连接、查询、导出 CSV、服务主体身份验证以及发现连接参数
作业执行(CLI)COMMON-CLI.md § 作业执行(CLI)运行笔记本/管道、刷新语义模型、检查/取消作业
OneLake 快捷方式COMMON-CLI.md § OneLake 快捷方式创建快捷方式;列出快捷方式;删除快捷方式
容量管理(CLI)COMMON-CLI.md § 容量管理(CLI)列出容量;将工作区分配给容量
组合操作指南COMMON-CLI.md § 组合操作指南端到端的工作区→湖屋→文件、SQL 终结点→查询和笔记本执行操作指南
注意事项和故障排除(CLI 专用)COMMON-CLI.md § 注意事项和故障排除(CLI 专用)
快速参考COMMON-CLI.md § 快速参考az rest 模板;令牌受众 ↔ CLI 工具矩阵
先决条件SKILL.md § 先决条件
必须/优先/避免SKILL.md § 必须/优先/避免只读语义模型用法的防护规则。必须执行;优先采用;避免
元数据发现SKILL.md § 元数据发现INFO.VIEW.* 和 INFO.* 函数。
推荐的发现顺序SKILL.md § 推荐的发现顺序元数据探索的首选顺序
常用 INFO 函数SKILL.md § 常用 INFO 函数用于初步发现的高频函数列表
完整 INFO 函数目录(动态)discovery-queries.md § 完整 INFO 函数目录(动态)
元数据对象 → INFO 函数映射SKILL.md § 元数据对象 → INFO 函数映射内嵌的映射,用于以对象为中心的发现
查询执行SKILL.md § 查询执行ExecuteQuery 的用法形式
故障排除SKILL.md § 故障排除解决常见的执行和元数据问题
示例SKILL.md § 示例元数据查询示例;数据查询示例
范围估算查询discovery-queries.md § 范围估算查询
INFO 输出列discovery-queries.md § INFO 输出列INFO.VIEW.(初步元数据发现首选);关键 INFO.(深层元数据/诊断)
缩小结果范围(投影 + 筛选)discovery-queries.md § 缩小结果范围(投影 + 筛选)
深层元数据查询discovery-queries.md § 深层元数据查询
依赖项发现discovery-queries.md § 依赖项发现DAX 查询的依赖项行集;限定到度量值的依赖项行;反向依赖项(引用某度量值的内容)

前提条件

  • COMMON-CORE.md — Fabric 概念、身份验证和控制平面 API 背景信息。
  • COMMON-CLI.md — 面向 CLI 的发现方式及令牌/受众模式。

必须/优先/避免

必须执行
  • 将此技能限制为只读:仅进行元数据发现和分析型 DAX 查询。
  • 将 DAX 数据查询和 INFO.VIEW.* 视为所有具有语义模型读取权限的用户均可使用;假设其他 INFO.* 函数可能需要更高权限。
  • 动态解析工作区和语义模型项的标识,不要对 ID 进行硬编码。
  • 在编写数据查询前,使用 DAX INFO.VIEW.* / INFO.* 发现元数据。
优先执行
  • 尽早验证语义模型范围(artifactId),再迭代优化查询。
  • 逐步发现语义模型架构:使用经过筛选和投影的 INFO.VIEW.* / INFO.* 调用(例如,SELECTCOLUMNS + FILTER),仅获取与当前任务直接相关的信息,而不要一开始就检索完整架构。请参阅 discovery-queries.md § 缩小结果范围(投影 + 筛选)。
  • 保持指南与提供方无关,以降低工具端点迁移风险。
避免
  • 在此技能中执行模型更改操作。

推荐的发现顺序

  1. 运行 discovery-queries.md § 范围估算查询,在深入发现前估算元数据范围(表、列、度量值和关系的数量)。
  2. 从 INFO.VIEW.TABLES() 开始,快速盘点表。
  3. 扩展到 INFO.VIEW.COLUMNS() 和 INFO.VIEW.MEASURES(),获取语义详细信息。
  4. 使用 INFO.VIEW.RELATIONSHIPS() 验证联接和筛选行为。
  5. 如需更深入的模式,请使用 discovery-queries.md 中的完整查询目录。

常用 INFO 函数

  • INFO.VIEW.TABLES
  • INFO.VIEW.MEASURES
  • INFO.VIEW.COLUMNS
  • INFO.VIEW.RELATIONSHIPS
  • INFO.PARTITIONS
  • INFO.MODEL
  • INFO.STORAGETABLECOLUMNSEGMENTS
  • INFO.DEPENDENCIES
  • INFO.EXPRESSIONS
  • INFO.ROLES
  • INFO.STORAGETABLECOLUMNS
  • INFO.CALCULATIONGROUPS
  • INFO.CALCULATIONITEMS
  • INFO.CULTURES
  • INFO.OBJECTTRANSLATIONS
  • INFO.USERDEFINEDFUNCTIONS
  • INFO.REFRESHPOLICIES
  • INFO.ATTRIBUTEHIERARCHYSTORAGES
  • INFO.COLUMNPARTITIONSTORAGES
  • INFO.COLUMNSTORAGES
  • INFO.DICTIONARYSTORAGES
  • INFO.HIERARCHYSTORAGES
  • INFO.PARTITIONSTORAGES
  • INFO.RELATIONSHIPINDEXSTORAGES
  • INFO.RELATIONSHIPSTORAGES
  • INFO.SEGMENTMAPSTORAGES
  • INFO.SEGMENTSTORAGES
  • INFO.STORAGEFOLDERS
  • INFO.STORAGEFILES
  • INFO.TABLESTORAGES
  • INFO.GENERALSEGMENTMAPSEGMENTMETADATASTORAGES
  • INFO.DELTATABLEMETADATASTORAGES
  • INFO.PARQUETFILESTORAGES
  • INFO.STORAGETABLES

元数据对象 → INFO 函数映射

元数据对象主要 INFO 函数
模型INFO.MODEL
表INFO.VIEW.TABLES
列INFO.VIEW.COLUMNS、INFO.GROUPBYCOLUMNS、INFO.RELATEDCOLUMNDETAILS
度量值INFO.VIEW.MEASURES、INFO.FORMATSTRINGDEFINITIONS、INFO.DETAILROWSDEFINITIONS
关系INFO.VIEW.RELATIONSHIPS
分区INFO.PARTITIONS、INFO.EXPRESSIONS、INFO.QUERYGROUPS、INFO.REFRESHPOLICIES、INFO.DATACOVERAGEDEFINITIONS
安全角色和权限INFO.ROLES、INFO.TABLEPERMISSIONS、INFO.COLUMNPERMISSIONS
层次结构INFO.HIERARCHIES、INFO.LEVELS、INFO.ATTRIBUTEHIERARCHIES、INFO.VARIATIONS
计算组/项INFO.CALCULATIONGROUPS、INFO.CALCULATIONITEMS、INFO.CALCULATIONEXPRESSIONS
透视INFO.PERSPECTIVES、INFO.PERSPECTIVETABLES、INFO.PERSPECTIVECOLUMNS、INFO.PERSPECTIVEHIERARCHIES、INFO.PERSPECTIVEMEASURES
日历INFO.CALENDARS、INFO.CALENDARCOLUMNGROUPS、INFO.CALENDARCOLUMNREFERENCES
区域性INFO.CULTURES
对象翻译INFO.OBJECTTRANSLATIONS
函数INFO.USERDEFINEDFUNCTIONS
依赖项/血缘INFO.DEPENDENCIES、INFO.CHANGEDPROPERTIES、INFO.EXCLUDEDARTIFACTS
存储内部信息/大小INFO.STORAGEFOLDERS、INFO.STORAGEFILES、INFO.TABLESTORAGES、INFO.COLUMNSTORAGES、INFO.PARTITIONSTORAGES、INFO.SEGMENTMAPSTORAGES、INFO.DICTIONARYSTORAGES、INFO.COLUMNPARTITIONSTORAGES、INFO.SEGMENTSTORAGES、INFO.RELATIONSHIPSTORAGES、INFO.RELATIONSHIPINDEXSTORAGES、INFO.ATTRIBUTEHIERARCHYSTORAGES、INFO.HIERARCHYSTORAGES、INFO.GENERALSEGMENTMAPSEGMENTMETADATASTORAGES、INFO.DELTATABLEMETADATASTORAGES、INFO.PARQUETFILESTORAGES、INFO.STORAGETABLES、INFO.STORAGETABLECOLUMNS、INFO.STORAGETABLECOLUMNSEGMENTS

查询执行

使用单一的 ExecuteQuery 能力,包含以下负载概念:

  • artifactId:目标语义模型标识符。
  • daxQuery:直接 DAX 查询文本。

临时实现说明:当前查询集成预计会在发布前替换为公开的 HTTP 端点,以提供 ExecuteQuery。

故障排除

  • MCP 服务中无法使用 ExecuteQuery 能力
    • 问题: 活动工具列表中没有 ExecuteQuery,因此无法开始执行查询。
    • 原因: Fabric MCP 服务未注册、未加载,或者当前客户端会话的工具元数据已过时。
    • 解决方法: 检查活动 MCP 服务/工具清单,并确认已公开 ExecuteQuery。
  • 高级 INFO 函数返回权限错误
    • 问题: 对 INFO.* 的查询因授权或权限相关错误而失败。
    • 原因: 许多 INFO.* 函数需要超出标准读取权限的语义模型高级权限。
    • 解决方法: 从面向读取的发现函数 INFO.VIEW.* 开始。
  • 元数据输出量过大,不利于聚焦分析
  • 不要使用 INFO DAX 函数检索角色成员身份
    • 问题: INFO.ROLEMEMBERSHIPS() 返回空结果或不完整结果。
    • 原因: 角色成员是在部署后于服务级别(Entra ID)分配的,而非定义在模型中,因此 DAX INFO 函数无法可靠地获取这些信息。
    • 解决方法: 改用 Power BI REST API。请参阅 powerbi-authoring-cli § Security Role Memberships。

示例

完整的查询目录(包括依赖模式)请参阅 discovery-queries.md。

元数据查询示例
EVALUATE
INFO.VIEW.TABLES()
ORDER BY [Name]
数据查询示例
DEFINE
MEASURE 'Sales'[Total Sales] = SUM('Sales'[Amount])
EVALUATE
SUMMARIZECOLUMNS(
    'Customer'[Customer Name],
    "Total Sales", [Total Sales]
)
ORDER BY [Total Sales] DESC

评论

支持 Markdown