如何在Power Query M中从Power BI数据集获取记录
在Power Query M中访问Power BI数据集获取数值的方法
方法1:直接导入Power BI数据集到Power Query
可以通过Power BI内置的数据集连接功能,直接将服务端的数据集加载到Power Query中操作:
- 打开Power BI Desktop,点击「获取数据」→「Power BI数据集」,选择目标工作区和数据集加载
- 进入Power Query编辑器后,就能用M代码对数据集进行处理,比如提取特定数值:
let // 替换为你的工作区ID和数据集ID Source = PowerBI.DataSets("xxxx-xxxx-xxxx-xxxx", "yyyy-yyyy-yyyy-yyyy"), // 选择要操作的表 TargetTable = Source{[Name="销售数据表"]}[Data], // 计算某列的总和作为示例 TotalSales = List.Sum(TargetTable[销售额]) in TotalSales
工作区ID和数据集ID可从Power BI服务的URL中获取:工作区URL的groups/后一串字符是工作区ID,数据集URL的datasets/后是数据集ID。
方法2:通过XMLA端点连接(支持MDX查询)
如果需要更灵活的数值提取(比如直接调用度量值),可以用XMLA端点连接:
- 先在Power BI服务的工作区设置中,开启数据集的「XMLA读写」权限
- 在Power Query中选择「获取数据」→「从数据库」→「从SQL Server分析服务数据库」
- 输入端点地址:
powerbi://api.powerbi.com/v1.0/myorg/你的工作区名称,用OAuth2身份验证登录 - 用M代码调用MDX查询获取数值:
let Source = AnalysisServices.Database("powerbi://api.powerbi.com/v1.0/myorg/销售工作区", "销售数据集"), // 替换为你的度量值和模型名称 MDXQuery = "SELECT MEASURES.[总销售额] ON 0 FROM [模型]", QueryResult = Source{[Name="模型"]}[Data], FinalValue = QueryResult{0}[总销售额] in FinalValue
注意事项
- 确保你的账号拥有目标数据集的读取权限
- 在Power BI服务的数据流中使用Power Query M时,操作逻辑和上述一致
内容的提问来源于stack exchange,提问作者Akash Prajapati
相关产品推荐
相关产品推荐

