Original-URL des Artikels: https://www.golem.de/news/data-management-wie-hauptspeicherdatenbanken-arbeiten-1410-109813.html    Veröffentlicht: 15.10.2014 12:05    Kurz-URL: https://glm.io/109813

Data Management

Wie Hauptspeicherdatenbanken arbeiten

Was ist der aktuelle Stand der Forschung und Technik für Hauptspeicherdatenbanken? Wie lassen sich disruptive Eigenschaften für Anwendungen im "Immunsystem" des Unternehmens ausnutzen und wann ist der Einsatz dieser Technologie im Unternehmen wirtschaftlich sinnvoll?

In der Vergangenheit haben Datenbankmanagementsysteme für die Datenspeicherung Festplatten aufgrund ihrer großen Kapazität genutzt. Hauptspeicher wurden als Pufferspeicher (Cache) verwendet, um häufig angefragte Daten zwischenzuspeichern und auf Anfrage schnell verfügbar zu haben. Main-Memory-Database-Management-Systeme (MMDBMS) drehen das um. Sie speichern alle oder einen Großteil der Daten komplett im Hauptspeicher und die Festplatte wird nur als Sekundärspeicher benutzt, um Daten gegen Stromausfälle zu sichern. MMDBMS weisen viel schnellere Antwortzeiten als traditionelle festplattenbasierte Systeme auf. Dies begründet sich aus den viel kürzeren Zeiten für Zugriffe auf die Daten im Hauptspeicher. Insgesamt ermöglichen MMDBMS extrem schnelle Antwortzeiten auf großen Datenmengen, vorausgesetzt der Datenbestand passt in den Hauptspeicher, und unterstützen die SQL-Anfragesprache sowie Erweiterungen für das Data- und Text-Mining.

Zusammenspiel zahlreicher Technologien

Die zunehmende Bedeutung von Hauptspeicherdatenbanken belegen bereits einige kommerzielle Systeme, wie SAP HANA, EXASolution, Parstream oder der Forschungsprototyp Hyper aus Deutschland. Ausgewählte internationale Anbieter sind MonetDB, IBM Blu, Oracle 12c, MemSQL, Microsoft Hekaton und HP Vertica. MySQL bietet ein Hauptspeicher-Backend auf Basis von Heap-Tabellen. Der MySQL-Cluster ist ein paralleles MMDBMS, das ACID-Eigenschaften durch hohe Verfügbarkeit (Replikation) sicherstellt.

MMDBMS sichern ACID-Eigenschaften auch bei Stromausfall ab. Ein MMDBMS verwaltet primär die Daten im Hauptspeicher, bei dessen Ausfall würde jedoch die wichtige ACID-Eigenschaft "Durability" verletzt. Die meisten MMDBMS sichern daher ACID-Eigenschaften über einen der folgenden Mechanismen ab:

Transaktionsprotokollierung: Hier werden die Änderungen an Datensätzen parallel zum Hauptspeicher in eine Journal-Datei geschrieben, oft liegt die Datei auf einem schnell drehenden Disk Array oder auf Solid-State-Discs (SSDs). Die Datei ermöglicht die automatische Wiederherstellung in einem MMDBMS. Eine Variante sind Append-Only-Systeme, die Änderungen nicht überschreiben, sondern an das Ende der Tabelle anhängen und das neue Datum mit einem Zeitstempel markieren. Das DBMS greift bei Anfragen nur auf diese neuen Einträge zu und löscht asynchron ältere Einträge. Beispielsweise verwaltet das System SAP HANA Transaktionen in einem besonderen differenziellen Speicher und überführt diese regelmäßig in einen spaltenorientierten Datenspeicher.

Nicht-flüchtiger RAM-Speicher (NVRAM): Dieser Speicher ist üblicherweise in der Form eines statischen RAM mit Batterie (Batterie-RAM) oder eines elektrisch löschbaren programmierbaren ROM (EEPROM). Mit dieser Methode kann das MMDBMS den letzten konsistenten Zustand beim Neustart wiederherstellen.

Hochverfügbarkeitsimplementierungen: Sie basieren auf einer Datenbankreplikation mit einem automatischen Failover-Protokoll zu einer identischen Standby-Datenbank, auf die das System im Fehlerfall zurückgreift.

Disc-is-the-new-Tape: Insbesondere aus Kostengründen wurden und werden sehr große Daten meistens zur Archivierung auf Tape gespeichert. Deutlich schnellerer disc-basierter Speicher dient in RDBMS für transaktionale (OLTP) und analytische Workloads (OLAP) und nochmals schnellerer Hauptspeicher als Cache. MMDBMS verschieben diese Hierarchie näher an die CPU heran, disc-basierter Speicher hat im MMDBMS nun eine Archiv- und Logging-Funktion. Im Hauptspeicher erfolgen OLTP und OLAP Workloads, und der nochmals deutlich schnellere CPU-Cache dient jetzt der Analyse von Daten. Diese Eliminierung des Hauptoptimierungsfaktors I/O-Kosten ermöglicht völlig neue Optimierungsprinzipien. Ihr komplexes Zusammenspiel ermöglicht erst den enormen Geschwindigkeitsvorteil von MMDBMS gegenüber eher disc-basierten DBMS.

