Share via


在 Power BI 中記錄查詢診斷

在 Power Query 中撰寫時,基本工作流程是連接到數據源、套用一些轉換、在 Power Query 編輯器中重新整理您的數據,然後將它載入 Power BI 模型。 一旦它位於 Power BI 模型中,您可以在 Power BI Desktop 中不時重新整理它(如果您使用 Desktop 來檢視分析),除了您在服務中執行的任何重新整理之外。

雖然您可能會在撰寫工作流程結束時取得類似的結果、在編輯器中重新整理,或在Power BI 中重新整理,但軟體會針對所提供的不同使用者體驗執行非常不同的評估。 請務必知道在這些不同工作流程中執行查詢診斷時,應該期待什麼,因此您不會驚訝於非常不同的診斷數據。

若要啟動查詢診斷,請移至 Power Query 編輯器功能區中的 [工具 ] 索引標籤。 您在這裡會看到幾個不同的選項。

查詢診斷控制件。

這裡有兩個主要選項:[診斷步驟] 和 [啟動診斷] (與 [停止診斷] 配對)。 前者會提供您查詢的相關信息,最多到選取的步驟,而且最適合用來瞭解在本機或遠端查詢中執行的作業。 後者可讓您更深入地瞭解以下討論的各種其他案例。

連線 或特定數據

請務必提及,無法涵蓋您在查詢診斷中看到的所有不同排列。 有許多專案可以完全改變您在結果中看到的內容:

  • 連接器
  • 套用的轉換
  • 您正在執行的系統
  • 網路組態
  • 進階組態選項
  • ODBC 組態

針對最廣泛的涵蓋範圍,本檔將著重於 SQL 和 OData 上的 Northwind Customers 數據表查詢診斷。 OData 注意事項會使用 OData.org 網站中找到的公用端點,而您必須自行提供 SQL Server。 許多數據源會與這些數據源有很大的不同,而且會隨著時間新增連接器特定檔。

啟動/停止診斷

「啟動診斷」和「停止診斷」比「診斷步驟」更廣泛,但也會為您提供更多需要排序的資訊。 例如,啟動診斷、重新整理預覽,然後停止可讓您對等的資訊在每個步驟上執行診斷步驟(因為Power Query 在編輯器中如何獨立重新整理每個步驟)。

若要開始錄製,請選取 [啟動診斷],執行您想要的任何評估(撰寫、預覽重新整理、完整重新整理),然後選取 [停止診斷]。

編寫

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

我們將逐步解說範例。 我們在此範例中使用 OData 連接器,但在檢閱輸出時,我們也會查看相同資料庫的 SQL 版本。 針對這兩個數據源,我們將透過「新增來源」、「最近的來源」或「取得數據」連線至數據源。 針對 SQL 連線,您必須為伺服器放入認證,但針對公用 OData 端點,您可以放入上方連結的端點。

OData 連線。

線上並選擇驗證之後,請從 OData 服務選取 [客戶 ] 資料表。

Northwind 流覽。

這會顯示Power Query 介面中的 Customers 資料表。 假設我們想要知道不同國家/地區有多少銷售代表。 首先,以滑鼠右鍵按兩下 [聯繫人標題] 資料行底下的 [銷售代表],將滑鼠停留在 [文字篩選] 上,然後選取 [等於]。

將文字篩選套用至聯繫人標題。

現在,從功能區選取 [分組依據 ],然後依國家/ 地區執行分組,您的匯總為 Count

套用群組依據。

這應該會顯示您在下面看到的相同數據。

結果。

最後,流覽回 功能區的 [工具] 索引標籤,然後選取 [ 停止診斷]。 這會停止追蹤併為您建置診斷檔案,而摘要和詳細數據表會出現在左側。

如果您追蹤整個撰寫會話,您通常會預期會看到類似來源查詢評估的內容,然後與相關導覽器相關的評估,然後至少針對您套用的每個步驟發出一個查詢(視所採取的確切 UX 動作而定)。 在某些連接器中,平行評估會因為效能原因而發生,因此會產生非常類似的數據集。

重新整理預覽

當您完成數據轉換之後,查詢中有一連串的步驟。 當您在 Power Query 編輯器中按 [重新整理預覽] 或 [全部重新整理] 時,您不會只看到查詢診斷中的一個步驟。 原因是在 Power Query 編輯器 中重新整理會明確重新整理以最後一個步驟結尾的查詢,然後逐步執行套用的步驟,並重新整理查詢到該點,回到來源。

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

  • 它可能會快取查詢在查詢之後執行的輸入數據(代表用戶查詢中的先前步驟)可以在本機更快存取。
  • 它可能會套用轉換,以大幅截斷傳回多少數據。

請注意,當談論「全部重新整理」時,它會重新整理所有查詢,而您必須依預期篩選出您關心的查詢。

完整重新整理

查詢診斷可用來診斷在Power BI 中重新整理期間發出的所謂「最終查詢」,而不只是Power Query 編輯器體驗。 若要這樣做,您必須先將數據載入模型一次。 如果您打算這樣做,請確定您發現,如果您選取 [關閉並套用編輯器] 視窗將會關閉 (中斷追蹤),因此您需要在第二次重新整理時執行此動作,或選取 [關閉] 和 [套用] 底下的下拉式清單圖示,然後改為選取 []。

套用查詢變更。

無論哪種方式,請務必在編輯器中 [工具] 索引卷標的 [診斷] 區段上選取 [啟動診斷]。 完成此重新整理模型之後,或甚至只是您關心的數據表。

重新整理數據表。

將數據載入模型之後,請選取 [ 停止診斷]。

您可以預期會看到元數據和數據查詢的一些組合。 元數據呼叫會擷取其可取得數據源的相關信息。 數據擷取是關於存取數據源、發出最後一個包含摺疊作業的數據源查詢,然後在本機上執行遺漏的任何評估。

請務必注意,只是因為您在診斷中看到資源(資料庫、Web 端點等)或數據源查詢,這並不表示它必須執行網路活動。 Power Query 可以從其快取擷取此資訊。 在未來的更新中,我們將指出是否要從快取擷取資訊,以便更容易診斷。

診斷步驟

「診斷步驟」更適合讓您深入瞭解評估發生在單一步驟上的情況,這可協助您找出該步驟、效能為何,以及查詢在本機或遠端執行的部分。

如果您在我們上面建置的查詢上使用「診斷步驟」,您會發現它只會傳回 10 個左右的數據列,如果我們查看數據源查詢的最後一個數據列,我們就能非常了解最後向數據源發出的查詢。 在此情況下,我們可以看到銷售代表已從遠端篩選,但群組(依消除程式)發生在本機。

診斷已篩選和分組的 Customers 數據表。

如果您啟動和停止診斷並重新整理相同的查詢,我們會收到 40 個數據列,因為如上所述,Power Query 會取得每個步驟的資訊,而不只是最後一個步驟。 這讓您更難了解查詢的某個特定部分。

延伸閱讀

功能簡介

深入瞭解如何讀取和可視化記錄的追蹤

如何使用查詢診斷來瞭解哪些查詢作業折疊