22.06.2017

Automatisiertes Deployment einer BI Solution – Teil 4: SSAS

Technical Value

In Teil 1 und Teil 2 dieser Blog-Serie habe ich demonstriert, wie SSIS-Projekte mit Hilfe der Power Shell deployed werden können. Teil 3 hat sich mit der Bereitsstellung der Datenbank befasst. Jetzt fehlt es uns noch an einem Analysis-Services-Cube – oder kurz: SSAS-Cube – bzw. einigen Reports für ein vollständiges BI-Projekt. Entsprechend möchte ich mich in diesem abschließenden Teil dem Deployment eines SSAS-Cubes mit Hilfe der PowerShell widmen.

SSAS-Projekte erstellen

Wie schon in den vorangegangenen Schritten muss auch das SSAS-Projekt zunächst über einen Build-Prozess erstellt werden. Hierbei werden die folgenden Dateien generiert:

  • *.asdatabase
    Definition der AS Datenbank und der darin enthaltenen Objekte
  • *.deploymentoptions
    Deploymentoptionen analog der Einstellungen im Projekt (z.B. vollständiges Deployment, nur Änderungen, Rollen beibehalten, etc.)
  • *.deploymenttargets
    Definiert die Zielumgebung für das Deployment (z.B. Server und AS Datenbankname)
  • *.configsettings
    Beinhaltet z.B. die Verbindungsinformationen zur unter dem Cube liegenden Datenbank

Generierung des XMLA-Scriptes

Mit Hilfe dieser Dateien generieren wir nun ein XMLA-Script. Hierzu wird die SQL Server Analysis Services Deployment Engine verwendet. Details zu den einzelnen Parametern finden sich in der MSISDN: https://msdn.microsoft.com/en-us/library/ms162758.aspx

  1. Microsoft.AnalysisServices.Deployment.exe $path\Cube.asdatabase /s:GenerateXmla.log /o:SSASDatabase.xmla

Danach wird das Script gegen den Analysis Server ausgeführt:

  1. # Erforderliche Assemblies einbinden
  2. [System.Reflection.Assembly]::LoadWithPartialName(“Microsoft.AnalysisServices.AdomdClient”)
  3.  
  4. # Zielserver aus .deploymenttargets Datei lesen
  5. $DeploymentTargetsFile = <lokaler Pflad zu *.deploymenttargets>
  6. $deploymentTargets = [xml](Get-Content $DeploymentTargetsFile)
  7.  
  8. # Verbindung mit dem AS Server herstellen
  9. $serverName = “Data Source=+ $deploymentTargets.DeploymentTarget.Server
  10. $conn = New-Object Microsoft.AnalysisServices.AdomdClient.AdomdConnection $serverName
  11. $conn.Open()
  12.  
  13. # XMLA einlesen
  14. $xmlaPath = <lokaler Pfad zur generierten XMLA Datei>
  15. $xmla = Get-Content $xmlaPath
  16.  
  17. # XMLA ausführen
  18. $cmd = New-Object Microsoft.AnalysisServices.AdomdClient.AdomdCommand $xmla, $conn
  19. return $cmd.ExecuteNonQuery();

Und schon steht Ihnen Ihr SSAS-Cube zur Verfügung!

Teilen auf

Newsletter Anmeldung

Abonnieren Sie unseren Newsletter!
Lassen Sie sich regelmäßig über alle Neuigkeiten rundum ORAYLIS und die BI- & Big-Data-Branche informieren.

Jetzt anmelden