共用方式為


參考 Power Query 查詢

本文以您作為使用 Power BI Desktop 的數據模型工具為目標。 定義參考其他查詢的 Power Query 查詢時,它會為您提供指引。

讓我們清楚瞭解這是什麼意思: 當查詢參考第二個查詢時,就好像第二個查詢中的步驟會與第一個查詢中的步驟結合,並在之前執行步驟。

請考慮數個查詢: Query1 從 Web 服務源數據,且其負載已停用。 Query2Query3Query4 所有參考 Query1,以及其輸出都會載入至數據模型。

Diagram showing the Query Dependencies view, displaying queries described in the previous paragraph.

重新整理數據模型時,通常會假設Power Query會 擷取 Query1 結果,而且會由參考的查詢重複使用。 這種想法不正確。 事實上,Power Query 會 分別執行 Query2Query3Query4

您可以認為 Query2內嵌 Query1 步驟。 查詢3Query4也是如此。 下圖顯示如何執行查詢的更清楚畫面。

Diagram showing a modified version of the Query Dependencies view, displaying Query 2, Query 3, and Query 4.

Query1 會執行三次。 多個執行可能會導致數據重新整理緩慢,並且對數據源產生負面影響。

在 Query1 中使用 Table.Buffer 函式不會消除額外的數據擷取。 此函式會將數據表緩衝至記憶體,而緩衝數據表只能在相同的查詢執行中使用。 因此,在範例中,如果在執行 Query2緩衝 Query1,則當 Query3Query4 執行時無法使用緩衝處理的數據。 它們本身會再緩衝處理兩次數據。 (由於每個參考查詢都會緩衝處理數據表,所以這個結果實際上可能會使負效能複雜化。

注意

Power Query 快取架構很複雜,而且不是本文的重點。 Power Query 可以快取從數據源擷取的數據。 不過,執行查詢時,可能會多次從數據源擷取數據。

建議

一般而言,我們建議您參考查詢,以避免跨查詢重複邏輯。 不過,如本文所述,此設計方法可能會導致數據重新整理變慢和過度負擔數據源。

建議您改為建立 數據流 。 使用數據流可以改善數據重新整理時間,並減少對數據源的影響。

您可以設計資料流來封裝源資料和轉換。 數據流是 Power BI 服務 中數據的保存存放區,因此其數據擷取速度很快。 因此,即使參考查詢會導致數據流的多個要求,數據重新整理時間也可以改善。

在此範例中,如果 Query1 重新設計為數據流實體, Query2Query3Query4 就可以使用它作為數據源。 透過此設計,Query1建立的實體只會評估一次。

如需本文的詳細資訊,請參閱下列資源: