Auf dem Vormarsch


Analytische Datenbanken 
Es gibt sie schon seit über 15 Jahren: Neue Datenbanktechnologien, die darauf ausgelegt sind, riesige Datenbestände bei gleichzeitig hoher Anzahl von Abfragen durch viele bis sehr viele Nutzer in Sekundenschnelle zu analysieren. Aber erst heute finden sie Beachtung und eine stark zunehmende Nachfrage. 
Der Einsatz solcher analytischen Datenbanken, wie sie jetzt genannt werden, nimmt zu. Wir sehen hier als einen Trend in diesem Jahr einen weiteren Anstieg der Nachfrage, nicht nur ganz allgemein in Business Intelligence, sondern auch ganz besonders im analytischen CRM, wenn es um den Kunden und das Kundenwissen im analytischen CRM geht.
Der Treiber für analytische Datenbanken liegt auf der Hand. Das Datenvolumen steigt schneller als die Leistung von traditionellen Datenbanken. Man schafft es einfach nicht mehr, Daten im Detail zu analysieren, da es schlichtweg gesagt zu lange dauert. Gartner sagt in seinem Bericht zum Magic Quadrat for Data Warehouse Database Management Systems 2010: „Gartner-Klienten stehen bei der Abfrage von Data Warehouses immer häufiger vor erheblichen Performanceproblemen. Auf Grundlage dieser Informationen dürften rund 70 % aller Data Warehouses mit derartigen Problemen zu kämpfen haben."
Was ist anders?
Was machen analytische Datenbanken anders als herkömmliche Datenbanken? Da gibt es in der Tat verschiedene Methoden, die sich auch miteinander kombinieren lassen. Beginnen wir mit spaltenorientierten Datenbanken. Herkömmliche relationale Datenbanken sind zeilenorientiert. Das schafft bei großen Datenmengen einige Probleme, die wir jetzt zuerst beleuchten und danach die Vorteile von spaltenorientierten Datenbanken herausarbeiten. Ein Datensatz, der Beispielsweise einen Kunden beschreibt, hat vielleicht sagen wir 1.000 Attribute, aber wir haben so viele Sätze, wie wir Kunden haben, also durchaus Millionen Sätze und vielleicht sogar noch mehr. Wenn wir nun in einer herkömmlichen Datenbank nach gewissen Kunden mit bestimmten Merkmalen (definiert über die Attribute) suchen, dann muss man eben alle Datensätze lesen. Beim Lesen stößt man gleich an ein ganz allgemeines Problem von herkömmlichen Datenbanken. Die sind nämlich gar nicht zum Lesen vieler Datensätze gebaut, sondern vom Design her eher transaktions-orientiert. Sprich, eine Datenbank gibt mir über einen Index in Bruchteilen von Sekunden eine bestimmte Datenmenge zum Ändern, Löschen oder Neuanlegen.
Will man also Adhoc-Abfragen auf herkömmlichen relationalen Datenbanken durchführen, dann braucht man Indizes und Aggregate, um schnelle Antworten zu erzielen. Das bedeutet aber, dass die Abfragen schon vorher bekannt sein müssen und durch Datenbankspezialisten aus der IT vorbereitet werden müssen (Sie bauen die Indizes und Aggregate). Mit anderen Worten, das ist teuer, weil gut bezahlte Spezialisten notwendig sind. Das ist zudem langsam: 
Denn wenn man mit einer neuen Idee kommt, zu der es noch keine Indizes und Aggregate gibt, dann müssen die erst gebaut werden. Wenn man eine Abfrage ohne eine solche Vorbereitung startet, kann der ganze IT-Betrieb empfindlich gestört werden. Indizes und Aggregate haben noch eine weitere unangenehme Eigenschaft: Sie brauchen Platz und machen die Datenbank um einen meist zweistelligen Faktor grösser als notwendig. Damit wird sie dann immer langsamer. Das führt dazu, dass irgendwann der Augenblick kommt, ab dem man gar keine Abfragen an die Datenbank mehr stellt, weil die Antworten viel zu spät eintreffen. Der Nutzer ist frustriert, das Wissen liegt brach in der Datenbank. Information wird zu einem reinen Kostenfaktor. Wissen über Kunden, Markt, Mitbewerber und Risiken lässt sich nicht mehr anwenden. An dieser Stelle stehen heute viele Unternehmen.
Spaltenorientierung – der usp
Analytische Datenbanken schaffen hier Abhilfe durch ihre Spaltenorientierung. Bei einer spaltenorientierten Datenbank kann jede Spalte in einer eigenen Datei liegen, d.h. auf einen Wert eines Attributs eines Datensatzes folgt in Lese-Reihenfolge nicht das nächste Attribut des selben Datensatzes, sondern das gleiche Attribut des nächsten Datensatzes: Die Zeilen und Spalten der Tabelle werden miteinander vertauscht. Intuitiv funktioniert dies, da in der Analytik meistens wenige Attribute von sehr vielen Datensätzen benötigt werden. Aufgrund der Spaltenorientierung müssen die restlichen Attribute nicht gelesen werden. Mit anderen Worten: das Lesen wird drastisch reduziert, weil man durch das Vertauschen von Zeilen und Spalten nur noch höchstens so viele Datensätze wie Attribute hat. Da die Anzahl der Attribute in der Regel klein ist gegen die Anzahl der Datensätze, bringt das einen hohen Performance-Gewinn. Jedoch wird das Schreiben von Datensätzen dadurch jedoch sehr teuer, was man aber oft durch Differenzdateien zum Teil ausgleichen kann.
Aufgrund dieser Basiseigenschaft von spaltenorientierten Datenbanken erhält man einen weiteren Vorteil. Man braucht keine Indizes und Aggregate mehr. Das macht die Datenbank schlanker, was wiederum das Lesen beschleunigt. Zusätzlich lassen sich die Daten dann komprimieren. Dazu werden einfache Verfahren genutzt, die es erlauben, relationale Operationen auf den komprimierten Daten auszuführen. So können beispielsweise mehrfach vorkommende Werte durch Kürzel fixer oder variabler Länge ersetzt werden, die durch ein Wörterbuch bei Bedarf wieder in die ursprünglichen Werte übersetzt werden können. Folgen identische Werte direkt aufeinander, können diese Sequenzen lauflängencodiert abgelegt werden. Sortierte ganzzahlige Daten können durch Differenzbildung zum jeweiligen Vorgänger oder zu einem lokalen Minimum in wenigen Bits untergebracht werden. Ein solches Komprimieren bringt also Kostenvorteile, da die Datenbank „klein“ wird (Relativ zu einer zeilenorientierten Datenbank können die Daten bis zu 80% und je nach Anbieter auch mehr komprimiert werden.) Man erhält so weitere Performance-Vorteile.
Noch mehr Beschleunigung bringen neue Methoden, um auf komprimierten Spalten zu operieren. Die Benutzerschnittstelle bleibt zwar weiterhin SQL, aber die dahinter liegenden Zugriffsmethoden und -Algorithmen ändern sich. Das wollen wir hier nicht im Einzelnen diskutieren. Als Beispiele seien hier nur das parallele Scannen mehrerer Spalten und das von Google patentierte „MapReduce“-Verfahren genannt.
In-Memory
Eine weitere Beschleunigung lässt sich durch Parallelisieren der Verarbeitung auf Clustern und durch In-Memory-Verarbeitung erreichen. Das gilt sowohl für zeilen- wie auch spalten-orientierte Datenbanken. Daten werden dabei automatisch und gleichmäßig über alle Server eines Clusters verteilt, so dass für Abfragen alle Hardware-Ressourcen optimal ausgenutzt werden. Die Software ist so konzipiert, dass jeglicher Tuningaufwand entfällt, wie er in konventionellen Systemen üblich ist. Die Datenbanklösung legt Indizes automatisch an, analysiert und komprimiert die Daten selbständig und verteilt sie optimal über die Knoten. Intelligente Algorithmen fangen Server-Ausfälle auf und sorgen dafür, dass das System für Nutzer innerhalb weniger Sekunden ohne dessen Zutun wieder zur Verfügung steht. 
Analytische Datenbanken werden in unterschiedlichen Ausprägungsformen angeboten. Es gibt parallelisierte herkömmliche Datenbanken, die in der Regel als Appliance angeboten werden, also eine spezielle Hardware und den parallelen Zugriffsmethoden und Algorithmen. Dabei sind solche Datenbanken dann immer noch zeilenorientiert. Beispiele: EMC Greenplum, Ingres VectorWise, Kognitio, IBM DB2 (InfoSphere Warehouse), IBM Smart Analytics System, IBM Netezza, Oracle Exadata, SAS Scalable Performance Data Server, Teradata
Dann gibt es analytische Datenbanken, die spaltenorientiert sind, aber weitgehend Hardware-unabhängig eingesetzt werden können. Beispiele: Apache Hadoop HBase, Illuminate, InfoBright, kx Systems, Sand Analytics, SAP Sybase IQ, HP Vertica, Vectornova.
 
