Pentaho Adhoc-Reporting: Metadaten

6. January 2008

Ich habe mir das Adhoc-Reporting angesehen und will jetzt sehen, wie das im Hintergrund organisiert ist. Wie wird auf Daten zugegriffen, wo sind die Zusammenhänge zwischen Tabellen definiert, wo kommt die Formatierung der Felder her? Einen ersten Einblick kann man sich verschaffen, indem man einen Blick auf die bestehenden Metadaten der Demo-Daten wirft. Die Datei, die alle diese Daten enthält, ist die XML-Datei C:\pentaho\pentaho-demo\pentaho-solutions\samples\metadata.xmi. Da es eine XML-Datei ist, kann man sie sich natürlich einfach mit einem Texteditor durchlesen und könnte sie auch mit diesem bearbeiten. Komfortabler ist es aber mit dem Pentaho Metadata-Editor. Den habe ich ja schon herunter geladen und entpackt. Also gehe ich in das Verzeichnis C:\pentaho\pentaho-metadata und starte ihn, indem ich die Datei pentaho doppelklicke.

Die Metadaten zur BeispieldatenbankFür den ersten schnellen Blick auf die Metadaten des Beispiels gehe ich auf „File => Import from XMI File“ und wähle dort die eben erwähnte Datei aus. Ich werde nach einem Namen gefragt. „Samples“ scheint mir passend. Ich empfehle, einfach mal 15 Minuten lang wild rum zu klicken (dabei auch die rechte Maustaste benutzen) und alles auf sich wirken zu lassen. Danach ist sicher Vieles schon klar.

Tabellen einlesen

Ich versuche es jetzt mal von Grund auf nach zu vollziehen. Dazu gehe ich auf „File => New… => Domain File…“ Jetzt ist alles wieder leer. Als erstes benötigt man eine Datenbank-Verbindung. Dazu macht man einen Rechts-Klick auf „Connections“ und wählt „New Connection…“ Hier kann ich mich jetzt mit beliebigen Datenbanken verbinden. Ich verbinde mich einfach mal mit den mitgelieferten Beispiel-Daten. Ich gebe also als „Connection Name“ „SampleData“ ein, wähle als „Connection Type“ „Hypersonic“ aus, wähle als „Method of Access“ „JNDI“ und schreibe „SampleData“ in das Feld „Database Name“. Ein Klick auf „Test“ sagt mir, dass alles ok ist. Warum ist alles ok? Das sind doch kaum genug Informationen, um sich mit einer Datenbank zu verbinden? Richtig. Wenn man „JNDI“ wählt erwartet die Software die eigentliche Spezifikation der Verbindungsdaten in der Konfigurationsdatei C:\pentaho\pentaho-metadata-*\simple-jndi\jdbc.properties. Ich habe also eigentlich eine JDBC-Verbindung aufgebaut, die in den Metadaten aber über einen Namen referenziert wird. Das hat Vorteile, wenn man die Metadaten später mal auf mehrere Rechner verteilen will, zum Beispiel auf ein Produktiv- und ein Test-System.

Wenn man dann auf „Ok“ klickt öffnet sich ein Popup-Fenster, welches die vorhandenen Datenbank-Tabellen anzeigt. Hier kann man alle Tabellen auswählen, die man in das Business-Modell integrieren möchte. Wenn man seine Auswahl getroffen hat, liest der Metadata-Editor die dazugehörigen Spaltennamen ein.

Internationalisierung

Die Metadaten können mehrsprachig angelegt werden. Ich als Deutscher möchte die Endnutzer meist in Deutsch und Englisch auf ihre Daten zugreifen lassen. Standardmäßig ist nur die Lokale für Englisch (US) angelegt. Um Deutsch hinzu zu fügen, klicke ich oben auf das Icon mit der kleinen Weltkugel. Als neue Lokale lege ich „de_DE“ mit dem Namen „Deutsch“ an.

Spaltennamen und Beschreibungen

Zu jeder Spalte kann ein Name und eine Beschreibung in allen angelegten Lokalen hinterlegt werden. Dazu klicke ich mit der rechten Maustaste auf die Tabelle und wähle „Edit…“ aus dem Kontextmenü. Im folgenden Popup-Fenster kann ich auf die Spaltenbezeichner links klicken und dann rechts die gewünschten Werte eingeben.

Open-Source-Software im BI-Umfeld

4. January 2008

Diese Liste soll existierende Open-Source-Projekte aufzeigen, mit denen sich Aufgaben aus dem Bereich Business Intelligence bewältigen lassen. Es fehlt noch ein Projekt? Schreibe einfach einen Kommentar.

