有了 Power BI Desktop,當您連接到資料來源時,隨時可將資料的複本匯入 Power BI Desktop。 對於某些資料來源,可用的替代方式是:使用 DirectQuery直接連接到資料來源。

支援的資料來源

目前支援下列資料來源︰

如何使用 DirectQuery 連接

當您使用 [取得資料] 連接到 DirectQuery 所支援的資料來源時,連接視窗可讓您選取想要的連接方式。

選取 [匯入] 和 [DirectQuery] 的差異如下:

匯入 – 將選取的資料表和資料行匯入 Power BI Desktop 中。 當您建立視覺效果或與其互動時,Power BI Desktop 會使用匯入的資料。 您必須重新整理資料,再次匯入完整的資料集,以查看自初始匯入或最近重新整理之後,基礎資料發生的任何變更。

DirectQuery – 沒有任何資料匯入或複製到 Power BI Desktop。 選取的資料表和資料行會出現在 [欄位] 清單。 當您建立視覺效果或與其互動時,Power BI Desktop 會查詢基礎資料來源,這表示您一直都在檢視當下的資料。

使用 DirectQuery時,有許多資料模型和資料轉換可以使用,但仍有一些限制。 在建立視覺效果或與其互動時,必須查詢基礎來源,而且重新整理視覺效果所需的時間會視基礎資料來源的效能而定。 當服務要求所需的資料在最近已被要求時,Power BI Desktop 便會使用目前的資料,來減少顯示視覺效果所需的時間。 從 [主資料夾] 功能區選取 [重新整理] 可確保所有視覺效果都以目前的資料重新整理。

如需使用 DirectQuery 時之優點、限制和重要考量的詳細資訊,請參閱下列各節。

使用 DirectQuery 的優點

使用 DirectQuery 有一些好處:

  • DirectQuery 可讓您透過非常大型的資料集建立視覺效果,原本在此狀況要先匯入所有資料並不可行

  • 基礎資料變更可能需要重新整理資料,而針對某些報表,顯示目前的資料可能需要大量資料傳輸,造成重新匯入資料不太可行。 相較之下, DirectQuery 報表一律會使用目前的資料

  • 1 GB 的資料集限制「不」適用於 DirectQuery

DirectQuery 的限制

目前使用 DirectQuery會有一些限制:

  • 所有資料表都必須來自單一資料庫

  • 如果 [查詢編輯器] 查詢過於複雜,將會發生錯誤。 若要修正錯誤,您必須在 [查詢編輯器] 中刪除有問題的步驟,或「匯入」資料,而不要使用 DirectQuery

  • 關聯性篩選僅限於單一方向,而不是兩個方向

  • DirectQuery 中不提供時間智慧功能。 例如,DirectQuery 模式不支援日期資料行 (年、季、月、日等) 的特殊處理。

  • 根據預設,量值中允許的 DAX 運算式會有所限制,請參閱下列段落,了解詳細資訊

  • 使用 DirectQuery 傳回資料時,限制為 1 百萬個資料列。 這不會影響用來建立使用 DirectQuery傳回的資料集彙總或計算,只會影響傳回的資料列。 比方說,您可以使用在資料來源執行的查詢彙總 10 萬個資料列,並使用 DirectQuery準確地將該彙總的結果傳回 Power BI,只要傳回 Power BI 的資料小於 1 百萬個資料列即可。 如果從 DirectQuery傳回的資料列超過 1 百萬個,Power BI 便會傳回錯誤。

為確保傳送至基礎資料來源的查詢皆具有足夠的效能,系統根據預設會對量值有所限制。 進階使用者可以選擇略過此限制,方法是選取 [檔案] > [選項],然後選取 [設定] > [選項] > [DirectQuery],再選取 [允許在 DirectQuery 模式中量值不受限制]* 選項。 選取該選項後,即可使用任何適用於量值的 DAX 運算式。 不過使用者也必須了解,在匯入資料時效能很好的某些運算式,在 DirectQuery 模式中可能會導致後端來源的查詢速度緩慢。

使用 DirectQuery 時的重要考量

使用 DirectQuery 時,應考慮下列三點:

  • 效能和負載 - 所有 DirectQuery 要求都會傳送到來源資料庫,因此重新整理視覺效果所需的時間,取決於該後端來源回應一或多個查詢結果所花費的時間。 針對視覺效果使用 DirectQuery 的建議回應時間 (正在傳回要求的資料) 為 5 秒 (含) 以下,建議的結果回應時間上限為 30 秒。 超過此時間會讓取用報表的使用者體驗低落至無法接受的程度。 此外,將報表發行至 Power BI 服務之後,超過幾分鐘的任何查詢都會逾時,而且使用者會收到錯誤。

    您也必須考慮來源資料庫上的負載,這會視取用已發行報表的 Power BI 使用者數目而定。 使用「資料列層級安全性」(RLS) 也可能會造成顯著的影響;由多位使用者共用的非 RLS 儀表板磚會對資料庫產生單一查詢,但在儀表板磚使用 RLS 通常表示需要「每位使用者」查詢一次才能重新整理磚,因而大幅增加來源資料庫上的負載並可能影響效能。

    Power BI 會建立盡可能有效率的查詢。 不過在特定情況下,產生的查詢可能效率不足,而無法避免重新整理失敗。 這種情況的其中一個範例是,產生的查詢會從後端資料來源擷取非常大量的資料列 (超過 1 百萬個),因而發生下列錯誤:

    The resultset of a query to external data source has exceeded
    the maximum allowed size of '1000000' rows.
    

    如果有一個簡單圖表包含基數很高的資料行,而且彙總選項設定為 [不摘要],就可能會發生此情況。 此視覺效果必須只能包含其基數低於 1 百萬的資料行,否則就必須套用適當的篩選。

  • 安全性 - 所有取用已發行報表的使用者,都會使用發行至 Power BI 服務之後輸入的認證來連接到後端資料來源。 此情況與匯入資料相同:不論後端來源中是否有定義任何安全性規則,所有使用者都會看到相同的資料。

  • 支援的功能 - DirectQuery 模式不支援 Power BI Desktop 的所有功能,或有一些限制。 此外,使用 DirectQuery 的資料集無法使用 Power BI 服務的某些功能 (例如 [深入資訊摘要])。 因此,決定是否要使用 DirectQuery 時,應該考慮使用 DirectQuery 時的這類功能限制。

發行至 Power BI 服務

使用 DirectQuery 建立的報表可以發行至 Power BI 服務。

如果使用的資料來源是 Azure SQL DatabaseAzure SQL 資料倉儲,就必須提供認證,才能讓已發行的報表顯示在 Power BI 服務。

您可以提供認證,方法是選取 Power BI 中的 設定 齒輪圖示,然後選取 [設定] 。

Power BI 會顯示 [設定] 視窗。 從該處選取 [資料集] 索引標籤,選擇使用 DirectQuery 的資料集,然後選取 [編輯認證]。

除非提供認證,否則開啟已發行的報表,或探索使用連接至 Azure SQL DatabaseAzure SQL 資料倉儲DirectQuery 建立的資料集會產生錯誤。

如為 Azure SQL DatabaseAzure SQL 資料倉儲 以外之使用 DirectQuery 的其他資料來源,必須安裝企業閘道器,而且必須註冊資料來源以建立資料連線。 您可以深入了解企業閘道