Neue Optimierungsprinzipien

Unterstützung von überwiegend lesenden Anwendungsszenarien: Transaktionelle disc-basierte Systeme nutzen vorwiegend noch eine zeilenbasierte Speicherorganisation. Diese fokussiert Schreiboperationen auf wenige physische Speicherorte und vereinfacht den Schutz der Daten vor konkurrierenden Zugriffen zur Sicherstellung der Datenkonsistenz. Systeme, die nur lesend zur Berichtsgenerierung oder zur Analyse auf Daten zugreifen, profitieren eher von einer spaltenorientierten Organisation. Das spaltenorientierte Layout reduziert den Aufwand für den Datenzugriff, wenn Anfragen nur einen Teil einer Datenzeile lesen. Daten, die zu einer Zeile gehören, werden dabei nicht mehr nebeneinander innerhalb eines Datums gespeichert, sondern die Daten einer Zeile werden aufgeteilt und gemeinsam mit allen anderen Daten einer Spalte gespeichert.

Kompressionsverfahren und Multi-Core-Architekturen: Spaltenorientierte Daten lassen sich meist besser komprimieren, da sie das gleiche Format haben und eine höhere Datenredundanz aufweisen. Die meisten MMDBMS benutzen daher Kompressionsverfahren, um den Hauptspeicher effizient zu nutzen und Zugriffskosten zu minimieren. Moderne Hardware mit mehreren Cores und speziellen Chips kann die Kompression und Dekompression direkt unterstützen, so dass dadurch kaum Geschwindigkeitseinbußen entstehen. Bestimmte Berechnungen können auch, abhängig vom Kompressionsverfahren, direkt auf komprimierten Daten ausgeführt werden.

Indexstrukturen für Hauptspeicher: Datenbanken unterstützen Anfragen, die eine hohe Selektivität aufweisen, also nur einen geringen Teil der verfügbaren Daten lesen sollen, mit einem Index. Auch MMDBMS bieten einen Index an und vermeiden somit einen Full-Table-Scan über den gesamten, eventuell mehrere TByte großen Hauptspeicher. Einige MMDBS benutzen dafür hoch komprimierte Indexe, welche als Bitvektoren gespeichert werden, um Anfragen mit Selektionen über viele Attribute, zum Beispiel beim Zugriff auf Teile einer riesigen Faktentabelle in einem Data Warehouse, effizient mit sehr geringer Latenz beantworten zu können. Das spaltenorientierte Layout erlaubt den effizienten Zugriff auf Daten vektorisiert von Rechenkernen mittels SIMD-Anweisungen (Single Instruction, Multiple Data). Für Anfragen, die sich nur auf einen Teil der Daten beziehen, kann die Anzahl der Datenzugriffe reduziert werden, was die Latenz der Datenanalyse zusätzlich verbessert.

Interaktive Analyse frischer transaktionaler Daten

Seit vielen Jahren ist die Aufgabe des Unternehmers die Gewichtung der besten Rekombinationsmöglichkeiten und die wirtschaftlich sinnvolle Verwertung der erkannten Muster. Welche Prozesse im Unternehmen profitieren von potenziell mehrere Größenordnungen schnelleren Antwortzeiten im MMDBMS und benötigen gleichzeitig einen konsistenten, frischen Datenbestand?

MMDBMS ermöglicht die Analyse "frischer" Daten, erzeugt durch Maschinen oder Menschen. MMDBMS wurden und werden in der Telekommunikationsbranche eingesetzt. In dieser Branche erzeugen Maschinen - Router und anderes Netzwerkequipment - kontinuierliche, zu überwachende Datenströme in hoher Varianz, Geschwindigkeit und Volumen. Zu den Szenarien gehören die Suche nach Netzwerkanomalien oder nach Ineffizienzen und die Überwachung der Rohdaten aus dem Netzwerk in Nahe-Echtzeit. Fallende Hardwarepreise erlaubten auch den Einsatz in OLTP- und OLAP-Szenarien in anderen Branchen. Dazu gehört die Spieleindustrie - Überwachung der Spieler und zeitnahes Anbieten von hilfreichen Artefakten im Spiel -, der Verkauf am Point-of-Sale (Anbieten von Produkten während des Verkaufsgesprächs), die Preisüberwachung und -bildung in der Reisebranche, zum Beispiel bei der Vergabe von Sitzen in Flügen, das Marketing (Social Media Kommunikation, Tracking von Webserverlogs und optimale Platzierung von Produkten) und die generelle Unternehmenssteuerung, also Data Warehousing und Business Intelligence Anwendungen.

