Category Archives: Staging Area

Glossar der BI Begriffe

Es gibt in der Welt des Business Intelligence wirklich viele Begriffe. Jet Reports hat sich die Mühe gemacht die wichtigsten in einem BI-Glossar zusammen zu fassen.

Bei Fragen zu den Begriffen freue ich mich über eine Nachricht. Ich helfe gern weiter.

Andreas Koblischke
datenkultur GmbH

 

 

Einfach Auswerten – Denormalisieren

Die meisten ERP Systeme, unter anderem auch Microsoft Dynamics NAV (Früher bekannt als Navision), verwenden „normalisierte“ Datenbanken. Diese Datenbanken sind für die Dateneingabe optimiert. Aus technischen Gründen enthalten solche Datenbanken sehr viele verschiedene Tabellen. Das spart viel Platz auf den Festplatten, weil die Daten nicht doppelt gespeichert werden müssen (Redundanzen vermeiden). So kann der Anwender seine Daten möglichst schnell und einfach eingeben. Zur Auswertung fügt man die aufgeteilten Daten wieder zusammen, indem mehrere Tabellen miteinander verknüpft.

Ein Beispiel: Wenn Sie einen Auftrag eingeben, dann wählen Sie einen Debitor nur aus. Sie müssen nicht jedes Mal die Adresse und die Telefonnummer neu erfassen. Diese Werte sind in der Debitorentabelle einmalig hinterlegt und werden automatisch in Ihren Auftrag übernommen.

Debitor Lookup

Die Zahlungsbedingung wählen Sie dann wieder aus einer anderen Tabelle, ebenso wie Lieferanschrift und Lieferbedingungen. Wäre Ihre Datenbank nicht normalisiert, hätten Sie bis hierher schon viel Arbeit gehabt, diese Daten erneut einzugeben.

Danach erfassen Sie die Artikel in den Auftragszeilen. Auch hier gibt es wieder eine Tabelle, aus der Sie die gewünschten Zeilen auswählen können: Die Artikeltabelle. Preise und Rabatte werden automatisch aus zwei weiteren Tabellen geholt: Tabelle Verkaufspreise und Verkaufsrabatte. Sie merken, ein ERP System wie Dynamics NAV ist für die Dateneingabe optimiert und beinhaltet sehr viele eigenständige Tabellen.

EinfachAuswerten - Artikel Lookup

 

Der Vorteil bei der Dateneingabe ist ein leider ein Nachteil beim Auswerten. Zum Auswerten muss man die Struktur der Daten gut kennen. Zudem muss man wissen, wie man mehrere Tabellen miteinander verknüpfen kann. Das überfordert das Fachwissen mancher Anwender deutlich.

Ein Beispiel aus dem Dynamics NAV:

Wollten Sie schon einmal alle offenen Auftragszeilen mit Artikeln der Artikelkategorie „Geschirr“ und Verkäufer „Meier“ sehen? Wie haben Sie dies gelöst?

Die Auftragszeilen in NAV stehen in der Tabelle Verkaufszeile. Die Artikelnummer und die Restliefermenge sind dort als Information vorhanden. Der Verkäufercode steht allerdings in der Tabelle Verkaufskopf. Verkaufskopf und Verkaufszeile sind über die Belegnummer verknüpft.

Sie müssten also bei den Verkaufsköpfen mit Verkäufercode gleich „Meier“ beginnen. Doch wie kommt man dann an die Zeilen? Merkt man sich die Belegnummern und filtert dann ggf.? Das geht sicherlich, wenn Sie wenige Aufträge im System haben. Aber merken Sie sich mal mehr als 10 Belegnummern und fügen Sie diese zu einem Filter zusammen. So könnten wir das Problem lösen. Es ist allerdings nur wenig komfortabel.

Eine Alternative ist, dass Sie sich von Ihrem NAV Betreuer im System ein neues Feld in der Verkaufszeile anlegen lassen: den Verkäufercode. Das kostet Sie aber einiges:

  • Geld, denn ein ERP Entwickler muss es für Sie durchführen. Jedes Feld verändert zu dem den Standard des ERP-Systems. Es kostet also bei jedem Upgrade wieder Geld.
  • Performance, denn zusätzliche Felder müssen automatisch vom ERP Programm gefüllt werden.
  • Übersicht, denn viele Hilfsfelder in einer Tabelle lenken von den wesentlichen Daten ab.
  • Speicherplatz, denn die zusätzliche Felder für Auswertungen werden statt einmalig in Stammdaten in allen Detaildatensätzen eingetragen.

