用途:Power Query 是 Power BI 中的数据转换引擎,使用函数式语言 M,负责从数据源到数据模型的 ETL。该技能面向编写 M 代码、查询折叠与连接器开发。
主要能力:查询折叠可将 M 步骤翻译为源端原生查询(SQL、OData 等),把计算下推到源。可通过右键步骤选“查看原生查询”判断是否折叠,或用查询诊断查看发送的查询。可折叠操作包括删除列、筛选行、排序、分组、重命名、基本类型转换、数据库合并、Top N、去重;会破坏折叠的包括复杂自定义列、部分透视/逆透视、与非可折叠源合并、Table.Buffer、自定义步骤之后的步骤、部分日期时间转换。原则是把可折叠步骤放在不可折叠步骤之前。
M 语法:每个查询是 let...in 表达式。数据类型含 text、number、Int64.Type、date、datetime、datetimezone、duration、logical、binary、null、Currency.Type、Percentage.Type。常用表函数有 Table.SelectRows、Table.AddColumn、Table.RemoveColumns、Table.SelectColumns、Table.RenameColumns、Table.TransformColumnTypes、Table.ReplaceValue、Table.Group、Table.NestedJoin、Table.ExpandTableColumn、Table.Pivot、Table.UnpivotOtherColumns、Table.Sort、Table.Distinct、Table.Combine、Table.Buffer。列表函数含 List.Numbers、List.Dates、List.Transform、List.Select、List.Sum/Average/Min/Max、List.Generate(分页模式)。
使用方式:可用参数实现环境相关连接,用动态源模式配合 Web.Contents 与 Json.Document 分页抓取 API;用 try...otherwise 处理错误,用 Table.ReplaceErrorValues、Table.RemoveRowsWithErrors 清理错误。自定义连接器需安装 Power Query SDK(VS Code 扩展),创建 .mproj 与 DataConnector.pq,实现带认证的数据源函数,打包为 .mez,部署到 Custom Connectors 目录或网关。
性能优化:可折叠步骤前置、尽早删除无用列、连接前先筛选、避免不必要的 Table.Buffer、折叠失败时用原生查询、暂存查询关闭“包含在报表刷新中”、用 Table.Partition 并行加载、正确设置隐私级别。
限制:部分操作是否折叠取决于源能力;隐私级别设置不当会阻止折叠;资料未提供具体收费、平台支持范围与效果数据。