什麼是 Power Query?
Power Query 是數據轉換和數據準備引擎。 Power Query 隨附用於從來源取得數據的圖形化介面,以及用於套用轉換的 Power Query 編輯器。 因為引擎可在許多產品和服務中使用,因此儲存數據的目的地取決於使用Power Query的位置。 使用 Power Query,您可以執行資料的擷取、轉換和載入 (ETL) 處理。
左側具有符號化數據源的圖表,在中央傳遞 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 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」體驗,且為產品無關的服務版本。 您可以使用數據流,以相同方式取得資料並轉換數據。 但是,您可以將輸出儲存在其他記憶體選項中,例如 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?
下表列出包含 Power Query 的 Microsoft 產品和服務。
產品 | M 引擎1 | Power Query 桌面2 |
Power Query 在線3 |
數據流4 |
---|---|---|---|---|
適用於 Windows 的 Excel | 是的 | 是的 | 不 | 不 |
Mac 版 Excel | 是的 | 是的 | 不 | 不 |
Power BI | 是的 | 是的 | 是的 | 是的 |
Power Apps | 是的 | 不 | 是的 | 是的 |
Power Automate | 是的 | 不 | 是的 | 不 |
Power BI 報表伺服器 | 是的 | 是的 | 不 | 不 |
Azure Data Factory | 是的 | 不 | 是的 | 是的 |
Microsoft Fabric 中的 Data Factory | 是的 | 不 | 是的 | 是的 |
SQL Server Integration Services | 是的 | 不 | 不 | 不 |
SQL Server Analysis Services | 是的 | 是的 | 不 | 不 |
Dynamics 365 Customer Insights | 是的 | 不 | 是的 | 是的 |
1M 引擎 | 執行以 Power Query 公式語言(“M”)編寫的查詢的基礎查詢執行引擎。 |
2Power Query Desktop | 在桌面應用程式中找到的 Power Query 體驗。 |
3Power Query Online | 在網頁瀏覽器應用程式中找到的Power Query體驗。 |
4數據流 | Power Query 作為一種在雲端執行並與產品無關的服務。 預存的結果可用於其他應用程式做為服務。 |
相關內容
- Power Query 中的 數據源
- 取得數據
- Power Query 快速入門
- 使用 Power Query 來塑造及合併數據
- 什麼是數據流