Wenn Sie weitere Felder, wie die Lieferbedingung auf den Zeilen auswerten wollen, dann muss dann auch das Feld Lieferbedingung auf den Zeilen hinzugefügt werden. Gleiches mit dem Feld Zahlungsbedingung und und und… Irgendwann ist Ihre Tabelle Verkaufszeilen überladen mit Informationen. Dies wäre also die zweite Lösung, die uns aber immer noch nicht gefällt.

Zudem möchte Sie ja auch noch einen Filter auf die Artikelkategorie „Geschirr“ setzen. Sollen Sie sich jetzt hier alle Artikelnummern der Kategorie merken und als Filter setzen? Nein! Und die Artikelkategorie wiederum als Feld im NAV in der Tabelle Verkaufszeile anlegen lassen? Nein!

EinfachAuswerten - ERD ERP

 

Die Lösung hier ist ein sogenanntes Data Warehouse (Datenlager). Eingangs erwähnt sind ERP Systeme zum Eingeben der Daten optimiert. Ein Data Warehouse ist für das Auswerten optimiert. Sie werden eben nicht normalisiert, sondern man ergänzt die Tabellen „einfach“ um die Felder, die man zum Auswerten benötigt. Auch berechnete Felder oder das Nachtragen von Daten ist kein Problem.

Dieses Data Warehouse ist eine eigene Datenbank, welche mit den Daten aus Ihrem ERP System gefüllt wird. Der große Vorteil: Sie ändern nichts an Ihrem ERP System, weder an den Daten noch an der Programmierung. Sie verlieren im ERP System keine Performance.

Das Data Warehouse wird mit den Daten aus dem ERP System gefüllt – automatisiert nachts, oder zu jedem anderen Zeitpunkt, wenn Sie aktuelle Daten benötigen. Formeln sind möglich und werden vorberechnet, sodass Sie auch hier beim Auswerten keinen Performance Verlust haben.

Beim Abholen der Daten erweitern Sie die Tabellen im Datawarehouse und erstellen in der Tabelle Verkaufslieferzeilen einfach die eben genannten neuen Felder: Die Artikelkategorie holen Sie aus der Artikeltabelle und speichern dieses Feld als echten Wert. Gleiches mit den Verkäufercode: der wird aus dem Verkaufskopf geholt und gespeichert. Sie erhalten dadurch eine Datenbank, die nicht mehr normalisiert und Eingabeoptimiert ist. Und das ist hier völlig in Ordnung, denn hier wollen Sie ja keine Daten eingeben, Sie möchten optimal auswerten.

EinfachAuswerten - Business Intelligence ERP

Also können Sie schließlich auf dieser Tabelle einen Filter auf Verkäufer = „Meier“ und Artikelkategorie = „Geschirr“ setzen. Und schon sehen Sie die gewünschten Werte.

Mit dem BI-Tool Jet Enterprise ist das Denormalisieren von Datenbanken simpel zu erreichen. Für Dynamics NAV und AX sowie für das CRM Online werden sogar fertige BI Projekte mitgeliefert. Wir haben für unsere Kunden bereits eine Vielzahl von weiteren Datenbanken zur Auswertung optimiert. Fragen Sie uns gern nach Ihrem System.

Andreas Koblischke
datenkultur GmbH

Unterschiede der Editionen – Enterprise

Jet Reports Express ist seit der NAV 2009 Version Bestandteil der Produktlizenz von Dynamics-NAV. Wir sind oft gefragt worden was die Kauf-Versionen von Jet Reports mehr leisten können als die Express Version. In diesem Blog-Post möchte ich die Unterschiede zur Enterprise Version erklären.

Der Funktionsumfang der Editionen baut aufeinander auf. Die Essentials-Version beinhaltet auch alle Funktionen der Express-Version. Entsprechend beinhaltet die Enterprise-Version auch alle Funktionen der beiden kleineren Editionen.

Jet Reports Enterprise
Diese Version der Jet Reports Produktreihe beinhaltet alle Funktionen der Essentials-Version. Nachfolgend werden nur die zusätzlichen Funktionen beschrieben.

Die Enterprise Version ist etwas ganz anderes, als die beiden kleineren Editionen. Während Express und Essentials Daten visualisieren stellt die Enterprise Version Daten zur Visualisierung bereit.