MMDBMS als Datenspeicher für komplexe ERP/ABAP-Anwendungen

Prozesse, zum Beispiel im Supply Chain Management/Einkauf, der Logistik oder im Verkauf, können ebenfalls von Analysen auf frischen, also minuten- oder sekundengenauen, transaktionalen Daten im MMDBMS profitieren. SAP-Anwendungen zur Unterstützung dieser Prozesse greifen überwiegend lesend mit Lookup-, Bereich- und Scan-Anfragen auf Daten in einem DBMS zu, schreibende Zugriffe sind seltener. Die eigentliche Datenintegration erfolgt häufig in der Programmiersprache ABAP, das ABAP-Programm stellt dann die Anfragen an das DBMS. Ein MMDBMS kann diese Art von Workloads drastisch optimieren, ohne dass Programmierer den Code der Anwendungen gravierend ändern müssen. Das Resultat ist wiederum eine höhere transaktionale Datenfrische in der Anwendung und für den Anwender eine gefühlt deutlich höhere Interaktivität, selbst bei komplexen Anfragen.

Weitere Praxisberichte werden durch die Hersteller von MMDBMS und auf Konferenzen, wie der Strata Conference, der IDCE oder VLDB, beworben.

Next Generation MMDBMS

Mustererkennung für jedermann: Lookup - Learn - Investigate. Eine weitere Sichtweise zur Abschätzung des Erfolgs wirtschaftlicher Anwendungen auf Basis von MMDBMS ist das Verständnis des menschlichen Prozesses der Mustererkennung. Dieser explorative und iterative Prozess besteht aus dem Nachschlagen einzelner Fakten (lookup), dem Aggregieren und dem Vergleichen von Datenverteilungen (learn) und deren Analyse, also oft dem Finden von Nischen oder der Entdeckung neuer Zusammenhänge (investigate). Die typische Domäne für lookup waren lange Websuchmaschinen und bestimmte Anwendungen im Unternehmen (CRM, ERP). Für learn sind typische Domänen Data Warehouse und Reporting-Anwendungen. Investigate wurde bisher weitgehend dem Spezialisten - und seinem oder ihrem Bauchgefühl - überlassen.

Schier unbegrenzte Rekombinationsmöglichkeiten von Daten gestalten den Prozess zur Erstellung von Vorhersagemodellen noch relativ aufwendig. Hersteller von MMDBMS haben daher begonnen, den gesamten Prozess in Anwendungen zu automatisieren. In Kombination mit einfachen Anwendungen ermöglichen die geringen Antwortzeiten des MMDBMS jedermann im Unternehmen die Berechnung von Was-wäre-wenn-Szenarien in wenigen Sekunden. Dazu gehören Szenarien zur Preisentwicklung, zur Abschätzung der Verfügbarkeit knapper Ressourcen im Unternehmen wie Lager, Fuhrpark, Personal oder Strom, zur Vorhersage der Wirksamkeit von Marketingkampagnen oder zur Risikoabschätzung der Bonität von Kunden, Zulieferern oder ganzer Lieferketten. MMDBMS sind auch schnell genug, um interaktiv sogar vom Kunden aus der Anwendung Signale einzusammeln - zum Beispiel Klick-Streams, Sentiments, Feedback aus dem Call Center - oder um bessere Vorhersagemodelle zu erstellen, wie zum Beispiel bei der Empfehlung von Produkten im Onlineshop.

Die aktuelle Forschung orientiert sich an diesen Szenarien. Insbesondere bei der Erkennung von Merkmalen (Signalen aus Prozessen) und deren Gewichtung bieten MMDBMS genügend hohe Interaktionszeiten, um den explorativen Data-Mining-Prozess möglichst interaktiv auch auf einem sehr großen Sample (idealerweise N=alle) auszuführen. Ein Schwerpunkt ist daher die Parallelisierung von Data-Mining-Verfahren zur Bildung statistischer Modelle im MMDBMS wie zum Beispiel im SAP HANA Modul PAL (Predictive Analytics Library). Besonders attraktiv erscheint derzeit die Forschung an der Parallelisierung von Ensemble Lernern.

Diese Verfahren haben das Potenzial sowohl diskriminative Merkmale aus hochdimensionalen Daten weitgehend automatisiert zu identifizieren als auch ein akkurates Klassifikationsmodell zu trainieren. Eine weitere Form sind sogenannte Active Learner, also Lernverfahren, die den Aufwand beim Training des Modells deutlich reduzieren können, indem beispielsweise gezielt nur Datenausschnitte mit besonderer Unsicherheit einem menschlichen Experten gezeigt werden. Die statistischen Modelle können, wenn sie im Hauptspeicher gehalten werden, durch menschliche Interaktion mit neuen Daten in wenigen Sekunden erweitert und neu trainiert werden. Dadurch werden Trendvorhersagen aufgrund frischer, transaktionaler Daten möglich.

