共用方式為


在 SSMS 中啟用 DirectQuery 模式

適用于:SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

您可以變更已部署之表格式模型的資料存取屬性,並啟用 DirectQuery 模式,其中查詢會針對後端關聯式資料來源執行,而不是快取位於記憶體內部的資料。

重要

建議您在 Visual Studio 中使用表格式模型設計工具,而不是SQL Server Management Studio (SSMS) 來切換資料儲存模式。 使用 Visual Studio 來變更模型模式,然後追蹤該部署至伺服器時,模型和資料庫會保持同步。此外,變更模型中的儲存模式可讓您檢閱任何發生的驗證錯誤。 使用本文中所述的 SSMS 時,不會報告驗證錯誤。

規格需求

在表格式模型上啟用 DirectQuery 模式的使用是多重步驟程式:

  • 請確定模型沒有可能會在 DirectQuery 模式中造成驗證錯誤的功能,然後將模型上的資料儲存模式從記憶體內部變更為 DirectQuery。

    功能限制的清單記載于 DirectQuery 模式中。

  • 檢閱已部署資料庫用來從後端外部資料庫擷取資料的連接字串和認證。 請確認連線只有一個,而且其設定適用於查詢執行。

    未專為 DirectQuery 設計的表格式資料庫可能會有多個連線,而現在必須為了 DirectQuery 模式的需求減至一個。

    原本用於處理資料的認證現在將用來查詢資料。 檢閱 DirectQuery 組態中的帳戶,如果您對作業使用不同的專屬帳戶,則可能需要加以變更。

    DirectQuery 模式是 Analysis Services 在其中信任委派的唯一案例。 如果您的解決方案需要委派以取得使用者特定的查詢結果,用以連接到後端資料庫的帳戶就必須能夠委派發出要求的使用者身分識別,使用者身分識別則必須要有後端資料庫的讀取權限。

  • 在最後一個步驟,確認 DirectQuery 模式是透過查詢執行來操作。

切換至 DirectQuery 模式

  1. 在 [物件總管] 中,以滑鼠右鍵按一下資料庫 >[屬性>模型>預設模式]。

  2. 將模式設為 [DirectQuery]

    有效值 描述
    DirectQuery 查詢會使用為模型定義的資料來源連線,針對後端關聯式資料庫執行。

    模型的查詢會轉換成原生資料庫查詢,並重新導向到資料來源。

    當您處理設為 DirectQuery 模式的模型時,只會編譯及部署中繼資料。 資料本身在模型外部,位於運作中資料來源的資料庫檔案中。
    匯入 查詢會以 MDX 或 DAX 針對表格式資料庫執行。

    當您處理設定為匯入模式的模型時,會從後端資料來源擷取資料,並儲存在磁片上。 資料庫載入時,資料會完整複製到記憶體中,讓資料表掃描或查詢的速度能夠很快。

    這是表格式模型的預設模式,也是特定 (非關聯式) 資料來源的唯一模式。
    允許 Import 和 DirectQuery。 Azure Analysis Services或Power BI Premium不支援此模式。

檢查連線屬性

切換到 DirectQuery 可能會變更連線的安全性內容,而這取決於資料來源連線的設定方式。 當您變更資料存取模式時,請檢閱模擬和連接字串屬性,以驗證登入對於後端資料庫的持續連線有效。

如需 DirectQuery 案例的使用者身分識別委派相關背景資訊,請檢閱 Configure Analysis Services for Kerberos constrained delegation 中的 設定 Analysis Services 進行受信任委派 一節。

  1. 在物件總管中展開 [連線],然後按兩下連線以檢視其屬性。

    對於 DirectQuery 模型,必須只為資料庫定義了一個連線,而且資料來源必須為關聯式,並屬於支援的資料庫類型。 請參閱 支援的資料來源

  2. 連接字串 應指定伺服器、資料庫名稱,以及 DirectQuery 作業中使用的驗證方法。 如果您使用 SQL Server 驗證,就可以在此處指令資料庫登入。

  3. 模擬資訊 使用於 Windows 驗證。 對 DirectQuery 模式的表格式模型而言,有效選項包括:

    • 使用服務帳戶。 如果 Analysis Services 服務帳戶具有關聯式資料庫的讀取權限,您就可以選擇此選項。

    • 使用特定的使用者名稱和密碼。 請指定具有關聯式資料庫讀取權限的 Windows 使用者帳戶。

請注意,這些認證只用於回應對關聯式資料存放區的查詢;它們不同於處理混合模型快取所用的認證。

當模型只用於記憶體中時,不能使用模擬。 ImpersonateCurrentUser設定無效,除非模型正在使用 DirectQuery 模式。

驗證 DirectQuery 存取

  1. 在連接到 SQL Server 關聯式資料庫的情況下,在 Management Studio 中使用 SQL Server Profiler 或 xEvents 開始追蹤。

    如果您使用 Oracle 或 Teradata,請使用該資料庫平台適用的追蹤工具。

  2. 在 Management Studio 中,輸入然後執行簡單的 MDX 查詢,例如 select <some measure> on 0 from model.

  3. 您應該會在追蹤中看到在關聯式資料庫上執行查詢的證據。

另請參閱

相容性層級
支援的資料來源
擴充事件