BigData für Datenbanken und Reporting

Big DataBig-Data ist die wesentliche technische Herausforderung der letzten Jahre. Big-Data Technologie macht Lösungen möglich, die vorher allenfalls in speziellen Nischen der Forschung denkbar erschienen. Als Motor dieser Entwicklung sieht man die Daten und verweist darauf, dass in den letzten Jahren mehr Daten angesammelt wurden als in der gesamten Menschheitsgeschichte vorher. Weiter verweist man auf die Rate mit der diese Datenmenge Jahr für Jahr exponentiell weiter wächst.

Offen bleibt dabei jedoch die Frage, warum das alles erst jetzt passiert – denn „sehr viele Daten“ gab es eigentlich schon immer. Bei näherem Hinsehen zeigt sich jedoch, dass es technische Entwicklungen der letzten Jahre sind, die Big-Data überhaupt erst möglich machen. Denn Big-Data erfordert typischerweise den Einsatz von Lösungen für die Speicherung und die Verarbeitung, die sich von den klassischerweise eingesetzten Lösungen fundamental unterscheiden.

Prozessoren werden nicht mehr schneller

Seit den sechziger Jahren des letzten Jahrhunderts wird die Hardwareentwicklung vom Mooreschen Gesetz determiniert, nach dem sich die Zahl der Transistoren auf einem Chip alle 12-24 Monate verdoppelt. Lange Jahre bedeutete dies auch ein exponentielles Wachstum der CPU-Taktung, die Prozessoren wurden von Jahr zu Jahr schneller und die Taktrate (MHz, später GHz) war ein wesentliches Merkmal neuer Prozessoren.

Big DataWie die Abbildung zeigt, wurde dieser Trend in der Mitte des letzten Jahrzehnts gebrochen. Die Taktrate neuer Prozessoren nimmt nicht mehr zu. Ungebrochen bleibt aber das Mooresche Gesetz, die Zahl der Transistoren pro Chip wächst weiter exponentiell. Die zunehmende Zahl der Transistoren nutzen die Chipentwickler nun für die Erstellung von Multicore-CPUs. Ein einzelner Chip enthält nicht mehr eine schnelle CPU – stattdessen enthält er mehrere Rechenkerne.

Folge: Parallele Verarbeitung wird nötig

Führte die Hardware-Entwicklung früher dazu, dass auch alte Software auf neuen Rechnern schneller lief – so gilt dies heute nicht mehr: Um Multikern-Prozessoren voll auszulasten muss Parallelverarbeitung genutzt werden. Die alten Anwendungen sind dagegen typischerweise sequentiell programmiert worden. Dies gilt insbesondere für Datenbank-Schnittstellen, wo die Sequentialität oft erzwungen wird, um die Konsistenz der Änderungen sicher zu stellen. So werden z.B. alle Update-Transaktionen von SAP R/3 in einem einzelnen Thread verarbeitet. Parallel-Verarbeitung bedeutet daher auch eine neue Form der Anwendungsentwicklung.

Speicher wird weiter billiger

Auch bei Speichermedien gibt es einen seit Jahrzehnten anhaltenden Trend. Kostete in den sechziger Jahren ein Megabyte Speicher auf Kernspeicherkarten gut fünf Millionen Dollar, so bezahlt man für dieselbe Datenkapazität auf einem aktuellen 16-Gigabyte-DIMM gerade noch einen halben US-Cent.

Vor fünfzehn Jahren wäre dies in etwa der Preis gewesen, den man für ein Megabyte Festplattenkapazität gezahlt hätte (0,58 US-ct auf einer Maxtor M96147U8). Es ist somit bezahlbar geworden, Daten im Hauptspeicher zu halten, die früher der Festplatte vorbehalten waren. Im Prinzip können die gesamten Unternehmensdaten wirtschaftlich bezahlbar in In-Memory-Datenbanken gehalten werden.

Big DataDies bedeutet zunächst einmal einen enormen Geschwindigkeitsvorteil: Die Zugriffszeiten sind bei RAM etwa 100.000-mal geringer als bei Festplatten. Vergleichbar etwa dem Unterschied zwischen einem Informationsaustausch per Telefon (5 Sekunden) und per Brief (6 Tage, ca. 518.400 Sekunden).

Darüber hinaus bietet RAM aber auch einen flexiblen Zugriff auf die gespeicherten Daten. Demgegenüber ist es bei einer Festplatte mit rotierenden Platten und einem beweglichen Lesekopf entscheidend, möglichst größere Datensegmente zu lesen ohne den Lesekopf zeitaufwändig neu zu positionieren.

Spaltenorientierte Datenbanken

Eine einfache In-Memory-Datenbank ist zunächst einmal nicht performanter als eine klassische relationale Datenbank mit einer entsprechenden Menge an Hauptspeicher für Caching. Weitere Chancen zur Performanceverbesserung ergeben sich jedoch durch die flexiblen Zugriffsmöglichkeiten.

Traditionelle Datenbanken sind statisch und zeilenorientiert. Die Werte eines Datensatzes liegen im Speicher (auf der Festplatte) hintereinander. In der Datenbank wird für jeden Eintrag eines Datensatzes gleich viel Speicher reserviert, auch wenn der Wert leer (NULL) ist. Beim Lesen wird grundsätzlich der ganze Datensatz eingelesen.

