共用方式為


在 Power BI 中記錄查詢診斷

在 Power Query 中撰寫時,基本工作流程是連接資料來源,套用一些轉換,可能在 Power Query 編輯器中重新整理資料,然後載入到 Power BI 模型。 一旦它進入 Power BI 模型,你可以在 Power BI Desktop 中不時刷新(如果你使用 Power BI Desktop 來查看分析),這與在 Power BI 服務中進行的刷新不同。

雖然你在撰寫流程結束、在編輯器中刷新或在 Power BI 中重新整理可能會得到類似的結果,但軟體對不同使用者體驗所做的評估截然不同。 在這些不同工作流程中進行查詢診斷時,了解會發生什麼很重要,這樣你才不會對截然不同的診斷資料感到驚訝。

要啟動查詢診斷,請前往 Power Query 編輯器功能區中的 工具 標籤。 這裡給你幾個不同的選擇。

查詢診斷控制。

這裡有兩個主要選項,「診斷步驟」和「開始診斷」(搭配「停止診斷」一起使用)。 前者會提供查詢到所選步驟的資訊,對於了解查詢中本地或遠端執行的操作最有用。 後者讓你對其他多種案例有更多了解,下面將討論。

連接器細節

需要指出的是,無法涵蓋查詢診斷中所有不同的組合。 有很多事情會改變你在結果中看到的內容:

  • Connector
  • 已應用的轉換
  • 你正在運行的系統
  • 網路設定
  • 進階配置選擇
  • ODBC 配置

為了提供最廣泛的涵蓋,本文件將聚焦於 Northwind 客戶資料表的查詢診斷,涵蓋 SQL 與 OData。 OData 筆記使用 OData.org 網站上的公開端點,而你則需要自己提供 SQL 伺服器。 許多資料來源會與這些有顯著差異,且會隨著時間增加連接器專用文件。

啟動/停止診斷

「開始診斷」和「停止診斷」比「診斷步驟」更廣泛適用,但也會提供更多你需要整理的資訊。 例如,當您開始診斷、重新整理預覽,然後停止作業時,這會提供等同於在每個步驟上執行診斷步驟的資訊(因為 Power Query 在編輯器中會獨立刷新每個步驟)。

要開始錄影,選擇 開始診斷,執行你想要的評估(撰寫、預覽刷新、完整刷新),然後選擇 停止診斷

編寫

創作工作流程的主要差異在於,它通常會產生比其他工作流程更多的個別評估。 如主要的查詢診斷文章所述,這些結果源於填入各種使用者介面,例如導覽器或篩選下拉選單。

我們來舉一個例子。 這個範例中我們使用 OData 連接器,但在檢視輸出時,我們也會參考同一資料庫的 SQL 版本。 對於這兩個資料來源,我們都會透過「新來源」、「近期來源」或「取得資料」來連結到資料來源。 若要進行 SQL 連線,您需要輸入伺服器的認證信息;而對於公開的 OData 端點,您可以輸入上面連結的端點。

OData 連結。

連接並選擇認證後,從 OData 服務中選擇 客戶 資料表。

北風導航。

這會讓你看到 Power Query 介面中的 Customers 資料表。 假設我們想知道不同國家/地區有多少銷售代表。 首先,在聯絡人標題欄下右鍵點擊「銷售代表」,滑鼠移到「文字篩選」上,選擇「等號」。

將文字過濾器套用到聯絡人標題。

現在,從功能區中選擇群組,並依國家分組,總計為計數

套用群組依據。

這應該會給你與下方相同的數據。

結果。

最後,回到功能區 的工具標籤, 選擇 停止診斷。 這樣就能停止追蹤,幫你建立診斷檔案,摘要和詳細表格會顯示在左側。

如果你追蹤整個創作工作階段,通常會看到像是原始查詢評估,接著是與相關導航器相關的評估,然後每個步驟至少會發出一個查詢(根據具體使用者體驗操作可能會有更多查詢)。 在某些連接器中,為了效能考量,會進行平行評估,結果會得到非常相似的資料集。

刷新預覽

當你完成資料轉換後,查詢會有一連串步驟。 當你在 Power Query 編輯器中按下「重新整理預覽」或「全部重新整理」時,查詢診斷中不會只顯示一個步驟。 原因在於,Power Query 編輯器中的刷新會明確地以最後應用的步驟為結束點進行查詢刷新,然後再依序回溯所應用的步驟,並重新整理該查詢,一直到回到資料來源。

這表示如果你的查詢中有五個步驟,包括 Source 和 Navigator,你會預期在診斷中看到五個不同的評估。 第一個,按時間順序來看,通常(但不總是)會花最久的時間。 這是因為兩個不同的原因:

  • 它可能會快取輸入資料,使後續的查詢(即使用者查詢的早期步驟)能夠在本地更快速地存取。
  • 它可能已經應用了某些轉換,從而大幅減少需要回傳的資料量。

請注意,當提到「全部重新整理」時,表示它會刷新所有查詢,您需要篩選出您所關心的查詢,這是可以預料的。

完整重新整理

查詢診斷可以用來診斷 Power BI 刷新過程中所發出的所謂「最終查詢」,而不僅僅是 Power Query 編輯器的體驗。 要做到這點,你首先需要將資料載入一次到模型。 如果你打算這麼做,請確保你知道,如果你選擇關閉並套用,編輯器視窗將關閉(中斷追蹤),所以你要在第二次重新整理時執行,或者選擇關閉並套用下拉選單圖示,然後選擇套用

套用查詢變更。

無論如何,務必在編輯器工具標籤的診斷區選擇開始診斷。 完成後,重新整理你的模型,或至少更新你關心的表格。

重新整理表格。

資料載入模型完成後,選擇 停止診斷

你可以預期會看到某些種類的元資料和資料查詢結合。 元資料呼叫會收集它所能的關於資料來源的資訊。 資料檢索是指存取資料來源、發出經過優化操作後的最終資料來源查詢,然後在本地完成任何尚未完成的評估。

重要的是要注意,僅因為你在診斷中看到資源(資料庫、網頁端點等)或資料來源查詢,並不代表它一定在執行網路活動。 Power Query 可能會從快取中擷取這些資訊。 未來更新中,我們將說明是否會從快取中擷取資訊,以便更方便診斷。

診斷步驟

「診斷步驟」更適合了解單一步驟內的評估,幫助你辨識該步驟前的效能狀況,以及查詢中哪些部分是本地或遠端執行的。

如果你在我們上面建立的查詢中使用「診斷步驟」,你會發現它只會回傳大約 10 列左右,如果我們用資料來源查詢查看最後一列,就能大致知道我們對資料來源的最終查詢會是什麼。 在此案例中,我們可以看到銷售代表是遠端篩選,但分組(排除法)是在本地進行的。

診斷篩選並分組的客戶資料表。

如果你開始和停止診斷並重新整理同一個查詢,我們會得到 40 筆資料,因為如前所述,Power Query 會取得每一步的資訊,而不僅僅是最後一步。 當你只想深入了解查詢的某一部分時,這會變得更加困難。

進一步閱讀

專題介紹

更多關於解讀和視覺化您所記錄的追蹤資料

如何利用查詢診斷來理解哪些查詢操作正在被綜合