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!

Neuen Kommentar schreiben

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.

Klartext

  • Keine HTML-Tags erlaubt.
  • HTML - Zeilenumbrüche und Absätze werden automatisch erzeugt.
  • Web page addresses and email addresses turn into links automatically.
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

Unsere Website benutzt Cookies, um bestmögliche Funktionalitäten bieten zu können. Durch die Nutzung unserer Website, erklären Sie sich mit der Verwendung von Cookies einverstanden. In unserer Datenschutzerklärung finden Sie unter §5 Informationen und Links, wie Sie diesen Maßnahmen jederzeit widersprechen können.