Herzlich willkommen auf dem Blog der exensio GmbH

exensio ist ein unabhängiges Software-Unternehmen von erfahrenen IT Beratern und Architekten. Zu unseren Kunden zählen namhafte deutsche Großunternehmen.

exensio verbessert das Kommunikations- und Informationsmanagement von Unternehmen. Auf Basis sinnvoller und zweckmäßiger Technologien erarbeiten wir flexible und übergreifende Lösungen für webbasierte Informationssysteme. Abhängig von den Kundenanforderungen realisieren wir Web Applikationen sowie Lösungen auf Basis von Web Content Management- und Portalsystemen. Integrativ, wirtschaftlich und anwenderfreundlich!

Hier gelangen Sie zur exensio GmbH.

Sonntag, 14. Februar 2016

Pivot-Tabellen mit Elasticsearch und Kibana anstatt Excel geht das?

In diesem Blog-Post möchte ich aufzeigen, wie man eine Pivot-Tabelle mit Kibana und Elasticsearch umsetzen kann. Als Basis benutzte ich eine Pivot-Tabelle aus dem Buch »Excel 2010 im Controlling«, das im Verlag Rheinwerk (früher Galileo Computing) erschienen ist. Der nachfolgende Screenshot zeigt das Beispiel:



















Für den Import in Elasticsearch verwendete ich Logstash [2] mit dem untenstehenden Skript. Damit Logstash das CSV-File immer frisch einspielt, muss das sincedb File bspw. unter Windows mit del %userprofile%\.sincedb* gelöscht werden.

Jetzt kann man Kibana [3] für die Analyse aufsetzen. Folgender Screenshot zeigt das Resultat.















Vergleicht man das Ergebnis mit Excel so stellt man fest, dass jeweils die Gesamtsummen fehlen. Die Gesamtsumme auf Zeilenebene könnte man mit einem Skript auf Elasticsearch Seite [4] berechnen. Groovy Skripte können seit Version 1.4.3 aus Sicherheitsgründen jedoch nicht mehr direkt in eine Search Query eingebettet werden. Die Gesamtsumme pro Spalte kann hingegen nicht direkt berechnet werden - außer man benutzt eine zweite Search Query für die Addition der Spalten. Aus diesem Grund schrieb ich ein Python-Skript, das sich unten findet. Ich habe mich für Python entschieden, da der Source Code kompakt und dementsprechend das Wesentliche besser ersichtlich ist.

Das Ergebnis als ASCII Tabelle sieht wie folgt aus und ist analog zu Excel:
+-----------------------+------------+------------+------------+----------------+
| Kunde                 |     Januar |    Februar |       März | Gesamtergebnis |
+-----------------------+------------+------------+------------+----------------+
| Beispiel GmbH         |   12710.00 |   10428.80 |   15203.10 |       38341.90 |
| Dummy AG              |  106392.00 |  109992.50 |  114392.00 |      330776.50 |
| Felix Test AG         |   13250.00 |   11550.00 |   15450.00 |       40250.00 |
| Muster & Söhne        |      79.90 |      95.88 |      79.90 |         255.68 |
| Muster AG             |   23406.50 |   14112.50 |   17476.70 |       54995.70 |
| No Name GbR           |     125.00 |     262.50 |     362.50 |         750.00 |
| P. Robe GbR           |    1117.50 |    1188.00 |    1240.00 |        3545.50 |
| Probe GmbH            |    9879.65 |   16000.00 |   14495.88 |       40375.53 |
| Test & Partner        |     719.10 |     998.75 |     958.80 |        2676.65 |
| Test GmbH             |    8000.00 |    9600.00 |    9600.00 |       27200.00 |
| Übung AG              |   29730.00 |   36645.00 |   35172.00 |      101547.00 |
| Übungsgesellschft mbH |    2625.00 |    3750.00 |    4250.00 |       10625.00 |
+-----------------------+------------+------------+------------+----------------+
| Gesamtergebnis        |  208034.65 |  214623.93 |  228680.88 |      651339.46 |
+-----------------------+------------+------------+------------+----------------+

Fazit

Mit Kibana kann man eine Pivot-Tabelle aufbauen, jedoch nicht vollumfänglich, wie mit Excel. Kibana dient hier mehr der Exploration von großen Datenmengen (Big Data). Will man das gleiche Ergebnis, wie bei Excel erzielen, so muss man noch etwas programmieren. Die Filter auf Zeilen- und Spaltenebene sind beispielsweise über eine facettierte Navigation (siehe Bild unten) realisierbar. In Kibana filtert man auf Zeilenebene (Kunden) mit Hilfe der Suche von Elasticsearch. Dies hat vor allem bei mehreren tausend Einträgen (etwa Big Data) den Vorteil, dass die Filterung rascher als bei Excel vonstattengeht.





















Links

[1] https://www.rheinwerk-verlag.de/excel-2010-im-controlling_2289/
[2] https://www.elastic.co/downloads/logstash
[3] https://www.elastic.co/downloads/kibana
[4] https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html


Keine Kommentare:

Kommentar veröffentlichen