Pentaho BI Suit: Lösungen

3. January 2008

Im Bereich „Lösungen“ kann man vorgefertigte Reports ablegen, die der Endnutzer dann aufrufen kann. Dabei kann man dem Endnutzer erlauben, Werte vorzugeben (zum Beispiel den Report auf einen Datumsbereich einzuschränken oder Ähnliches) und das Ausgabeformat zu wählen. Lösungen müssen allerdings nicht immer Reports sein. Eine Lösung kann auch ein ETL-Prozess sein, der Daten in ein Data-Warehouse übernimmt, E-Mails abfragt oder versendet und vieles mehr.

Der frisch entpackte Demo-Server kommt mit einigen Beispielen, die auf der Seite „Lösungen“ im Ordner „Samples“ zu finden sind. Für einen allgemeinen Überblick über Möglichkeiten und deren sinnvollen Einsatz empfielt sich ein Blick in den darin enthaltenen Ordner „Steel Wheels“. Dort finden sich Beispiel-Lösungen für ein imaginäres Unternehmen. In den weiteren Verzeichnissen finden sich kleine Insellösungen, die jeweils eine bestimmt Funktion verdeutlichen sollen.

Beispiele

Die Beispiele zeigen verschiedene Ausgabeformate, Diagramme, Tabellen, die Auswahl von Werten, Einbindung von Grafiken, Prüfung von Berechtigungen und vieles mehr.

Ein Report mit einem Diagramm pro Datengruppe Ein PDF-Report mit einem Torten-Diagramm Eine mehrseitige Rechnung im PDF-Format

Eigene Lösungen basteln

Eine Lösung ist eine Sammlung von Dateien. Diese Dateien finden sich unter C:\pentaho\pentaho-demo\pentaho-solutions. Die Verzeichnisse system und admin sind ein wenig speziell, alle anderen Verzeichnisse erscheinen im Web-Interface unter „Lösungen“. Technisch Versierte können ruhig mal einen Blick in die einzelnen Dateien werfen, es sind zumeist XML-Dateien, aus denen man auf jeden Fall viel für eigene Lösungen lernen kann.

Wenn man sich zum ersten Mal mit einer neuen Technik bekannt macht, kann man immer viel lernen, indem man einfach mal mitten rein greift und schaut, was passiert. Legen wir also einfach mal eine Kopie des Ordners C:\pentaho\pentaho-demo\pentaho-solutions\samples an. Ich habe das Verzeichnis bei mir C:\pentaho\pentaho-demo\pentaho-solutions\mysolutions genannt. Wenn ich jetzt im Web-Interface die Seite mit den Lösungen aufrufe, dann sehe ich dort jetzt alles doppelt, meine Änderung hatte also einen direkten Erfolg. Weil mir der Bildschirm jetzt zu voll ist, räume ich auf. Ich möchte nur meinen Lösungs-Ordner mit einer Beispiellösung behalten. In meinem neuen Ordner lösche ich alle Unterverzeichnisse bis auf das Verzeichnis etl (das ist völlig willkürlich gewählt, ich will einfach irgendeinen Inhalts-Ordner behalten). Außerdem lösche ich noch die Dateien fileUpload.html und metadata.xmi (über Letztere gibt es mehr Infos im nächsten Artikel zum „Adhoc-Reporting“). Folgende Dateien sind übrig:

  • index.xml
    Hier finden sich Einstellungen zur Sichtbarkeit und Darstellung des Lösungs-Ordners. Die Datei sieht nicht aus, als müsste ich sie anfassen.
  • index.properties
    Hier findet sich der englische Name und die Englische Beschreibung des Lösungs-Ordners. Diese Datei würde ichfür meine eigenen Lösungen eindeutig anpassen.
  • index_*.properties
    Dies sind Übersetzungen der index.properties-Datei. Ich lösche alle bis auf index_de.properties. Zwei Sprachen sind genug zum Testen. Auch die Inhalte dieser Datei(en) werden natürlich angepasst. Nichts wäre peinlicher, als eine tolle eigene Lösung gebastelt zu haben und dann bei den Übersetzungen (die man evtl. nie getestet hat) noch die Beispieltexte stehen zu haben. Auch deshalb ist es gut, alle überflüssigen Übersetzungen zu löschen.
  • folder.png
    Das Icon des Folders. Die Datei enthält sowohl die normale Ansicht als auch die Rollover-Ansicht.
  • samples.png
    Ein Icon, welches aus der index.xml referenziert wird. Bisher haben wir dieses Icon am Bildschirm nirgends gesehen. Es wird verwendet, wenn man die Reporting-Beispiele über das JBOSS-Portal aufruft. Im Moment muss mich diese Datei nicht interessieren.

