Totgesagte leben länger

Modernisierung eines klassischen BI-Konzepts

Stefan Müller kommentiert als Experte Themen und Trends zu Big Data, Business Intelligence und Analytics. Ursprünglich aus den Bereichen Governance & Controlling und Sourcing Management kommend, leitet er seit 2009 das Business Intelligence-Segment beim Business Open Source-Spezialisten it-novum. Stefan Müller interessiert sich besonders für die Möglichkeiten, die Open Source-Lösungen wie Pentaho und Hadoop bieten, und ist ein gefragter Autor und Referent auf Fachveranstaltungen und Workshops.

Das Konzept des Data Warehouse scheint in Zeiten von Big Data obsolet: zu langsam, zu starr, zu altmodisch. Mit den richtigen Technologien kombiniert besitzt es aber großes Potenzial.

In Zeiten von Big Data, MapReduce und NoSQL (Not only SQL) wirkt das aus den 80er Jahren stammende Konzept des Data Warehouse angestaubt. Als bewährtes Mittel zur Datenintegration und -bereitstellung ist es seit Jahren in Unternehmen etabliert. Angesichts der immer größer werdenden Datenmengen und immer höheren Ansprüchen an Auswertungen scheint es aber, dass es kapitulieren muss.

State-of-the-art anno 198X

Doch gehen wir ein wenig in der Zeit zurück. Vor ca. 20 Jahren wurde das Data Warehouse als neues Konzept eingeführt, um Informationen aus den operativen Quellen eines Unternehmens zu integrieren und Analysen und Berichte zu liefern, die für die Steuerung des Unternehmens verwendet werden können. Daran hat sich bis heute nicht viel geändert: Data Warehouses führen Daten über Extraktions-, Transformations- und Ladeprozesse automatisiert zusammen und bereiten sie auf. Sollen für spezielle Anwendungen oder Geschäftsbereiche Abzüge des Data Warehouse erstellt werden, kann man zusätzlich Data Marts aufbauen. Data Marts sind in der Regel multidimensional konstruiert und daher optimal von analytischen Anwendungen nutzbar.

Stefan Müller, Director Business Intelligence & Big Data bei der it-novum GmbH: "Es ist falsch, vom bewährten Ansatz des Data Warehouse Abschied nehmen zu wollen."
Stefan Müller, Director Business Intelligence & Big Data bei der it-novum GmbH: "Es ist falsch, vom bewährten Ansatz des Data Warehouse Abschied nehmen zu wollen."
Foto: it-novum

Relationale Datenbanksysteme sind ausgereift

Data Warehouses bzw. Data Marts stellen also die zentrale Datenbasis für alle Analysen und Berichte eines Unternehmens dar. Auch wenn sich daran selbst in Zeiten von Big Data nichts geändert hat, haben sie doch einen entscheidenden Nachteil. Zwar basieren sie auf relationalen Datenbanksystemen (RDBMS), die u.a. mit einer ausgereiften, hoch entwickelten Datenbanksoftware, mächtiger Abfragesprache (SQL), vielen verfügbaren Frontends und hoher Zuverlässigkeit und Konsistenz punkten. Allerdings kann die Skalierung von RDBMS bei extrem hohen Datenvolumina unter Umständen problematisch sein: kommerzielle Datenbanksoftware wird schnell teuer (Lizenzkosten) und die Performance sinkt, was ETL-Prozesse und die Abfragegeschwindigkeit ausbremst. Bei umfangreichen Modellen wird die Erweiterung des Datenbankenschemas schwierig und auch die Frequenz der Datenerzeugung und ihre Speicherung können eine Herausforderung darstellen. Sollen zudem unstrukturierte Daten verarbeitet werden, stoßen relationale Datenbanken schnell an ihre Grenzen, weil sie darauf nicht ausgelegt sind.

Aus diesem Grund sind unterschiedliche technologische Ansätze entstanden, um diese Einschränkungen zu umgehen. Einige davon betrachte ich im Folgenden.

Neue Mitspieler: analytische Datenbanken

Analytische Datenbanken erweitern das Data Warehouse auf einfache Weise. Sie basieren zwar auch auf relationalen Datenbanksystemen, sind aber für schnelle Abfragen optimiert und deshalb vor allem für große Datenmengen und analytische Anwendungen geeignet. Ausgewertet wird mit SQL oder BI-Software, sodass hier auch Controller und Business Analysten ran dürfen.

Als Techniken nutzen analytische Datenbanken Spaltenorientierung, massive parallele Verarbeitung (MPP), Datenkompression und In-Memory Speicherung. Das bedeutet, dass man mit ihnen

  • Daten nutzen kann, deren Verarbeitung zu langsam und deren Speicherung zu teuer wäre

  • SQL für Abfragen verwenden kann

  • BI-Frontends nutzen kann

  • schnelle Implementierungen hinbekommt und einen geringen Administrationsaufwand hat

  • keine komplexe Hardware-Architektur braucht.

Mit Hilfe von Data Marts lassen sich analytische Datenbanken leicht mit Data Warehouses kombinieren. Eine Alternative ist das Beladen der Data Marts aus dem Data Warehouse, wobei sie auf seine integrative Schicht zugreifen. Das bedeutet aber viel Aufwand für Modellierung und Entwicklung.

Erweiterung um NoSQL-Datenbanken

