MongoDB und Pentaho – Teil 1: Real-Time Analytics mit NoSQL

1
Datendschungel: weniger undurchdringlich mit MongoDB und Pentaho

Datendschungel: weniger undurchdringlich mit MongoDB und Pentaho

Seit Pentaho im Herbst 2014 die Version 5.1 seiner Business Intelligence Suite veröffentlicht hat, lassen sich native Datenanalysen auch direkt auf nicht-relationalen MongoDB-Speichern durchführen. Der Pentaho Analyzer ist damit die erste echte End-to-End-Analyselösung für MongoDB. Anwender können dadurch die Vorteile der dokumentenorientierten Datenbank in puncto Flexibilität und Geschwindigkeit voll ausschöpfen. Zeit, einen Blick auf die NoSQL-Datenbank MongoDB zu werfen.

MongoDB ist zwar erst seit 2009 am Markt, doch bereits eine der führenden NoSQL-Datenbanken. Es wurde mit dem Ziel entwickelt, die strukturbedingten Begrenzungen traditioneller Datenbankensysteme zu durchbrechen, um den steigenden Anforderungen an die Geschwindigkeit von Datenverarbeitungen und -auswertungen gewachsen zu sein. Konkret beinhalten NoSQL-Umgebungen die Möglichkeit, unstrukturiert vorliegende Daten zu erfassen. Der entscheidende Unterschied zu relationalen Datenbanksystemen besteht darin, dass MongoDB auf feste Tabellenschemata verzichtet und Dokument-orientiert arbeitet.

Dokumentenbasierte Speicherung und dynamische Schemata
Eine der Kerntechniken von MongoDB ist die dokumentenbasierte Speicherung der Daten. MongoDB ist auf ein dynamisches Schema ausgelegt, dass sich neuen Daten flexibel anpassen kann. Auf MySQL-typische Relationstabellen und Joins, die mit dem Ausbau der Datenbank immer komplexer werden, wird verzichtet. Um Dokumente mit ähnlicher Struktur zusammenzufassen nutzt das Datenbankmanagementsystem sogenannte Collections. Die einzelnen Dokumente können eine beliebige Anzahl frei definierbarer Felder besitzen, und auch verschachtelte Array-Strukturen sind möglich.

Daten werden in Form von Dokumenten im BSON-Format (Binary JSON) abgespeichert. Durch die Java-nahe Notation eignet sich MongoDB insbesondere für Web-Anwendungen, da die Daten ohne Transformation direkt vom Datenbanksystem abgespeichert werden können. Bei MongoDB gibt es keine Abfragesprache wie SQL. CRUD-Operationen (create, read, update, delete) werden durch objektspezifische Methoden der jeweiligen Programmiersprache realisiert, die in verschiedenen Client-Drivers zusammengefasst sind. MongoDB unterstützt alle im Web gängigen Programmiersprachen wie JavaScript, Perl, Python oder Ruby.

Vergleich der relationalen und dokumentenbasierten Speicherformen

Vergleich der relationalen und dokumentenbasierten Speicherformen

Performance, Skalierbarkeit und Ausfallsicherheit
MongoDB eignet sich vor allem für Anwendungen mit einem hohen Datenvolumen und Datendurchsatz, also im Bereich Real-Time-Analytics. Ausschlaggebend sind dafür die horizontale Skalierung über Sharding und das Memory-Mapping.

Beim Sharding werden die Daten anhand des Shardingkeys auf mehrere virtuelle Maschinen aufgeteilt (in sog. Chunks). Der Config-Server gibt Auskunft darüber, wo welche Shards hinterlegt sind. Synchronisiert werden sie von mongos, eine Art Router. Vorteil des Shardings: der Arbeitsaufwand, wie er z.B. beim Abfragen von Daten entsteht, wird parallel durch mehrere Rechner erledigt. Das liefert eine hohe Performance und minimiert die Gefahr von möglichen Engpässen (Bottlenecks). Durch Verarbeitungsgeschwindigkeiten, die mit einem In-Memory-System vergleichbar sind, ermöglicht MongoDB die Auswertung von Daten in Echtzeit.

Horizontale Skalierbarkeit unter Verwendung von Sharding

Horizontale Skalierbarkeit unter Verwendung von Sharding

Die Ausfallsicherheit wird bei MongoDB durch Replica Sets sichergestellt. Ein Replica Set besteht aus mindestens einem Primär- und einem Sekundärknoten. Fällt das primäre Replikat aus, z.B. aufgrund von Hardware- oder Softwareproblemen, wählt MongoDB ein sekundäres Replikat und konfiguriert es als neues Primärreplikat. Das ausgefallene Replikat wird nach der Wiederherstellung automatisch als Sekundärreplikat konfiguriert.