Dateien entpacken unter Windows: 7-Zip

1. January 2008

7-Zip-Logo
Seit einiger Zeit ist 7-Zip mein Lieblings-Windows-Programm zum Packen und Entpacken von Dateien. Es versteht sich auf alle Formate, die man braucht (nicht nur .zip sondern auch .tar.gz, .rar und andere). Außerdem ist es Open-Source-Software und damit qualifiziert, auf dieser Website hier vorgestellt zu werden.

Download: http://www.7-zip.org/

Pentaho BI Suit: Adhoc-Reporting

31. December 2007

Das Pentaho Adhoc-Reporting, oft auch unter seinem alten Namen „WAQR“ zu finden, soll den Endnutzern eine Möglichkeit bieten, einfache Reports in diversen Ausgabeformaten selbst zu erstellen, ohne sich mit SQL auszukennen oder all zu viel über die Datenbank-Struktur zu wissen. Es geht also darum, innerhalb weniger Minuten eine brauchbare Aussage aus den Daten zu kitzeln. Prima, genau das, was wir mögen. Da die Demo-Installation auch Demo-Daten beinhaltet, können wir gleich mal einen Blick darauf werfen.

Der Nutzer wird in 4 einfachen Schritten durch die Erzeugung eines Reports geführt:

Schritt 1: Business-Modell und Template

Schritt 1: Wählen von Business-Modell und TemplateIm ersten Schritt wählt man ein Business-Modell und ein Template aus. Das Busines-Modell bestimmt, welche Daten für den Report zur Verfügung stehen, das Template bestimmt, wie der Report am Ende aussieht. Unter den mitgelieferten Templates ist das „Pentaho“-Template am brauchbarsten, als Business-Modell wähle ich zum Testen das Modell „Orders“. Darunter kann sich sicher jeder was vorstellen.

Die einzigen aktiven Schaltflächen zu diesem Zeitpunkt sind „Cancel“ und „Next“. Ich gehe also mit „Next“ weiter zum nächsten Schritt.

Schritt 2: Auswahl der Daten

Das im ersten Schritt gewählte Business-Modell enthält eine Menge Daten. Im Fall des gewählten Modells finden sich Daten aus den Bereichen „Kunden“, „Aufträge“, „Zahlungen“ und „Produkte“. In jedem dieser Bereiche gibt es wiederum viele Daten-Felder, zu einem Kunden gehören beispielsweise eine Kundennummer, ein Name, Adressdaten usw.

Schritt 2: Auswahl der DatenIm zweiten Schritt sieht man links alle verfügbaren Daten. Diese lassen sich per Drag & Drop in einen der Bereiche auf der rechten Seite ziehen. Für dieses Beispiel nehme ich mal an, dass ich einen Report haben möchte, der mir Kundennummer, Kundenname Auftragsnummer und Auftragswert anzeigt. Das ganze soll nach Gebiet zusammengefasst werden und ich möchte nur abgeschlossene Aufträge erfassen. Dazu ziehe ich erst mal das Feld „Territory“ nach rechts in den Bereich „Groups => Level 1″. Damit ist schon mal für die Gruppierung nach Gebiet gesorgt. Die restlichen Daten („Customer Number“, „Customer Name“, „Order Number“ und „Total“) ziehe ich in den Bereich „Details“. Um nur abgeschlossene Aufträge zu selektieren ziehe ich noch das Feld „Status“ in den Bereich „Filter“. Dort kann man jedes Datenfeld ablegen, nach dem man filtern möchte, dessen Wert aber nicht im Report erscheinen soll.

In dem Moment, in dem man mindestens ein Datenfeld in den Bereich „Details“ gezogen hat, färbt sich der „Go“-Button grün. Jetzt ist es möglich, sich eine Voransicht des Reports erzeugen zu lassen. In der Regel sollte man das aber erst nach Schritt 3 tun, denn derzeit sind noch keine Filter aktiv und der Report könnte sehr lang werden und je nach Datenmenge den Computer in die Knie zwingen. Also auf zum nächsten Schritt.

Schritt 3: Die Feinheiten

In Schritt 3 kann man eine ganze Menge machen, es ist allerdings alles recht unkompliziert. Links findet sich nun die Spalte mit unseren in Schritt 2 gewählten „Groups“, „Details“ und „Filters“. Wenn man dort irgend etwas anklickt, kann man im rechten Bereich diverse Einstellungen vornehmen. Das gehe ich jetzt mal durch:

