BI-Lösung mit MongoDB

Business Intelligence (BI) Lösung mit NoSQL-Datenbank MongoDB

Zielsetzung

Öffentlich im Web verfügbare Business Intelligence Lösung zur übergreifenden Analyse von Kennzahlen aus unterschiedlichen Datenquellen.

Aus eine Vielzahl sehr unterschiedlicher Datenquellen werden Kennzahlen in einer zentralen Datenbank integriert und stehen dort für Analysen und Auswertungen zur Verfügung, die über die Grenzen der einzelnen Datenquellen hinweg einheitlich erfolgen können.

Die Benutzer der Lösung sind sowohl Spezialisten mit hohen spezifischen Kenntnissen als auch eine große Gruppe von Interessieren mit einem breiten fachlichen Hintergrund. Die Analysen und Auswertungen können sehr individuell zusammengestellt werden. Den Benutzern wird dabei jederzeit Hilfestellung geboten, um aus dem Datenmaterial auf einfachem Weg sinnvolle Erkenntnisse abzuleiten.

Lösung

In einer zentralen NoSQL-Datenbank werden alle Daten integriert. Dabei werden die Daten sowohl im Rohformat der einzelnen Quellen gespeichert als auch in einem abstrakten Zwischenformat, das für Abfragen und Auswertungen optimiert ist. Von der Datenbank getrennte Prozesse integrieren neue Daten in die Datenbank, sobald diese von den jeweiligen Datenquellen bereitgestellt werden. Über eine speziell dafür entwickelte Schnittstelle können beliebige Abfragen und Auswertungen auf dem Datenmaterial durchgeführt werden.

Eine individuell entworfene Weboberfläche bietet ein intuitiv zu nutzendes Werkzeug für Spezialisten und Interessierte zur Durchführung von Analysen und Auswertungen.

Eingesetzte Technologien

Die zentrale NoSQL-Datenbank zur Speicherung der Rohdaten und der aufbereiteten Kennzahlen ist eine MongoDB.

Die einzelnen Importprozesse zur Aufbereitung und Übernahme der Rohdaten aus den unterschiedlichen Datenquellen sind in Groovy entwickelte Scripte.

Die Abfrage- und Auswertungsengine ist eine Grails Webanwendung.

Die Weboberfläche für Anlaysen und Auswertungen ist nach den Prinzipien einer Single Page Web Anwendung mit JavaScript, CSS und HTML5 umgesetzt auf der Basis der Frameworks underscore.js und backbone.js ungesetzt.

Vorteile

Die schemalose Datenspeicherung der NoSQL-Datenbank ermöglicht die einfache Integration von Daten unterschiedlicher Herkunft und unterschiedlicher Struktur. Die eingesetzte NoSQL-Datenbank MongoDB unterstütz dabei besonderes gut die Anforderungen an flexible Abfragen und Analysen, Da trotz der unstrukturierten Datenspeicherung strukturierte, sql-ähnliche Queries möglich sind.

Die Scriptsprache Groovy bietet die notwendige Flexibilität zur Aufbereitung und Integration der Rohdaten aus den unterschiedlichen Datenquellen. Insbesondere lassen sich XML, JSON oder CSV-Daten einfach und unkompliziert auswerten und weiterverarbeiten. Neben der hohen Flexibilität punktet Groovy auch mit Stabilität. Als Sprache, die speziell für die Java JVM entwickelt wurde, lassen sich Groovy-Scripte zuverlässig und mit bewährten Werkzeugen ausführen und überfachen.

Das Gesamtsystem ist klar in drei Teile gegliedert. Die Aufbereitung und Datenintegration auf der einen Seite, Abfragen und Auswertungen auf der anderen Seite und die Datenbank mit dem abstrakten Datenmodell als Vermittler dazwischen. Diese klare Trennung entkoppelt alle Bestandteile in sinnvoller Weise. Neue Datenquellen oder Anpassungen an den bestehenden Quellen können ohne Auswirkung auf Auswertungen und Analysen vorgenommen werden. Gleichzeitig sind Anpassungen und Verbesserungen an der Weboberfläche für Analysen und Auswertungen möglich, ohne dass die Datenanlieferung und -aufbereitung von diesen Veränderungen betroffen sind.

Mögliche Alternativen

Mit einer alternativen NoSQL-Datenbank wie Redis oder CouchDB lässt sich problemlos eine vergleichbare Gesamtarchitektur realisieren. Auf einige spezifische Vorteile der MongoDB muss mann dann natürlich verzichten.

Ebenso ist es möglich, den Datenimport mit einer anderen Script- und der Programmiersprache wie Python, Java, C# oder sogar PHP zu realisieren. Dabei bieten die Scriptsprachen sicherlich eine etwas größere Flexibilität während die Compilersprachen sich ggf. besser in eine bestehenden IT-Infrastruktur einfügen.

Die Weboberfläche für Analysen und Auswertungen kann ebensogut als mobile App ausgeführt werden. Problemlos können Web- und App-Oberfläche parallel eingesetzt werden und sich so gegenseitig ergänzen. Dabei ist es unerheblich, ob die die entstehenden Business Intelligence App als native App unter iOS, Android, Windows Phone oder Blackberry läuft oder als plattformunabhängige, HTML5-basierte WebApp ausgeführt werden soll.

Weiterleiten :
Ähnliche Artikel

Kommentieren