什么是 Power Query?

Power Query 是数据转换和数据准备引擎。 Power Query 附带用于从源获取数据的图形界面,以及用于应用转换的 Power Query 编辑器。 由于引擎在许多产品和服务中都可用,因此存储数据的目标取决于使用 Power Query 的位置。 使用 Power Query,可以执行数据的提取、转换和加载(ETL)处理。

Power Query 输入、转换和目标。

左侧为包含符号化数据源的图表,中间通过 Power Query 进行转换,然后到达右侧的四个目标:Microsoft Azure Data Lake Storage、Microsoft Dataverse、Microsoft Excel 和 Microsoft Power BI。

Power Query 如何帮助获取数据

业务用户最多花费 80% 的时间进行数据准备,这会延迟分析和决策的工作。 一些挑战促成了这种情况,Power Query 可帮助解决其中许多难题。

现有挑战 Power Query 有什么作用?
查找和连接数据太困难 借助 Power Query,可以连接到各种数据源,包括所有大小和形状的数据。
数据连接体验过于分散 体验的一致性,以及所有数据源查询功能的对等性。
数据通常需要在消耗前进行重塑 高度交互式和直观的体验,可快速迭代地基于任何大小的任何数据源生成查询。
任何整形都是一次性的,不可重复 使用 Power Query 访问和转换数据时,可以定义一个可重复的过程(查询),可在将来轻松刷新以获取 up-to日期数据。
如果需要修改进程或查询来考虑基础数据或架构更改,则可以使用最初定义查询时所用的相同交互式直观体验。
容量(数据规模)、速度(变化速率)和多元性(数据来源和数据形态的广度) Power Query 使你能够针对整个数据集的子集来定义所需的数据转换,从而轻松地筛选数据并将数据转换为可管理的大小。
可以手动刷新 Power Query 查询,或者利用特定产品(例如 Power BI)中的计划刷新功能,甚至以编程方式(通过使用 Excel 对象模型)。
由于 Power Query 为上述每个源提供与数百个数据源和 350 多种不同类型的数据转换的连接,因此可以使用来自任何源和任何形状的数据。

Power Query 体验

Power Query 用户体验通过 Power Query 编辑器用户界面提供。 此接口的目标是通过与用户友好的功能区、菜单、按钮和其他交互式组件交互,帮助你应用所需的转换。

Power Query 编辑器是主要数据准备体验。 在编辑器中,可以连接各种数据源,并通过预览数据和从 UI 中选择转换来应用数百种不同的数据转换。 无论基础数据源存在什么限制,这些数据转换功能在所有数据源中都是常见的。

通过与 Power Query 接口的组件交互创建新转换步骤时,Power Query 会自动创建执行转换所需的 M 代码,因此无需编写任何代码。

目前,有两种 Power Query 体验可用:

  • Power Query Online - 可以在 Power BI 数据流、Microsoft Power Platform 数据流、Azure 数据工厂整理数据流等集成以及更多通过在线网页提供体验的选项中找到。
  • Power Query for Desktop— 在 Power Query for Excel 和 Power BI Desktop 等集成中找到。

备注

尽管存在两种 Power Query 体验,但它们在每个方案中都提供几乎相同的用户体验。

转换

Power Query 中的转换引擎包括许多预生成的转换函数,这些函数可通过 Power Query 编辑器的图形界面使用。 这些转换可以像删除列或筛选行一样简单,也可以像将第一行用作表标题一样常见。 还有高级转换选项,例如合并、追加、分组、透视和逆透视。

通过选择菜单中的转换选项,然后应用该转换所需的选项,可以实现所有这些转换。 下图显示了 Power Query 编辑器中提供的一些转换。

Power Query 编辑器的“转换”、“开始”和“添加列”选项卡下的转换命令的屏幕截图。

详细信息:快速入门:在 Power BI 中使用 Power Query

数据流