Schritt 3: Gruppen-FormatierungIch klicke links unter „Groups“ auf den grünen Kasten „Level 1″. Rechts kann ich jetzt Einstellungen für diese Gruppierung vornehmen. Inhaltlich wichtig ist nur die Auswahl, ob ich eine Summenzeile unter der Gruppe haben möchte („Show Group Summary“). Der Rest bezieht sich nur auf die Optik. Erwähnt sei noch das Häkchen bei „Repeat Group Header“. Dadurch wird die Gruppierungs-Kopfzeile auf jeder Report-Seite wiederholt, falls die Gruppe sich über mehrere Report-Seiten erstreckt. Das ist natürlich nur bei Ausgabeformaten sinnvoll, die überhaupt Seiten haben. Auf die Ausgabeformate „HTML“ und „Excel“ hat es zum Beispiel keinen Einfluss, auf einen PDF-Report wirkt es sich aber aus.

Schritt 3: Einstellungen für Daten-GruppeAls nächstes klicke ich unter „Groups“ auf mein Datenfeld „Territory“. Rechts erscheinen auch hier diverse Optionen. Der Bereich mit den Zahlenformaten ist ausgegraut, da das Feld „Territory“ Text und keine Zahlen enthält. Rechts unten kann ich sehen, dass der Report nach „Territory“ in aufsteigender Reihenfolge sortiert wird. Es findet immer eine Sortierung nach allen Gruppen-Feldern statt. Rechts oben könnte man noch auf „Add a Constraint“ klicken und dann die erlaubten Wertbereiche für das Feld „Territory“ einschränken. Das mache ich aber später noch mit einem anderen Feld, deshalb erwähne ich es jetzt nicht weiter.

Schritt 3: Einstellungen für Daten-DetailsDann klicke ich links unter „Details“ auf das Datenfeld „Total“. Das ist das Feld mit dem Auftragswert. Rechts sieht alles recht ähnlich aus, wie gerade eben. Diesmal kann ich allerdings ein Nummernformat wählen. Es gibt außerdem einen ganz neuen Abschnitt in der Mitte unten. Wenn es für meine Gruppe eine Summenzeile gibt, dann kann ich bei jedem „Detail“ wählen, ob es in der Summenzeile auftauchen soll und wenn ja, wie der Eintrag berechnet werden soll. Ich wähle, dass ich hier eine Summe der Auftragswerte sehen will. Der Bereich der die Sortierreihenfolge anzeigt (unten rechts) ist diesmal leer. Hier kann man definieren, wie die Einträge innerhalb der Gruppe sortiert werden sollen.

Schritt 3: Daten-FilterAls letztes bleibt mir noch ein Klick links auf meinen Eintrag in der „Filter“-Box. Jetzt habe ich rechts nur die Möglichkeit, den Wertebereich einzuschränken, der vom Report erfasst werden soll. Nach einem Klick auf „Add a Constraint“ wird mir diese Zeile präsentiert:

Filter definieren

Suche nach Filter-KriterienWenn ich die Daten nicht so genau kenne und zum Beispiel nicht weiß, was bei einem abgeschlossenen Auftrag wohl als Status in der Datenbank steht, dann ist ein Klick auf das Lupen-Symbol hilfreich. Daraufhin öffnet sich ein Fenster, in dem man mit Platzhaltern nach möglichen Werten suchen kann. Wenn man einfach ein Sternchen eingibt und auf „Search“ klickt, erhält man eine Liste aller möglichen Werte. Bei manchen Datenfeldern könnte das natürlich eine blöde Idee sein, bei diesem kann man es aber durchaus mal so machen. Ich wähle als Filterkriterium den Status „Shipped“.

Der erste ReportJetzt ist es aller spätestens an der Zeit, auf den „Go“-Button zu klicken, um eine Voransicht des Reports zu erhalten. Dabei kann man zwischen diversen Ausgabeformaten wählen. Ich nehme mal Excel, da ich weiß, dass sich die späteren Nutzer sicher besonders für dieses Format interessieren werden. Das Ergebnis ist durchaus respektabel. Ich empfehle, jetzt noch ein wenig zu spielen. Man kann noch weitere Gruppierungs-Ebenen hinzufügen oder die Einträge innerhalb der Gruppe sortieren.

Schritt 4: Layout-Vorgaben

Schritt 4: Layout-VorgabenDer letzte Schritt bietet nur noch ein paar leicht verständliche Einstellungen zum Report-Layout. Es können Texte für die Kopf- und Fuß-Bereiche definiert werden und man kann ein Papierformat wählen. Letzteres macht natürlich mal wieder für die PDF-Ausgabe Sinn.

Pentaho BI Suit

31. December 2007

