什么是 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 访问和转换数据时,需要定义一个可重复的过程(查询),以便将来轻松刷新,获取最新数据。
如果需要修改进程或查询来考虑基础数据或架构更改,则可以使用与最初定义查询时相同的交互式直观体验。
数据量(数据大小)、速度(变化率)和多样性(数据源和数据形状的广度) 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 Desktop 中的 Power Query

数据流

Power Query 可在 Power BI 和 Excel 等许多产品中使用。 但是,在某个产品中使用 Power Query 会将其用途限制在该特定产品中。 数据流是 Power Query 体验的产品无关服务版本,可在云中运行。 使用数据流,你可以以相同的方式获取数据和转换数据,但不能将输出发送到 Power BI 或 Excel,而是将输出存储在其他存储选项(如 Dataverse 或 Azure Data Lake Storage)中。 这样,就可以在其他产品和服务中使用数据流输出。

详情请见:什么是数据流?

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?

下表列出了可在使用 Power Query 的 Microsoft 产品和服务。

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

另请参阅

Power Query 中的数据源
获取数据
Power Query 快速入门
使用 Power Query 塑造和合并数据
什么是数据流