Sql-Server

如何簡化從 DEV 到 PRO 環境的 SSAS 部署

  • June 1, 2017

這是我的問題:在我的公司中,有一個開發人員團隊在 DEV 環境中的 SSAS 中創建多維數據集、維度(…)(我們稱之為 SSASDEV)。此環境綁定到 DEV 中的 SQL Server 數據庫(我們稱之為 SQDEV)。我的工作是將他們的工作從 DEV 環境部署到 PRO 環境。此 PRO 環境 (SSASPRO) 基於另一個 SQL Server 數據庫 (SQPRO)。

現在,開發團隊編寫 SSAS 腳本,向我發送 XMLA 腳本,我需要更改定義的每個安全規則和此 XMLA 中指定的連接字元串(安全規則,因為它基於不同的角色,具體取決於環境和連接字元串,因為SQL Server 數據庫)。每次部署都是一項繁重的工作,所以我想將其自動化。

我找到的唯一方法是

(1) - 為 DEV 多維數據集編寫腳本並在 PRO 上應用 XMLA(現在已完成)。

(2) - 同步多維數據集(這意味著,取消處理、重新應用安全規則並修改連接字元串)。

我無法想像我是全世界唯一一個處於這種情況的人!有人對我有小費或提示嗎?是否存在另一種最簡單的方法而我錯過了?我的實習生組織(每個環境的不同數據庫)不適合 SSAS 嗎?

我使用 SSAS 2008R2 和 2012

非常感謝您的回复!

我將告訴您我們在不同環境之間部署 SSAS 項目的方式。我們使用一組 Powershell 腳本:

第1部分:

  • 從建構伺服器獲取最新版本並部署文件以生成 XMLA 的最新工作版本;
  • 從建構伺服器獲取生成的 XMLA 並將其複製到 QA 伺服器;

第2部分:

  • 現在,在 QA 伺服器上,我們手動更改伺服器名稱、數據庫名稱(設置為 PS 腳本的參數),我們驗證所有必需的腳本都在那裡;
  • 一個 PS 腳本在目前 QA 伺服器上執行生成的 XMLA,因此創建了 SSAS 數據庫(但未處理);
  • 一個 XMLA 腳本,用於命令多維數據集及其維度的完整過程;

所有這些步驟都盡可能自動完成,開發人員/QA 人員的干預盡可能少。不過,我們確實會在兩者之間插入一些眼球,只是為了保證我們的思想安全。我不會說它是最好的,但它可以工作並完成工作。在最後一步之前,我確信您可以插入任何 XMLA 腳本來刪除現有角色並創建新角色。並且更改 PS 腳本以執行一些新的 SQL 或 XMLA 腳本一點也不難。我想角色和權限不會發生太大變化,因此可以編寫腳本和重用它們。

PS:這是一個有域使用者和固定伺服器的環境(所以我們可以使用共享、域帳戶和所有這些東西)。如果您有另一個環境,​​則完成它可能會更加困難。

已經有幾年了,但我相信這就是我們在以前的職位上所做的工作。

從具有角色但沒有角色成員的 AS 數據庫開始,生成腳本以添加成員並將它們保存為單獨的 XML 文件。此外,如果有任何成員需要刪除,也可以將其編寫為單獨的文件。

將 AS 數據庫遷移到新實例時,這些權限腳本在主數據庫完成後執行。您可以使用 powershell 或 SSIS 執行它們以實現自動化部署。

為了進一步自動化,您可以為每個單獨的權限編寫腳本,並製作幾個 SQL 數據庫表,其中包含 AS 數據庫與權限和腳本位置之間的關係。然後使用 powershell 或 SSIS 以程式方式將權限應用於 AS 數據庫作為部署過程的一部分。

總之,您創建的角色可以保留在您的所有環境(和 TFS)中。只是角色的成員需要在環境之間改變,可以用腳本來處理。初始設置需要一些投資,但一旦完成,它就會執行得相當順利。

引用自:https://dba.stackexchange.com/questions/33390