GCS(Google Cloud Storage)に配置したファイルを、SQL Server搭載済の仮想マシンに転送し、SQL Serverにデータロードし、データロードしたデータを利用してデータ分析用のデータ(ディメンション・キューブ)であるSSASプロジェクトを、SQL Server Analysis Serverに配置するところまで、一括で実施できるJavaプログラムを作成したため、その内容について共有する。
今回は、SSASプロジェクトがデプロイ時に確実に更新されるよう、デプロイ前にSQL Server Analysis Serverから、データ分析用のデータ(ディメンション・キューブ)であるSSASプロジェクトを削除する処理を入れているので、その内容について述べる。
SSASプロジェクトを削除するためのスクリプトは、以下のように、SQL Server Analysis Server上のSSASプロジェクトを右クリックし、Script Database as →DELETE toを順次選択し、ファイル出力することで作成できる。
ただし、上記のままだとSSASプロジェクトが存在しない場合に削除しようとする際にエラーになるため、以下のように、「IgnoreFailures=”true”」を付与して利用する。
また、このxmlaファイルを使用して削除するためには、WindowsのPowerShell上で、Invoke-ASCmdというコマンドレット(PowerShellで利用可能なコマンド)を利用する。
以下のように、「Invoke-ASCmd -InputFile:(XMLAファイルパス) -Server:localhost」と指定する。
上記コマンドの実行前・実行後の画面は以下のようになる。
<実行前>
<実行後>
また、コマンドプロンプトから、「powershell -Command Invoke-ASCmd -InputFile:(XMLAファイルパス) -Server:localhost」と指定しても、同じ動作になる。
なお、WindowsのPowerShellは、Windows7以降のOSでは標準で搭載されているが、Invoke-ASCmdというコマンドレットは搭載されていないため、別途インストールが必要。その手順は以下の通り。
1) Windows PowerShellを管理者モードで起動する
2) 「Install-Module -Name SqlServer -AllowClobber」コマンドを実行する
なお、下記画面のように「Install-Module -Name SqlServer」コマンドではエラーになったため、「-AllowClobber」オプションを付与して実行している
3) 「Get-Command Invoke-ASCmd」を実行し、「Invoke-ASCmd」コマンドがインストールされたことを確認する