Hybride Speicherorganisationen garantieren schnelle Ausführungszeiten

Ein gutes Model kann sogar die eigentlichen Daten ersetzen, da diese daraus hergeleitet werden können. Somit können Modelle theoretisch noch größere Datenmengen im MMDBMS abbilden. Hybride Speicherorganisationen garantieren dabei schnellste Ausführungszeiten. Sie speichern Daten abhängig von den Anforderungen spaltenbasiert, zeilenbasiert oder in einer Mischform. Neueste Rechnerarchitekturen entlasten die CPU und verschieben geeignete Aufgaben auf CUDA-fähige Grafikkarten oder Field Programmable Gate Arrays (FPGAs).

Schließlich bieten Hersteller auch Konnektoren von MMDBMS zu disc-basierten Systemen an, beispielsweise zu Datenbeständen die, vergleichsweise preiswert zum MMDBMS, auf dem deutlich langsameren Hadoop-Distributed-File-System und Erweiterungen, wie HBASE oder Parquet.io, verwaltet werden. Derartige auf Kundenanforderungen abgestimmte Appliances könnten in Zukunft ein wichtiger Bestandteil des Marktes für Datenanalysesysteme werden.

Zusammenfassung und Aufruf

Die Rekombinationen von bisher isoliert gehaltenen Daten, die Erkennung exklusiver Muster durch jedermann und die Verwertung der Muster in Produkten oder bei der Optimierung in Prozessen sind aktuelle Kernaufgaben für viele Unternehmen. Das MMDBMS hat das Potenzial für eine disruptive Automatisierungstechnologie in diesem Prozess. MMDBMS ermöglichen erstmals die Auswertung konsistenter Snapshots für das Beobachten des aktuellen Zustands im Unternehmen, auch auf großen Datenbeständen von mehreren TByte. Zusätzlich ermöglichen bereits heute einige Systeme die interaktive Exploration von und für Vorhersagen aus dem gleichen Datenbestand. Dabei unterstützen die Systeme sowohl das relationale als auch andere wichtige Datenmodelle wie zum Beispiel bei der Verarbeitung von textuellen Daten und von Geodaten.

Nicht immer benötigt das Unternehmen mehrere Größenordnungen schnellere Antwortzeiten oder ist bereit, Datensilos aufzubrechen und beispielsweise in ein zentrales MMDBMS zu überführen. Oft setzen Unternehmen aus Kostengründen daher existierende Systeme noch länger ein oder migrieren auf noch deutlich preisweitere, disc-basierte Systeme. Die gemeinsame Aufgabe der Anbieter und der Kunden ist daher die wirtschaftlich sinnvolle Integration der MMDBMS-Technologie in das "Immunsystem" des Unternehmens. Das kann ein Re-Design wichtiger Kernprozesse und eine signifikante Investition durch den Unternehmer erfordern.

Ich möchte Sie aufrufen, mit uns auf Golem.de Ihre Erfahrungsberichte auszutauschen. Ganz im Sinne datengestützter Entscheidungsprozesse werden wir aus Ihren Kommentaren und Wünschen neue Schwerpunkte für Berichte auf Golem.de zum Einsatz von Data Management und Text-Mining-Technologien ableiten.

Über den Autor: Alexander Löser ist Hochschullehrer für Datenbanken und Text-basierte Informationssysteme (DATEXIS) an der Beuth-Hochschule für Technik in Berlin. Mit drei weiteren Kollegen vertritt er dort auch den Forschungs- und Lehrschwerpunkt Data Science. Er berät Konzerne und mittelständische Unternehmen, das BMWi sowie die EU zum Thema Digitale Wertschöpfung mit Daten. Sein aktueller Forschungsschwerpunkt ist das In-Database-Text-Mining.  (al)


Verwandte Artikel:
Datenschutz: BVG-Webseite verrät Besucher-IPs und Mailadressen   
(01.03.2018, https://glm.io/133054 )
Ubisoft: Big-Data-KI entdeckt Bugs beim Programmieren   
(06.03.2018, https://glm.io/133162 )
CRM und Groupware: Tine 2.0 - Codename Kristina - veröffentlicht   
(28.02.2013, https://glm.io/97895 )
Astrophysik: Auf Schatzsuche im Archiv   
(05.02.2018, https://glm.io/132459 )
In-Memory-Datenbank: Schnelle MySQL-Alternative MemSQL ist fertig   
(24.04.2013, https://glm.io/98906 )

© 1997–2019 Golem.de, https://www.golem.de/