共用方式為


在 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 案例之委派的背景資訊,請檢閱 設定 Analysis Services for Kerberos 限制委派 中的 設定 Analysis Services for trust ed 委派一節。

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

    針對 DirectQuery 模型,應該只有一個針對資料庫定義的連線,而且數據源必須是關係型,且必須是支援的資料庫類型。 請參閱支持的數據源

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

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

    • 使用服務帳戶。 如果 Analysis Services 服務帳戶具有關係資料庫的讀取許可權,則可以選擇此選項。

    • 使用特定使用者名稱與密碼。 指定具有關係資料庫讀取許可權的 Windows 用戶帳戶。

請注意,這些認證僅用於響應關係型數據存放區的查詢;它們與用來處理混合式模型快取的認證不同。

只有在記憶體記憶體使用模型時,就無法使用模擬。 除非模型使用 DirectQuery 模式,否則 ImpersonateCurrentUser設定無效。

驗證 DirectQuery 存取

  1. 在 Management Studio 中使用 SQL Server Profiler 或 xEvents 啟動追蹤,並連線到 SQL Server 上的關係資料庫。

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

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

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

另請參閱

相容性層級
支援的數據源
擴充事件