MongoDB und Pentaho: Real-Time Analytics mit NoSQL

MongoDB und Pentaho: Real-Time Analytics mit NoSQL
MongoDB und Pentaho: Real-Time Analytics mit NoSQL | © kentoh @ Shutterstock.com

Seit Pentaho die Version 5.1 seiner Business Intelligence Suite veröffentlicht hat, lassen sich native Business Intelligence-Analysen 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. Das Tool ermöglicht es dem Anwender, die Vorteile der dokumentenorientierten Datenbank in puncto Flexibilität und Geschwindigkeit voll auszuschöpfen. Zeit, einen Blick auf MongoDB, den Marktführer im Bereich NoSQL-Datenbanken, 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.

Performance, Skalierbarkeit und Ausfallsicherheit von MongoDB

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 sogenannte 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 zum Beispiel 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.

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, beispielsweise 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.

MongoDB: Anwendungsfälle und Anwender

MongoDB wird von namhaften Anwendern für die gängigen BI-Bereiche ETL, OLAP und Data Mining angewendet.

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, zum Beispiel 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.

Operational Intelligence 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.

“Ihr wollt wissen, wie ihr #MongoDB anwenden könnt? – 3 Beispiele #NoSQL #Data“

Twittern WhatsApp

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 zum Beispiel 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 Business-Intelligence-Bereich eine immer größere Rolle spielt. Im nächsten Beitrag „BI-Analysen der nächsten Generation“ wenden wir uns der BI-Suite von Pentaho zu und zeigen, was das quelloffene Open Source-BI zusammen mit MongoDB im Unternehmenseinsatz leisten kann.

Retweets

Jetzt tweeten

Wie fühlen Sie sich nach der Lektüre dieses Blogbeitrags?

"MongoDB und Pentaho: Real-Time Analytics mit NoSQL"