參考 Power Query 查詢
本文以您作為使用 Power BI Desktop 的數據模型工具為目標。 定義參考其他查詢的 Power Query 查詢時,它會為您提供指引。
讓我們清楚瞭解這是什麼意思: 當查詢參考第二個查詢時,就好像第二個查詢中的步驟會與第一個查詢中的步驟結合,並在之前執行步驟。
請考慮數個查詢: Query1 從 Web 服務源數據,且其負載已停用。 Query2、 Query3 和 Query4 所有參考 Query1,以及其輸出都會載入至數據模型。
重新整理數據模型時,通常會假設Power Query會 擷取 Query1 結果,而且會由參考的查詢重複使用。 這種想法不正確。 事實上,Power Query 會 分別執行 Query2、 Query3 和 Query4 。
您可以認為 Query2 已 內嵌 Query1 步驟。 查詢3 和Query4也是如此。 下圖顯示如何執行查詢的更清楚畫面。
Query1 會執行三次。 多個執行可能會導致數據重新整理緩慢,並且對數據源產生負面影響。
在 Query1 中使用 Table.Buffer 函式不會消除額外的數據擷取。 此函式會將數據表緩衝至記憶體,而緩衝數據表只能在相同的查詢執行中使用。 因此,在範例中,如果在執行 Query2 時緩衝 Query1,則當 Query3 和 Query4 執行時無法使用緩衝處理的數據。 它們本身會再緩衝處理兩次數據。 (由於每個參考查詢都會緩衝處理數據表,所以這個結果實際上可能會使負效能複雜化。
注意
Power Query 快取架構很複雜,而且不是本文的重點。 Power Query 可以快取從數據源擷取的數據。 不過,執行查詢時,可能會多次從數據源擷取數據。
建議
一般而言,我們建議您參考查詢,以避免跨查詢重複邏輯。 不過,如本文所述,此設計方法可能會導致數據重新整理變慢和過度負擔數據源。
建議您改為建立 數據流 。 使用數據流可以改善數據重新整理時間,並減少對數據源的影響。
您可以設計資料流來封裝源資料和轉換。 數據流是 Power BI 服務 中數據的保存存放區,因此其數據擷取速度很快。 因此,即使參考查詢會導致數據流的多個要求,數據重新整理時間也可以改善。
在此範例中,如果 Query1 重新設計為數據流實體, Query2、 Query3和 Query4 就可以使用它作為數據源。 透過此設計,Query1 所建立的實體只會評估一次。
相關內容
如需本文的詳細資訊,請參閱下列資源:
- Power BI 中的自助數據準備
- 在 Power BI 中建立和使用數據流
- 有任何問題嗎? 嘗試在 Power BI 社群提問
- 有任何建議嗎? 貢獻想法來改善 Power BI
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應