Business Intelligence (BI)
Wikipedia legt den BI-Begriff recht weit aus. Ich beschränke mich auf die wesentlichen Komponenten für das Auswerten eines ERP Systems wie Dynamics NAV (Früher bekannt als Navision). Ein ERP System ist für die zügige Eingabe von Daten optimiert. Ein BI-System fügt unstrukturierte Daten zusammen, bereinigt die Daten und berechnet die Zwischenergebnisse für einfache und schnelle Auswertungen.

Der ETL-Prozess
Die Daten werden zeitgesteuert aus einem oder mehreren Quellsystemen ausgelesen. Das geschieht in drei Schritten: (E)extrahieren, (T)ransformieren und (L)aden. Die meisten Business Intelligence Systeme verwenden eine eigene Datenbank.

Daten aus den Quellen auslesen (Extrahieren)
Jet Enterprise setzt auf den Microsoft SQL-Server, den die meisten Dynamics-NAV Kunden ohnehin bereits haben. Die Daten werden aus dem Navision ausgelesen und in die Datenbank für die Rohdaten (Staging Area) eingelesen.

Daten bereinigen (Transformieren)
Daten in einem ERP-System sind oft unvollständig. Ein typisches Beispiel dafür sind neu eingeführt Dimensionen. Ältere Buchungen konnten noch nicht mit den neueren Dimensionswerten erstellt werden. Beim Einlesen der Daten in die Staging Area können Daten ergänzt oder korrigiert werden. Bei dem Beispiel könnten man z.B. für ältere Werte die Vorgaben vom Debitor übernehmen. Das ist zwar nicht immer perfekt, aber oft viel besser als gar keine Zuordnung.

Daten strukturieren (Laden)
In Postentabellen (Buchungen) werden nur eindeutige Schlüsselwerte auf die Stammdaten eingetragen (Platz in der Datenbank sparen). Für Auswertungen ist es viel besser zusammengehörige Daten in einer einzigen Tabelle zu kombinieren. Für diese Funktion benutzt Jet Reports Enterprise noch eine zweite Datenbank, die Data Warehouse (DWH) genannt wird. Die kombinierten Tabellen des Data Warehouse werden definiert und aus den bereits bereinigten Daten der Staging Area gefüllt.

Beispiele für das Strukturieren von Daten sind

  • Mehrere Tabellen mit vergleichbarem Inhalt
    Im Dynamics-NAV sind die gebuchten Verkaufsrechnungen und die gebuchten Verkaufsgutschriften in zwei verschiedenen Tabellen. Im Data Warehouse kann man die beiden Tabellen in eine Tabelle zusammenführen. Zusätzlich braucht man den Datensätzen nur einen Typ mit geben (Rechnung, Gutschrift), an dem man die Daten in der gemeinsamen Tabelle unterscheiden kann.
  • Fehlende Daten in einer Postentabelle
    Im Dynamics-NAV sind z.B. in den Artikelposten (Lagerbewegungen) die Orte des Debitors nicht enthalten. Beim Füllen des Data Warehouse kann man jeden Satz automatisch um den Ort aus dem Debitor ergänzen. Das geht auch über mehrere Tabellen.

Erstellen des ETL-Prozesses
Das Erstellen von ETL-Prozessen ist auf dem Microsoft SQL-Server fast eine Raketenwissenschaft. Es ist ganz anders, als man es selbst als erfahrener Entwickler mit SQL gewohnt ist. Mit Jet Enterprise ist aber zum Glück gar nicht nötig den Analysis-Service und den Integration-Service persönlich zu kennen. Das nimmt einem der Jet Data Manager ab. Alle Prozesse vom Konfigurieren der Datenquelle über das Erstellen zusätzlicher Felder bis zum Anlegen eines OLAP Würfels können per Drag & Drop erstellt werden. Auch das zeitgesteuerte Füllen und Berechnen der Daten wird über den Jet Data Manager ausgeführt. Wer ein wenig Erfahrungen mit Tabellen und ERP-Systemen hat, der lernt die Handhabung innerhalb von 2 Tagen.

Visualisieren des Data Warehouse
Auf den bereinigten und strukturierten Daten des Data Warehouse kann man Daten recht einfach auswerten. Da die Enterprise Version auch die komplette Jet Reports Essentials Version beinhaltet kann man die bereitgestellten Daten ohne viel Mühe zu ansehnlichen Berichten zusammenstellen. Das entlastet auch die IT-Abteilung. Man muss die komplexe Tabellenstruktur ja nur einmal bereitstellen. Die erforderlichen Berichte können sich die Endanwender jederzeit selbst erstellen.

