什麼是 Power Query?
Power Query 是資料轉換及資料準備引擎。 Power Query 隨附用於從來源取得數據的圖形化介面,以及套用轉換的 Power Query 編輯器。 引擎在許多產品與服務中皆可使用,因此儲存資料的目的地將取決於使用 Power Query 所在的位置。 使用 Power Query,您可以執行資料的擷取、轉換和載入 (ETL) 處理。
左側具有符號化數據源的圖表,在中央傳遞 Power Query 以進行轉換,然後移至右側的四個目的地:Microsoft Azure Data Lake 儲存體、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 Data Factory 整頓數據流,以及透過在線網頁提供體驗的更多功能。
- Power Query for Desktop — 可在 Power Query for Excel 和 Power BI Desktop 等整合中找到。
注意
雖然有兩個 Power Query 體驗存在,但它們在每一個案例中都提供幾乎相同的用戶體驗。
轉換
Power Query 中的轉換引擎包含許多預先建置的轉換函式,可透過 Power Query 編輯器 的圖形化介面使用。 這些轉換可以像移除數據行或篩選數據列一樣簡單,也可以像使用第一個數據列做為數據表標頭一樣通用。 還有進階轉換選項,例如合併、附加、分組、樞紐和取消樞紐。
在功能表中選擇轉換選項,然後套用該轉換所需的選項,即可進行所有這些轉換。 下圖顯示 Power Query 編輯器 中可用的一些轉換。
詳細資訊: 快速入門:在 Power BI 中使用 Power Query
資料流程
Power Query 可用於許多產品,例如 Power BI 和 Excel。 不過,在產品內使用Power Query 會將其使用量限製為僅限該特定產品。 數據流 是雲端中執行之 Power Query 體驗的產品無從驗證服務版本。 您可以使用數據流,以相同方式取得數據並轉換數據,但您可以將輸出傳送至 Power BI 或 Excel,您可以將輸出儲存在其他記憶體選項中,例如 Dataverse 或 Azure Data Lake 儲存體。 如此一來,您就可以在其他產品和服務中使用數據流的輸出。
詳細信息: 什麼是數據流?
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 產品和服務。
Products | M 引擎1 | Power Query 桌面2 |
Power Query 在線3 |
數據流4 |
---|---|---|---|---|
適用於 Windows 的 Excel | Yes | .是 | 無 | No |
Mac 版 Excel | Yes | .是 | 無 | No |
Power BI | Yes | .是 | .是 | Yes |
Power Apps | 是 | 無 | .是 | Yes |
Power Automate | 是 | 無 | .是 | No |
Power BI 報表伺服器 | Yes | .是 | 無 | No |
Azure Data Factory | 是 | 無 | .是 | Yes |
Microsoft Fabric 中的 Data Factory | 是 | 無 | .是 | Yes |
SQL Server Integration Services | 是 | 無 | 無 | No |
SQL Server Analysis Services | Yes | .是 | 無 | No |
Dynamics 365 Customer Insights | 是 | 無 | .是 | Yes |
1M 引擎 | 執行以 Power Query 公式語言(“M” 表示之查詢的基礎查詢執行引擎)。 |
2Power Query Desktop | 在傳統型應用程式中找到的Power Query體驗。 |
3Power Query Online | 在網頁瀏覽器應用程式中找到的Power Query體驗。 |
4數據流 | Power Query 即服務,可在雲端中執行,且與產品無關。 預存的結果可用於其他應用程式做為服務。 |
另請參閱
Power Query 中的數據源
取得數據
Power Query 快速入門
使用 Power Query 塑造和合併數據
什麼是數據流