Pentaho stellt einen Haufen an Software zur Verfügung. Ganz oben auf der Liste steht der Pentaho BI Server, um den sich eine Vielzahl von Tools scharen. Um den Server möglichst unkompliziert ausprobieren zu können, stellt Pentaho einen Demo-Server-Download bereit. Diesen und einige weitere Komponenten werde ich herunter laden und dann wollen wir sehen, was man damit machen kann. Ich nutze auf meinen lokalen Rechnern Windows Vista und Mac OS X. Die ganze Software ist in Java implementiert, das Betriebssystem ist daher relativ egal. In diesen Texten hier beziehe ich mich hauptsächlich auf die Nutzung der Software unter Windows Vista.

Download der nötigen Dateien:

Die nötigen Downloads finden sich auf Sourceforge, ich habe diese Pakete herunter geladen:

Installation

Ich habe auf meinem Vista Rechner ein Verzeichnis C:\pentaho angelegt. Dorthin entpacke ich die ZIP-Files (mit 7-Zip). Mehr ist an Installation nicht nötig, Zeit für die ersten Gehversuche.

Sehen, was es kann

Pentaho BI Server nach dem ersten StartUm einen Eindruck davon zu erhalten, was man mit der Software erreichen kann, kann man sich erst mal die Beispiele ansehen. Um den Demo-Server betriebsbereit zu starten geht man einfach in das Verzeichnis C:\pentaho\pentaho-demo und macht einen Doppelklick auf start-pentaho.bat (für andere Betriebssysteme gibt es natürlich andere Startdateien, die ebenfalls dort liegen). Ein Popup-Fenster informiert darüber, dass das Programm eine Komponente enthält, die nach Updates sucht. Mir persönlich ist das recht. Es öffnen sich zwei Konsolen-Fenster, in einem davon sieht man die Ausgaben der Hypersonic-Datenbank, die bei diesem Demo-Server mitgeliefert ist, im anderen die Ausgaben des ebenfalls mitgelieferten JBOSS-Servers, auf den das Pentaho-Server-Paket aufsetzt. In diesem zweiten Fenster hagelt es beim Start erschreckende Warnungen aller Art, diese können aber getrost ignoriert werden, solange nach ein paar Minuten die letzte Meldung lautet, dass der BI-Server jetzt bereit wäre.

Pentaho-Server, erstes LoginFür einen Blick auf die mitgelieferten Beispiele kann man jetzt die Adresse http://localhost:8080/ in einem Webbrowser auf dem gleichen Computer aufrufen. Es erscheint eine Login-Seite, auf der wir uns standesgemäß mit dem Administrator-Account anmelden. Bei dieser Demo-Installation ist der Benutzername „Joe“ und das Passwort „password“.

Schon nicht schlecht, ein Dashboard zur Begrüßung. Mehr findet sich in der Navigation.Oben rechts findet sich das Menü, natürlich sollte man ruhig alle Punkte mal durch klicken. Mich interessieren erst mal die Reporting-Fähigkeiten. Nach dem Login wird man ja schon mit einem Dashboard begrüßt, was für Reports kann das Ding noch erzeugen? Im Menü finden sich unter „Navigieren“ zwei wichtige Punkte:

  • New Report
    Dahinter verbirgt sich das sogenannte „Adhoc-Reporting“, eine einfache Möglichkeit für den Endnutzer, seine eigenen Reports zu stricken.
  • Lösungen
    Dahinter verbergen sich von einem Administrator vorbereitete Reports (und Workflows), die wesentlich komplexer sein können, als die aus dem „Adhoc-Reporting“.

Business Intelligence mit Hemdsärmeln

31. December 2007

Wer sich mit Datenanalyse und Reporting befassen möchte, muss nicht tief in die Tasche greifen. Von Pentaho und JasperSoft lassen sich zwei Software-Pakete beziehen, die im Kern als Open Source Software zur Verfügung stehen und für die, sollte man mal einen Profi brauchen, auch kostenpflichtiger Support erhältlich ist.

In einem Unternehmen werden ständig Reports zu allen möglichen Themen benötigt. Das bringt in der Praxis viele Aufgaben mit sich:

  1. Erstellen der Report-Logik
  2. Zusammentragen und Aufbereiten der Daten
  3. Erstellen von Report-Layouts
  4. Bereitstellen/Verteilen der Reports an unterschiedliche Benutzergruppen

Die Wikipedia kann dieser Ausführung natürlich noch ein paar Takte hinzu fügen: Mehr dazu in der Wikipedia

Mal sehen, wie sich diese Aufgaben mit Open-Source-Software professionell bewältigen lassen.

Weiterlesen: Pentaho BI Suit