NoSQL-Datenbanken wie MongoDB oder Cassandra sind Open Source - schemafrei, verteilt, horizontal skalierbar und besitzen ein nichtrelationales Modell. Das hilft, Schwächen relationaler Datenbanken zu vermeiden, z.B. bei Skalierbarkeit und Performance. Fügt man weitere Server hinzu, lassen sich große Datenmengen vergleichsweise kostengünstig verarbeiten. Die Ausfallsicherheit kann durch die Replikation auf mehreren Servern verbessert werden. Schema-Erweiterungen sind zudem leichter möglich, außerdem bieten ihre einfacheren Schemen mehr Agilität und Flexibilität bei der Anpassung und Erweiterung.

Auch, wenn NoSQL-Systeme viele Lösungsansätze für Big Data bieten, können es ihre Abfragesprachen nicht mit den Möglichkeiten von SQL aufnehmen.BI-Anwendungen nutzen als Abfragesprache SQL. NoSQL-Datenbankenbieten aber im Regelfall keinen direkten SQL-Zugriff. Einige von ihnen ermöglichen bereits in Ansätzen, über spezielle Schnittstellen Berichte direkt aus der Datenbank zu erstellen. Ihr Funktionsumfang ist aber im Vergleich zu SQL deutlich eingeschränkt. NoSQL-Datenbanken lassen sich aber in der Kombination mit dem Data Warehouse trotzdem sinnvoll einsetzen: von den Vorteilen von NoSQL profitiert man in den Applikationsdatenbanken, während für Analysen die Daten in das Data Warehouse geladen werden, wo die relationalen Datenbanken ihre Stärken ausspielen.

1 + 1 = 3: Hadoop und Data Warehouse

Die beiden Grundprobleme beim Einsatz herkömmlicher Data Warehouse-Technologien sind die hohe Anzahl von unstrukturierten Daten und die riesigen Datenmengen, welche die Betriebskosten rapide ansteigen lassen. Aus diesem Grund wurde Hadoop entwickelt. Durch seine besondere Architektur kann es extrem skalieren und auch sehr große Datenmengen performant verarbeiten. Damit eignet sich Hadoop hervorragend für die batch-orientierte Verarbeitung. Dabei reicht Standard-Hardware völlig aus, wodurch das Preis-/Leistungsverhältnis von Hadoop sehr gut ist.

Weil Hadoop keine Datenbank ist, sondern auf HDFS und MapReduce basiert, ist es ein Datenarchiv und gleichzeitig eine Plattform zur Datenanalyse und -aufbereitung. Das System bietet die Grundfunktionen eines Data Warehouse wie Aggregationen oder Summen- und Mittelwertbildungen. Kombiniert mit einem Data Warehouse steigt der Nutzen von Hadoop aber noch mehr: Die Ergebnisse der Hadoop-Verarbeitung können im Data Warehouse oder in Data Marts abgelegt werden, wo sie sich dann mit allen Vorteilen, die eine Data Warehouse-Plattform hat, nutzen lassen. Die eigentlichen Rohdaten liegen nur im Hadoop-System. Momentan werden zwar Werkzeuge für einen performanten SQL-Zugriff auf Hadoop-Daten entwickelt. Beim aktuellen Stand der Technik ist aber die Kombination mit dem klassischen Data Warehouse-Ansatz sinnvoller.

Big Data-Technologien im Zusammenspiel

Wie können nun all diese Technologien gewinnbringend zusammenspielen? Nehmen wir ein Beispiel: Ein Unternehmen betreibt eine Webseite, die viel Traffic generiert. Es möchte die Daten sammeln, um das Verhalten der Besucher zu analysieren und das Kundenverhalten besser zu verstehen. Hier drängt sich ein kombinierter Ansatz geradezu auf. Die Rohdaten für die Analysen kommen aus den Logs der Webserver. Weil NoSQL-Datenbanken effizient mit den riesigen Mengen an Log-Daten umgehen können, werden die Daten der Webapplikation am besten direkt dort abgelegt. So können außerdem neue Datenobjekte unkompliziert ergänzt werden.

In unserem Beispiel fallen täglich hunderte Millionen neue Datensätze an. Traditionelle Data Warehouse-Techniken brauchen für die Verarbeitung solcher Datenmengen zu viel Zeit. Aus diesem Grund werden sie in Hadoop abgelegt. Dadurch wird eine leistungsfähige Batch-Verarbeitung für die Datenaufbereitung möglich. Beim Ablegen werden die Log-Daten zu Page-Leve, Hosts oder Stunden verdichtet und mit Informationen aus Drittquellen angereichert.

Im nächsten Schritt werden die Daten aggregiert und in das Data Warehouse/die analytische Datenbank geladen. Hier kann man jetzt SQL und weitere Technologien einsetzen, um performante Abfragen zu erreichen, z.B. Joins, Gruppierungen, komplexe Filter oder Online Analytical Processing (OLAP).

Koexistenz des Data Warehouse mit den Big Data Stores

Das Beispiel zeigt: das Konzept des Data Warehouse ist auch in Zeiten von Hadoop, MapReduce und Co aktueller denn je. Die Herausforderung besteht nur darin, das Konzept so zu ergänzen und zu erweitern, dass seine Schwächen ausgeglichen werden. Es ist also falsch, vom bewährten Ansatz des Data Warehouse Abschied nehmen zu wollen. Vielmehr ermöglicht die Kombination alter und neuer Technologien bessere und schnellere Analysen und eine solide Datenbasis. (bw)