Anwendungsfälle und Anwender
MongoDB wird von namhaften Anwendern für die gängigen BI-Bereiche ETL, OLAP und Data Mining angewendet. Die folgenden drei Cases sind Auszüge aus unserem Whitepaper „MongoDB“.

Case 1: High Volume Data Feeds
Big Data, also riesige Datenströme, zeichnen sich dadurch aus, dass sie extrem schnell erzeugt werden und in sehr unterschiedlicher Form vorliegen. Häufig werden dabei semi- oder unstrukturierte Datenquellen verwendet. Auch das Format und die Struktur der Daten kann stark variieren. Für die schnelle Verarbeitung dieser Daten sind daher besonders skalierbare und performante Datenbankmanagementsysteme notwendig, die flexibel bezüglich der Struktur und der Datenformate sein müssen. MongoDB bietet diese Möglichkeiten und wird deshalb im Big Data Kontext gerne eingesetzt, z.B. von dem Online-Netzwerk Craigslist und dem Sicherheitssoftware-Hersteller McAfee.

Case 2: Operational Intelligence
Hinter dem Begriff Operational Intelligence (OI) verbirgt sich eine neue, dynamische und in Echtzeit agierende Form der Datenauswertung. Bei OI werden maschinengenerierte Daten in Echtzeit geladen und verarbeitet. Möglich ist das durch ein direktes Ablegen und Indexieren der Daten. Eine spezielle Transformation der Maschinendaten, wie z.B. bei Log- und Sensordateien, ist nicht notwendig. So können ungewöhnliche Ereignisse schneller identifiziert und analysiert und eventuelle Fehler rascher behoben werden.

OI wird gerne für Real-Time-Dashboards verwendet. In diesen Dashboards lassen sich Ereignisse ohne große Verzögerung graphisch darstellen. Neue Möglichkeiten bietet OI auch im Marketing-Bereich. Hier wird MongoDB als Grundlage für AD-Targeting und Social Media Monitoring verwendet. Bekannte Nutzer des Datenbankmanagementsystems im OI-Sektor sind z.B. der CRM-Entwickler Salesforce und die Kreativagentur Razorfish.

Case 3: Content Management
Content Management-Systeme dienen zur Speicherung und Verwaltung von Informationen und Metadaten für eine Reihe von Anwendungen wie Webseiten und Datenarchive. Inhalte sind heute viel komplexer und bestehen neben Texten auch aus Bildern, Tönen, Videos und integrierten sozialen Medien. Die Mehrheit der Datenbankmanagementsysteme (DBM) stößt dabei schnell an ihre Grenzen, weil sie die heterogenen Daten nur unter großem Aufwand bzw. durch Kombination verschiedener DBMs verwalten können.

Eine Alternative ist MongoDB. Die dokumentenorientierte Speicherform und das dynamische Schemadesign ermöglichen die effiziente Verwaltung der heterogenen Daten unabhängig von Herkunft und Struktur. Alle Daten können durch einen einzigen Datenspeicher repräsentiert werden. Dadurch ist es vergleichsweise einfach möglich, inhaltsreiche Anwendungen z.B. mit personalisiertem Inhalt und Layout aufzubauen. Im Umfeld Content Management setzen das Reiseportal Expedia und der Softwareentwickler SAP MongoDB ein.

Die Beispiele zeigen, dass NoSQL im Bereich Business Intelligence eine immer größere Rolle spielt. Im zweiten Teil dieses Blog-Duetts wenden wir uns der BI-Suite von Pentaho zu und zeigen, was das quelloffene Open Source-BI zusammen mit MongoDB im Unternehmenseinsatz leisten kann.

Diese Artikel könnten Sie auch interessieren:

Tags: , , , ,

Stefan Müller - Director Business Intelligence & Big Data
Nach mehreren Jahren Tätigkeit im Bereich Governance & Controlling und Sourcing Management ist Stefan Müller bei it-novum gelandet, wo er den Bereich Business Intelligence aufgebaut hat. Stefans Herz schlägt für die Möglichkeiten, die die BI-Suiten von Pentaho und Jedox bieten. Er beschäftigt sich aber auch mit anderen Open Source BI-Lösungen. Seine Begeisterung für Business Open Source für Datenanalyse und -aufbereitung gibt Stefan regelmäßig in Fachartikeln, Statements und Vorträgen und als Experte der Computerwoche weiter.
Webprofile von Stefan: Twitter, XING, Google+

Ein Gedanke zu „MongoDB und Pentaho – Teil 1: Real-Time Analytics mit NoSQL

  1. Pingback: Reporting- und Analysetools anwenderorientiert kombinieren

Kommentar schreiben

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.