Cubes & Datawarehouses
SQL-Package auf Infoniqa ONE 200-Datenbank generieren
Die aktuellsten ETL-Prozeduren für alle drei Module sind im Ordner SupportFiles\ETLProzeduren der Installationsdateien zu finden. Für jedes Modul gibt es ein SQL-Package, welches die aktuellsten SQL-Prozeduren in die Infoniqa ONE 200-Datenbank lädt.
Wir empfehlen allen Kunden grundsätzlich auf individuelle Anpassungen des Cubes und der Prozeduren zu verzichten.
Vorgehen:
-
Falls entgegen unserer Empfehlung individuell angepasste SQL-Prozeduren bestehen, sind diese gespeicherten Prozeduren mit dem SQL Management Studio aus der Datenbank auszulesen und als SQL-Datei zu sichern. Damit die können die indiv. Anpassung nach dieser Installation wieder nachimplementiert werden.
-
SQL-Skripts für die gewünschten Module im SQL Management Studio öffnen:
-
Auftrag: SupportFiles\ETL-Prozeduren\ProcedurePackage_Auftrag_2009_0+.sql
-
Finanz: SupportFiles\ETL-Prozeduren\Procedure-Package_Finanz.sql · Personal: SupportFiles\ETL-Prozeduren\ Procedure-Package_Personal.sql
-
Default-Werte für die Parameter in allen Prozeduren setzen.
-
SQL-Packages sind einzeln mit F5 auf der Infoniqa ONE 200-Datenbank auszuführen.
-
Die Prozeduren werden auf die Infoniqa ONE 200-Datenbank generiert.
-
Die DWH-Datenbanken werden auf dem SQL-Server erstellt.
-
Prüfen Sie die Ausgabemeldungen auf Fehlermeldungen.
-
Geänderte Skript-Package-Dateien in der Projektablage sichern.
Cubes erstellen und konfigurieren
Die XMLA-Skript Dateien zur Erstellung der aktuellsten Cubes sind im Ordner SupportFiles\XMLA-Files abgelegt. Für jeden Cube ist ein XMLA-Skript vorhanden, welches vor der Ausführung im SQL-Management Studio (verbinden auf Analysis Server) geringfügig angepasst werden muss.
Die bereits bestehenden Cubes einer älteren BI-Version werden ersetzt. Allfällige individuelle Anpassungen und Sicherheitseinstellungen (Rollen) gehen verloren.
Die bestehenden Cubes sind deshalb vorgängig per Backup zu sichern: Die Rollen und deren Member können als Skript aus dem bestehenden Cube ausgelesen, und im neuen Cube wieder eingelesen werden. Die eventuell hinterlegten Dimension-Security Einstellungen in den Rollen müssen aber in jedem Fall neu gesetzt werden.
Vorgehen:
-
Nur bei einem Update von einer älteren BI-Version:
-
Bestehende Analysis Services Datenbanken per Backup sichern
-
Rollen in bestehenden Analysis-Services Datenbanken auslesen via „Skript für Rolle als…“
-
Jedes XMLA-Skript (pro Modul) im SQL Server Management Studio öffnen.
-
Auftrag: SupportFiles\XMLA-Files\Auftrag\Cube_Auftrag.xmla
-
Finanz: SupportFiles\XMLA-Files\Finanz\Cube_Finanz.xmla
-
Personal: SupportFiles\XMLA-Files\Personal\Cube_Personal.xmla
-
Folgende Tags mit dem gewünschten Cube-Namen versehen werden:
-
<DatabaseID>
-
<ID>
-
<Name>
Die zu ändernden Tags befinden sich in den ersten zehn Zeilen des Skripts:
Es dürfen keine anderen Tags geändert werden!
-
Jedes Skript einzeln ausführen (F5) und prüfen, dass die Abfrage erfolgreich ausgeführt wird. à Der Cube wird pro Modul erstellt.
-
Jedes Skript mit den angepassten Werten in die Projektablage speichern.
-
Nur bei einem Update: Vorgängig ausgelesene Rollen in den neuen Cube einlesen (Skripte ausführen).
-
In jedem Cube ist in den Eigenschaften der Datenquelle die Verbindung zum entsprechenden DWH zu setzen. Öffnen Sie bei jedem Cube die
-
Datenquelleneigenschaften und erfassen Sie über […] die entsprechende DWHDatenbank:
Berechtigungen bei DWH- und Cube-Datenbanken einrichten
Für das erfolgreiche Laden und Verarbeiten sind die Benutzer für den Analysis Server und Server-Agent mit den entsprechenden Berechtigungen auszustatten. In unserem Fall sind dies NT Service\MSSQLServerOLAPService und NT Service\SQLSERVERAGENT:
Analysis-Benutzer Zugriff auf die DWH-Datenbanken erteilen:
Im SQL Server Management Studio sind dem Benutzer NT Service\
MSSQLServerOLAPService die folgenden Berechtigungen für den Zugriff auf die DWHDatenbanken auf dem SQL Server zu erteilen:
Server-Agent-Benutzer der Admin-Rolle im Cube zuteilen: Im Analysis Server ist pro Cube-Datenbank der Benutzer NT Service\SQLSERVERAGENT der Admin-Rolle zuzufügen:
ETL-Job zur automatischen Datenaufbereitung erstellen
Die Datawarehouses und die Cubes sollen während der Nacht mit neuen Daten gefüllt und verarbeitet werden. Dazu muss im SQL Server Agent ein entsprechender Auftrag („Job“) eingerichtet werden.
Pro installiertem Modul müssen im Job dazu zwei Schritte eingerichtet werden:
-
DWH neu mit Daten füllen (ETL)
-
Cube verarbeiten und berechnen
Ergänzend zu diesen zwei Schritten muss ein Zeitplan definiert werden, wenn diese Schritte ausgeführt werden. Optional kann eine E-Mail-Benachrichtigung bei einem fehlgeschlagenen Job eingerichtet werden.
Vorgehen:
-
DWH mit Daten füllen:
Schritt zum Laden des DWHs erstellen:
-
Neuen Job-Step vom Typ „Transact-SQL-Script (T-SQL)“ erstellen
-
Einen sinnvollen Namen vergeben, z.B. „ETL DWH Finanz“
-
Unter „Datenbank“ die Infoniqa ONE 200-Datenbank angeben
-
T-SQL Kommando eingeben je nach Modul:
-Finanz: exec tp_dwhload
-Personal: exec ps_dwhload
-Auftrag exec as_dwhload
Bemerkung: Da bei der Erstellung der Prozeduren per SQL-Package die Default-Werte für die Parameter dieser Prozeduren bereits gesetzt wurden, müssen diese hier unter „Befehl“ nicht mehr explizit mitgegeben werden.
-
Cube verarbeiten:
Schritt zum Verarbeiten des Cubes zu erstellen:
-
Neuen Job-Step vom Typ „SQL Server Analysis Services-Befehl“ erstellen
-
Einen sinnvollen Namen vergeben, z.B. „Verarbeitung Cube Finanz“
-
Den SSAS-Server eintragen (im Normalfall localhost)
-
XMLA-Kommando eingeben
Das Kommando kann per Script-Action aus dem SQL Server Management Studio generiert werden:
Rechte Maustaste auf die entsprechende Cube-Datenbank und
„Verarbeiten“ betätigen. Danach mit via Skript den Befehl generieren:
-
Schritt 2 und 3 für jedes Modul wiederholen (Finanz, Auftrag, Personal) Damit ergibt sich beispielsweise folgende Ausführungsreihenfolge:
-
Laden Finanz, Verarbeiten Finanz
-
Laden Auftrag, Verarbeiten Auftrag
-
Laden Personal, Verarbeiten Personal
-
Verhalten im Fehlerfall bestimmen:
Wir empfehlen, dass der Cube gar nicht erst verarbeitet wird wenn das zugehörige DWH nicht erfolgreich gefüllt werden konnte. In diesem Fehler sollte der Auftrag mit dem Laden des nächsten Moduls fortfahren.
In den einzelnen Schritten kann im Tab „Erweitert“ die Aktion „Fehler“ angepasst werden damit es zum nächsten Modul springt:
-
Ausführungszeitplan erstellen In den Auftragseigenschaften ist unter „Zeitpläne“ ein Ausführungszeitplan zu erstellen:
Datawarehouses laden und Cube verarbeiten
Zum Prüfen ob der Job erfolgreich durchläuft empfehlen wir den Auftrag manuell zu starten über Rechtsklick „Auftrag starten bei Schritt“ und [Starten]:
E-Mail-Benachrichtigung
Optional kann man in den Auftragseigenschaften unter „Benachrichtigungen“ eine E-Mail-Benachrichtigung für fehlgeschlagene Jobs einrichten:
Dazu muss auf dem SQL Server „Database Mail“ konfiguriert sein, und in den
Eigenschaften des SQL Server Agent muss unter „Alert System“ ein E-Mail-Profil aktiviert sein.
Details dazu finden Sie bei den Hilfeseiten von Microsoft (z.B. Datenbank-E-Mail mit dem SQL Server-Agent).