Power Query 可用于许多产品,例如 Power BI 和 Excel。 但是,在产品中使用 Power Query 将限制其使用范围仅限于该特定产品。 数据流是一种在云中运行的 Power Query 体验的不依赖于产品的服务版本。 使用数据流,可以采用相同的方式获取数据和转换数据。 但是,可以将输出存储在其他存储选项(如 Dataverse 或 Azure Data Lake Storage)中,而不是将输出发送到 Power BI 或 Excel。 这样,就可以在其他产品和服务中使用数据流的输出。

详细信息:什么是数据流?

Power Query M 公式语言

在任何数据转换方案中,都有一些转换无法使用图形编辑器以最佳方式完成。 其中一些转换可能需要图形界面当前不支持的特殊配置和设置。 Power Query 引擎在后台使用一种脚本语言来进行所有 Power Query 转换:即 Power Query M 公式语言,也称为 M。

M 语言是 Power Query 的数据转换语言。 查询中发生的任何操作最终都以 M 编写。如果要使用 Power Query 引擎执行高级转换,可以使用高级编辑器访问查询的脚本,并根据需要对其进行修改。 如果发现用户界面函数和转换无法执行所需的确切更改,请使用高级编辑器和 M 语言微调函数和转换。

let
    Source = Exchange.Contents("xyz@contoso.com"),
    Mail1 = Source{[Name="Mail"]}[Data],
    #"Expanded Sender" = Table.ExpandRecordColumn(Mail1, "Sender", {"Name"}, {"Name"}),
    #"Filtered Rows" = Table.SelectRows(#"Expanded Sender", each ([HasAttachments] = true)),
    #"Filtered Rows1" = Table.SelectRows(#"Filtered Rows", each ([Subject] = "sample files for email PQ test") and ([Folder Path] = "\Inbox\")),
    #"Removed Other Columns" = Table.SelectColumns(#"Filtered Rows1",{"Attachments"}),
    #"Expanded Attachments" = Table.ExpandTableColumn(#"Removed Other Columns", "Attachments", {"Name", "AttachmentContent"}, {"Name", "AttachmentContent"}),
    #"Filtered Hidden Files1" = Table.SelectRows(#"Expanded Attachments", each [Attributes]?[Hidden]? <> true),
    #"Invoke Custom Function1" = Table.AddColumn(#"Filtered Hidden Files1", "Transform File from Mail", each #"Transform File from Mail"([AttachmentContent])),
    #"Removed Other Columns1" = Table.SelectColumns(#"Invoke Custom Function1", {"Transform File from Mail"}),
    #"Expanded Table Column1" = Table.ExpandTableColumn(#"Removed Other Columns1", "Transform File from Mail", Table.ColumnNames(#"Transform File from Mail"(#"Sample File"))),
    #"Changed Type" = Table.TransformColumnTypes(#"Expanded Table Column1",{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}, {"Column5", type text}, {"Column6", type text}, {"Column7", type text}, {"Column8", type text}, {"Column9", type text}, {"Column10", type text}})
in
    #"Changed Type"

详细信息:Power Query M 公式语言

可在何处使用 Power Query?

下表列出了 Microsoft 的产品和服务,其中可以找到 Power Query。

产品 M 引擎1 Power Query
Desktop2
Power Query
Online3
数据流4
Excel for Windows 是的 是的
Excel for Mac 是的 是的
Power BI 是的 是的 是的 是的
PowerApps 是的 是的 是的
Power Automate 是的 是的
Power BI 报表服务器 是的 是的
Azure 数据工厂 是的 是的 是的
Microsoft Fabric 中的数据工厂 是的 是的 是的
SQL Server Integration Services 是的
SQL Server Analysis Services 是的 是的
Dynamics 365 Customer Insights 是的 是的 是的
1M 发动机 运行以 Power Query 公式语言(“M”)表示的查询的基础查询执行引擎。
2Power Query Desktop 桌面应用程序中的 Power Query 功能体验。
3Power Query Online 在 Web 浏览器应用程序中找到的 Power Query 体验。
4数据流 Power Query 即在云中运行的服务,与产品无关。 存储的结果可用作服务,应用于其他程序中。