web-dev-qa-db-ja.com

DEVからPRO環境へのSSAS展開を簡略化する方法

これが私の問題です。私の会社には、DEV環境のSSASにキューブ、ディメンション(...)を作成する開発者のチームがあります(SSASDEVと呼びましょう)。この環境は、DEV内のSQL Serverデータベースにバインドされています(SQDEVと呼びましょう)。私の仕事は、彼らの仕事をDEV環境からPRO環境に展開することです。このPRO環境(SSASPRO)は、別のSQL Serverデータベース(SQPRO)に基づいています。

とりあえず、開発者チームはSSASでスクリプトを作成し、XMLAスクリプトを送信します。定義されているすべてのセキュリティルールと、このXMLAで指定されている接続文字列を変更する必要があります(セキュリティルールは、環境と接続文字列に応じて異なるロールに基づいているため、 SQL Serverデータベースの)。展開ごとに行うのは大変な作業なので、これを自動化したいと思います。

私が見つけた唯一の方法は

(1)-DEVキューブをスクリプト化し、XMLAをPROに適用します(現在行われていること)。

(2)-キューブを同期します(つまり、セキュリティルールの未処理、再適用、および接続文字列の変更)。

全世界で私だけがこの状況にいるとは思えない!誰かが私にヒントやヒントを持っていますか?別の最も簡単な方法が存在し、それを逃しましたか?私のインターン組織(環境ごとに異なるデータベース)はSSASにとって論理的ではありませんか?

SSAS 2008R2および2012を使用しています

ご回答ありがとうございます!

7
el_grom

さまざまな環境間でSSASプロジェクトを私の場所に展開する方法について説明します。次の一連のPowershellスクリプトを使用します。

パート1:

  • ビルドサーバーから最新バージョンを取得し、ファイルをデプロイして、XMLAの最新の有効バージョンを生成します。
  • 生成されたXMLAをビルドサーバーから取得し、QAサーバーにコピーします。

パート2:

  • 次に、QAサーバーでサーバー名、データベース名(PSスクリプトのパラメーターとして設定)を手動で変更し、必要なすべてのスクリプトがそこにあることを確認します。
  • 1つのPSスクリプトが結果のXMLAを現在のQAサーバーで実行するため、SSASデータベースが作成されます(ただし処理されません)。
  • キューブとそのディメンションの完全なプロセスを命令するXMLAスクリプト。

これらの手順はすべて、可能な限り自動的に行われ、開発者/ QA担当者の介入は最小限に抑えられます。ただし、心を安全に保つために、間に目玉を挿入します。それが最高だとは言いませんが、それは機能し、仕事を成し遂げます。最後のステップの前に、XMLAスクリプトを挿入して既存のロールを削除し、新しいロールを作成できると確信しています。また、PSスクリプトを変更して新しいSQLまたはXMLAスクリプトを実行するのは難しいことではありません。役割と権限はそれほど変化しないので、スクリプト化して再利用できると思います。

PS:これは、ドメインユーザーと固定サーバーのある環境です(共有、ドメインアカウント、およびそれらすべてを使用できます)。別の環境を使用している場合、それを実行するのはより困難な場合があります。

2
Marian

それは数年前ですが、これが私たちが以前の立場で働いていたものだと思います。

役割はあるが役割メンバーはないASデータベースから始めて、メンバーを追加するスクリプトを生成し、別のXMLファイルとして保存します。また、削除する必要のあるメンバーがある場合は、それも別のファイルとしてスクリプトを作成します。

ASデータベースを新しいインスタンスに移行する場合、これらの権限スクリプトは、メインデータベースの完了後に実行されます。それらをpowershellまたはSSISで実行して、デプロイメントの自動化に移行できます。

これをさらに自動化するには、個々の権限をスクリプト化し、ASデータベースと権限とスクリプトの場所の関係を含むSQLデータベーステーブルをいくつか作成します。次に、PowershellまたはSSISを使用して、展開プロセスの一部としてプログラムでASデータベースにアクセス許可を適用します。

要約すると、作成したロールは、すべての環境(およびTFS)で持続できます。これは、環境間で変更する必要があるロールのメンバーであり、スクリプトで処理できます。初期設定には多少の投資が必要ですが、完了するとかなりスムーズに動作します。

0
Wes H