Und schließlich gibt es spaltenorientierte Datenbanken, die als Appliance teilweise mit spezieller Hardware angeboten werden, aber insbesondere In-Memory einsetzen. Beispiele: 1010Data, Exasol, IBM Smart Analytics Optimizer, ParAccel, SAP HANA.
Es gibt auch bereits erste Angebote von analytischen Datenbanken in der Cloud. Die Oracle Exadata Database Machine kann beispielsweise auch in Private Clouds betrieben werden, und Anbieter wie 1010Data und Kognitio bieten sowohl eine on premise-Lösung als auch ein DWaaS (Data Warehouse as a Service). Daneben gibt es auch noch besondere Verfahren wie beispielsweise „Database Images“, das von Panoratio eingesetzt wird. Solche besonderen Verfahren bringen ähnliche Performanz- und Skalierungsgewinne.
Wir sehen für analytische Datenbanken in 2011 ein gutes Wachstum im Business Intelligence-Markt, vor allem auch im Einsatz im analytischen CRM. Einer der Treiber wird dabei sicherlich das Social Media Monitoring sein. Analytische Datenbanken lösen die Probleme, mit denen die Kunden heute kämpfen: Performance, Skalierbarkeit und Kosten. 
Fassen wir auch nochmal die Vorteile zusammen:
  • Informationen sind flexibler abrufbar und stehen bis zu 100mal schneller zur Verfügung.
  • Die Nutzerzufriedenheit erhöht sich signifikant aufgrund des schnelleren und flexibleren Zugriffs auf Information. Es können jetzt Daten analysiert werden, die vorher ohne Nutzen, aber mit Kosten gespeichert wurden. Das unterstützt und schafft bessere Entscheidungen.
  • Die IT wird entlastet, da die analytischen Datenbanken hoch automatisiert sind und ein spezielles Wissen über Datenbankdesign und Tuning deutlich weniger gefragt ist.
 