Alternativ lassen sich die Daten einer Datenbank auch spaltenorientiert abspeichern, es liegen also die Daten einer Spalte im Speicher hintereinander. Der flexible Speicherzugriff erlaubt es, die Daten flexibel zu speichern – leere Zellen beanspruchen nur noch ein Minimum an Speicher. Zudem lässt sich Datenkompression anwenden, um den Speicherverbrauch noch weiter zu reduzieren. Die Spaltenorientierung erleichtert es auch, typische Selects durch den Einsatz mehrerer CPUs zu parallelisieren. Nach dem Laden der Daten einer Spalte wird die Aufgabe, die relevanten Werte zu identifizieren, auf mehrere Cores aufgeteilt.

Diese Mechanismen werden beispielsweise in der SAP HANA-Datenbank angewendet. Sie bilden so aber auch die Grundlage für z.B. die Apache HBase, eine populäre, Big-Data Datenbank auf der Grundlage von Hadoop.

Diese technischen Lösungen erlauben es nicht nur, riesige Datenmengen hochperformant zu verarbeiten, sie erlauben auch neue Lösungsansätze für typische Aufgaben der klassischen IT, z.B. den Umgang mit Datenbanken.

Big DataFolge: Hybride Datenbankverwendung

Im Umgang mit Datenbanken unterscheidet man derzeit zwischen OLTP (On-Line Transactional Processing) und OLAP (On-Line Analytical Processing). Im OLTP dient die Datenbank als Speicher, in dem eine Anwendung Daten ablegt, weil sie nicht mehr im Hauptspeicher gehalten werden können oder um sie dauerhaft verfügbar zu halten. OLAP bezeichnet die Auswertung von Daten für das Reporting. Klassisch werden für OLTP und OLAP zwei Datenbanken eingesetzt. So vermeidet man eine Beeinträchtigung der Anwendung durch langlaufende Auswertungen, vereinfacht es, Daten aus mehreren Systemen zusammenzuführen und erleichtert eine Historisierung von vergangenen Zuständen.

Hauptnachteil des Vorgehens ist, dass unterschiedliche Datenmodelle erstellt, weiterentwickelt und gewartet werden müssen. Zudem müssen die Daten aus der einen Datenbank in die andere überführt werden. Eine solche ETL-Anwendung (Extract, Transform, Load) muss erstellt, weiterentwickelt und gepflegt werden. Darüber hinaus sind die Laufzeiten solcher ETL-Anwendungen oft erheblich, damit erfolgt die Ausführung typischerweise in der Nacht um die Anwendungsdatenbank nicht zu belasten. Die Daten in der OLAP-Datenbank sind also nicht aktuell.

Die Leistungsfähigkeit von spaltenorientierten In-Memory Datenbanken macht es technisch möglich die Unterscheidung von OLTP und OLAP aufzugeben. Durch die gesteigerte Leistungsfähigkeit ist eine einzelne In-Memory Datenbank in der Lage, Reportinganforderungen zu erfüllen ohne die Anwendung zu beeinträchtigen. Man spricht von „Hybrid Transactional Analytical Processing“ (HTAP).

Big-Data Technologie bei S&N

S&N arbeitet aktiv an der Analyse und Bewertung der neuen Techniken und hat bereits in mehreren Kundenprojekten praktische Erfahrungen im Einsatz der Technologie gewonnen. Zudem treibt S&N die Entwicklung im Rahmen eines vom Bundeswirtschaftsministerium geförderten ZIM-Projekts mit voran.

Textanalyse

Big Data TextanalyseIn einem gemeinsamen Projekt mit der Universität Paderborn arbeitet S&N an einem Werkzeug zur Akquise und Analyse von Texten. In dem Projekt, das vom Bundeswirtschaftsministerium aus dem Zentralen Innovationsprogramm Mittelstand gefördert wird, wurde unter anderem eine Bibliothek mit Standardverfahren zur Textanalyse zusammengestellt und in das Werkzeug integriert.

Die in Texten enthaltenen Informationen sind nicht ohne Weiteres computergestützt zu verarbeiten. Eine Möglichkeit zur Aufbereitung für die Computerverarbeitung ist die Extraktion von statistischen Texteigenschaften – etwa der Häufigkeit von Worten oder Wortgruppen. Alternativ kann dabei auch auf die Wortstämme oder die Grundform von Worten zurückgegriffen werden. Damit werden unterschiedliche Wortformen zusammengefasst.

Im Projekt wurde eine Sammlung von Standardverfahren für derartige Analysen in einer Bibliothek zusammengefasst. Zur Organisation der Verfahren wurde ein übergreifendes Typsystem erarbeitet. Dieses Typsystem enthält ergänzend Typen für komplexere Analysen, mit denen etwa Stimmungen von Texten (Sentiment Analysis) oder Stimmungen zu Teilthemen von Texten ermittelt werden (sog. Aspect Based Sentiment Analysis). Die Erstellung solcher Verfahren ist eines der nächsten Zwischenziele im Projekt.

Ansprechpartner. Dr. Klaus Schröder; Turn on Javascript!