Wer bereits mit Jet Reports Essentials arbeitet, der kann auf diesem Weg seine komplexeren Berichte evtl. erheblich beschleunigen. Statt viele langsame Filterfunktionen oder gar viele unnötige Daten nach Excel zu laden kann man mit Jet Reports Essentials direkt auf das Data Warehouse zugreifen. So kann auch ein Jet Reports Anfänger selbständig professionelle Berichte erstellen.

Multidimensionale Auswertungen
Das Data Warehouse ist auch Grundlage für das Bilden von multidimensionalen Würfeln (Cubes). Ein Cube ist wie das Data Warehouse einer separaten Datenbank ähnlich. Die Daten werden nur anders im Datenbank-Server abgelegt. Auch über Cubes und OLAP (Online Analytical Processing) lässt sich bei Wikipedia einiges nachlesen. Einfach gesprochen können Filterkriterien (Dimensionen)  und Ergebniswerte (Measures) definiert werden. Für alle Kombinationen werden die Zwischenergebnisse berechnet.

Als Beispiel mag die Finanzbuchhaltung von Dynamics-NAV dienen: Das Feld Betrag in den Sachposten ist ein Ergebniswert (Measure). Das Buchungsdatum und die Sachkontonummer sind Filterkriterien (Dimensionen). In einem Cube werden nun alle Kombinationen aus den Werten der beiden Dimensionen vorberechnet abgelegt. Die Frage welchen Betrag ich auf welchem Konto habe oder was im Januar auf die Erlöskonten gebucht wurde liefert das System innerhalb von Millisekunden. Die Berechnung hat ja schon beim ETL-Prozess stattgefunden.

Visualisieren der multidimensionalen Würfel
Erstes Mittel der Wahl sind bei Cubes aus dem Microsoft SQL-Server immer die Pivot-Tabellen von Excel. Es ist nämlich mit nur wenigen Mausklicks möglich eine Excel-Pivot-Tabelle direkt aus einem Cube zu erstellen. Man hat dann praktisch alle relevanten Daten aus dem ERP-System per Drag and Drop zur Verfügung. Damit kann jeder auswerten. Das ist so einfach, dass auch die Chefetage und der Vertrieb damit locker zurecht kommen. Es ist dabei auch noch rappelschnell.

Die Würfel können aber auch mit den Funktionen von Jet Essentials verwendet werden. So kann ich jedes Design in Excel mit Daten füllen und trotzdem die Power von OLAP nutzen.

Unterschiedliche Datenquellen
Mit Jet Enterprise können unterschiedliche Datenquellen zusammengeführt werden. Es läuft mit allen Datenquellen zusammen, die einen Zugriff auf die Datenbank per ODBC oder OLEDB zulassen. Jet Enterprise ist damit nicht allein auf Dynamics-NAV zugeschnitten. Man kann es beispielsweise auch mit SAP, Oracle oder Sage verwenden. Es gibt für Dynamics-NAV aber eine besonders optimierte Datenbank-Verbindung. Zu dem steht für Dynamics-NAV ein vordefiniertes Set an Cubes bereit, das im Lieferumfang enthalten ist und selbständig an die eigenen Bedürfnisse angepasst werden kann. Besondere Datenbank-Verbindungen mit Cube Sets gibt es auch für Dynamics-AX und Great Plains.

Nachteile von Jet Enterprise
Die Daten werden in regelmäßigen Zyklen aus den Quellsystemen durch den ETL-Prozess in die Auswertungsdatenbanken geladen. Die Daten sind daher so gut wie nie ganz vollständig, wenn man eine Auswertung laufen lässt. Für die meisten Auswertung reichen die Daten des Vortages. Für einen Bericht, der absolut aktuell die Daten aus dem ERP System darstellen muss, sind die OLAP Funktionen von Jet Reports Enterprise eine schlechte Wahl. Wie gut, dass auch alle Funktionen von Jet Essentials in dem System enthalten sind. Denn Auswerten auf den Ursprungsdaten ist gerade die Stärke von Jet Essentials.

Fazit
Gemeinsam sind wir noch stärker. Jet Essentials ist schon eine Macht. Zusammen mit Jet Enterprise ist es aber kaum zu schlagen. Ich kann nur empfehlen es sich mal anzuschauen. In unserer Jet Enterprise Broschüre finden Sie noch weitere Informationen.

Andreas Koblischke
www.datenkultur.de