Business Case: Datenanalyse und Dashboards

Datenanalytik ist Komplexitätsreduktion!

Eine exemplarische Datenanalyse-Pipeline

Die folgende Skizze zeigt einen vereinfachten Ablauf für ein typisches Datenanalyseprojekt. Links stehen Eure Bestandssysteme, die vielleicht für alles mögliche optimiert sind, aber nicht für die Analyse, die Ihr gerade machen wollt. Und rechts steht das Dashboard, das Ihr Euch wünscht.

Quellsystem Lokale Datenbank Auswertedaten Dashboard
Quellsystem lokale Datenbank Auswertedaten Dashboard
TB Stunden GB Sekunden MB sofort KB

Wer bereits selbst Erfahrungen mit großen Datenbanksystemen machen durfte, weiß genau: Es geht nie schnell. Die Datenmengen sind so groß, die Quellsysteme so komplex – der Wunsch, mal schnell eine Auswertung zu machen, bleibt genau das: Ein Wunsch. An dieser Stelle setzt die Komplexitätsreduktion an: Die Terabytes an Daten sind meist gar nicht nötig, kein Mensch kann so viele Daten überblicken! Daher basieren die Auswertungen und grafische Dashboards fast immer auf sinnvollen Datenschnitten (Selektionen) und Zusammenfassungen (Aggregationen).

Der Trick besteht darin, diese für möglichst viele Anwendungsfälle vorzudenken und dann intelligent vorzuberechnen – zum Beispiel über Nacht, wenn das System weniger ausgelastet ist. Diese Datenschnitte werden nun in lokalen Datenbanken oder sogar direkt im Arbeitsspeicher zwischengeparkt, für die weitere Analyse mit Python z. B. in den DataFrames der Softwarebibliothek »pandas«. Von dort aus können in Sekunden die Daten abgezogen werden, die anschließend im Dashboard dargestellt werden. Im Allgemeinen findet hier ein zweiter Selektions- und Aggregationsschritt statt, bei dem die Daten nun für den konkreten Anwendungsfall zusammengezogen und für die Visualisierungen aufbereitet werden.

Beispiel-Dashboards

Visualisierungen für d3 als Open Source

Im letzten Schritt der Pipeline oben werden die Auswertedaten noch einmal für jedes Visualisierungs-Element separat aggregiert und ggf. selektiert. Die Bibliothek d3 liefert hierfür einige sehr mächtige und relativ intuitiv zu benutzende Aggregierungsfunktionen wie d3.group und d3.rollup.

Screenshot der Website srv.visbe.de/mapvis
Screenshot der Website srv.visbe.de/mapvis (dark mode)

Auf der Website srv.visbe.de/mapvis hat die Visionsberatung einige Visualisierungen als Open Source veröffentlicht. Diese umfassen neben einer interaktiven Karten-Darstellung von Kennzahlen nach Postleitzahlen (PLZ2, s.g. Postleitregionen) und einer Treemap für die Darstellung hierarchischer Informationen auch ein Säulen- und ein Kreisdiagramm als filterbare Elemente. Diese konkreten Visualisierungen werden u.a. beim Statistikportal des Forschungsdatenzentrum Gesundheit am Bundesinstitut für Arzneimittel und Medizinprodukte verwendet.

Neben dem JavaScript-Code und CSS-Stilinformationen ist der Code der Seite selbst so aufbereitet und reduziert, dass Eure Eigenentwicklungen mithilfe dieses Beispielcodes hoffentlich ganz leicht umzusetzen sind. Viel Erfolg dabei!

Variantenbäume im Self-Service

Oftmals verbergen sich in den Spalten tabellarische Daten hierarchische Informationen. Eine Darstellung als Variantenbaum ermöglicht es, diese verborgenen Abhängigkeiten sichtbar zu machen und hilft so beim Verständnis der Daten. Der Variantenbaum ermöglicht eine intiutive Komplexitätsreduktion durch optische Ermittlung der richtigen Hierarchie-Ebene.

Screenshot der Website srv.visbe.de/treevis Tabellendarstellung der Daten
Screenshots der Website srv.visbe.de/treevis (light mode)

Damit Ihr es auf Euren Daten einmal ausprobieren könnt, bietet die Visionsberatung unter srv.visbe.de/treevis eine kleine Webapp, in der Ihr Eure eigenen Daten als CSV-Datei einlesen könnt. Die komplette Anwendung wird lokal bei Euch im Browser ausgeführt, die Daten werden also nicht auf fremde Systeme hochgeladen. Damit die Baumdarstellung übersichtlich bleibt, könnt Ihr direkt auf der Seite in einer Tabellenansicht einzelne Spalten aggregieren oder ausdifferenzieren sowie ein- und ausblenden.

Der Variantenbaum ist eine SVG-Datei und kann als solche heruntergeladen werden.