Zwei Dinge sollten zum Schluss noch klar gesagt werden: Eine analytische Datenbank macht ein physikalisches Datenbankdesign und Tuning weitgehend obsolet, aber sie ersetzt keineswegs das logische, fachliche Design der analytischen Datenbank. In diesem Sinne bleibt weiterhin ein Information Management unabdinglich, auch wenn analytische Datenbanken eingesetzt werden. Denn ein Stamm- und Metadaten-Management, ein Datenqualitäts-Management, eine Information Governance und die anderen Aufgaben im Information Management bleiben auch mit analytischen Datenbanken kritische Erfolgsfaktoren.
 
Eine analytische Datenbank ersetzt nicht die herkömmlichen Datenbanken in der Transaktionsverarbeitung. Analytische Datenbanken sind eine neue Generation von Datenbanken für analytische Aufgaben im Unternehmen. Ein Unternehmen braucht heute eben in der Regel zwei unterschiedliche Datenbanktechnologien, eine für die analytischen Aufgaben, eine für die Transaktionsverarbeitung. Dabei gilt natürlich der bekannte Satz: Keine Regel ohne Ausnahme: Oracle Exadata eignet sich sowohl für hoch-performante analytische und transaktionsorientierte Aufgaben. Schließlich sollte auch noch bemerkt werden, dass in dieser Richtung auch die SAP forscht und mit Business By Design auch bereits eine Lösung für den Mittelstand im Markt hat. 
 
Fazit: Analytische Datenbanken bringen den Nutzern ganz neue Möglichkeiten, sowohl in der Skalierbarkeit, der Performance als auch in den Betriebskosten. Neueste Techniktrends sind hierbei die Spaltenorientierung inklusive Komprimierung und Zugriffsverfahren, wie massiv parallele Verarbeitung sowie die In-Memory-Technologie. Wer heute komplexe Analysen auf großen Datenmengen durch viele Benutzer mit vielen Abfragen ausführt und eine hohe Performance und Skalierbarkeit bei einfacher Wartbarkeit benötigt, sollte analytische Datenbanken auf jeden Fall berücksichtigen. Wir meinen: Eine Evaluierung lohnt sich auf jeden Fall. Damit sollte man nicht mehr warten!
Dr. Wolfgang Martin, www.wolfgang-martin-team.net
 
Diesen Artikel lesen Sie auch in der it management , Ausgabe 9-2011.   

Anzeige

Weitere Artikel

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.