Real-Time Data Warehousing - Friedrich-Schiller

Transcription

Real-Time Data Warehousing - Friedrich-Schiller
Real-Time Data Warehousing
Möglichkeiten und Grenzen echtzeitnaher Analysesysteme
von Lisa Wenige
Betreuerin: Dipl-Math. Katharina Büchse
Seminar „Data Warehousing und Analytische Datenbanken“
Friedrich-Schiller-Universität Jena
27.02.2012
Inhaltsverzeichnis
1
2
3
4
5
6
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Real-time Data Warehouses: eine Begriffsbestimmung . . . . . . . . . . . . . . .
Klassifikation der Latenzzeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1 Organisatorische Latenz I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Infrastrukturlatenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Organisatorische Latenz II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Beschleunigungspotentiale: Möglichkeiten und Grenzen . . . . . . . . . . . . .
4.1 Beschleunigungspotentiale im ETL-Bereich . . . . . . . . . . . . . . . . . . .
4.1.1 Near-Realtime-Ansatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.2 Direct-Data- oder Trickle-Feed-Ansatz . . . . . . . . . . . . . . . . . .
4.1.3 Partitionsbasierter Ansatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.4 Cachebasierter Ansatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.5 Enterprise Application Integration . . . . . . . . . . . . . . . . . . . . .
4.2 Beschleunigungpotentiale im Analysebereich . . . . . . . . . . . . . . . . . .
4.2.1 Materialisierte Sichten und Präaggregation . . . . . . . . . . . . . .
4.2.2 Rechtebeschränkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.3 Priorisiertes Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.4 Just-in-Time-Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Die Integration von OLTP und OLAP . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
4
5
5
6
6
6
7
7
8
8
9
9
10
10
12
12
12
14
15
1
Einführung
Üblicherweise sind Transaktions- und Analysedatenbanken aufgrund ihrer unterschiedlichen Zielstellungen und Einsatzgebiete voneinander getrennt. In klassischen Systemen des Online Transactional Processing (OLTP) werden flüchtige,
sich schnell verändernde Daten ständig neu eingepflegt, angepasst und gelöscht.
Die anfallenden Geschäftsprozessinformationen sollen dabei immer schreibbar
sein und den aktuellen Systemzustand widerspiegeln. Währenddessen arbeiten
Datenbanken, die auf die Prinzipien des Online Analytical Processing (OLAP)
ausgerichtet sind, mit historisierten Informationen. Bei ihnen geht es v. a.
darum, die Transaktionsdaten so zu analysieren, dass adäquate Managemententscheidungen getroffen werden können.
Klassische Data-Warehouse-Systeme weisen daher eine eher statische Struktur
auf. Diese eignet sich zwar gut für lesende Zugriffe, sieht aber keine kontinuierliche Datenintegration vor. Aktualisierungen werden in diesem Zusammenhang
nur periodisch vorgenommen [SaBe08, S. 49].
Allerdings ist mit der sich immer schneller vollziehenden Informationsvermehrung und den kürzeren Produktlebens- und Innovationszyklen der Wirtschaftswelt die Datenaktualität zu einem wettbewerbskritischen Faktor geworden. Unternehmen aus dem Bereich E-Commerce, der Luftfahrt- oder der Finanzindustrie müssen mit einer gestiegenen Umweltdynamik umgehen, schnell Trends
erkennen und auf kurzfristige Ereignisse unmittelbar und adäquat reagieren
[BaGü09, S. 101]. In diesem Zusammenhang können sich nur solche Firmen gegen
die Konkurrenz behaupten, die ihre Entscheidungen mit Hilfe einer Datenbasis
treffen, die sich auf dem neuesten Stand befindet. Dabei wird davon ausgegangen, dass Maßnahmen umso wirkungsvoller sind, je schneller sie ergriffen werden
[Shel06, S. 426].
Aus diesem Grund entwickelt man seit einiger Zeit Strategien und Technologien,
die die Zeitverzögerungen in den einzelnen Data-Warehousing-Phasen reduzieren
sollen. Solche Lösungen werden im Umfeld der Analytischen Datenbanken auch
als Real-time Data Warehouses bezeichnet.
In der vorliegenden Arbeit soll es darum gehen, die Konzepte von EchtzeitOLAP-Systemen vorzustellen und kritisch zu betrachten. Dafür wird in Abschnitt 2 zunächst eine genaue Begriffsbestimmung vorgenommen. Abschnitt 3
wird sich anschließend damit auseinandersetzen, welche Latenzzeiten und Beschleunigungspotentiale es bei der Aktualisierung von OLAP-Datenbanken gibt.
Im Anschluss daran sollen mögliche Maßnahmen und Echtzeit-Architekturen
genauer vorgestellt werden (Abschnitt 4). In Abschnitt 5 erfolgt dann die Vorstellung eines Ansatzes, bei dem OLTP- und OLAP-Datenbanken in einem integrierten System zusammengeführt werden. Die Arbeit endet mit einem Fazit,
welches die in den einzelnen Abschnitten gewonnenen Erkenntnisse zusammenfasst und abschließend bewertet.
3
2
Real-time Data Warehouses: eine Begriffsbestimmung
Um die Echtzeitdimension im Umfeld der Analytischen Datenbanken genauer
zu charakterisieren, existieren zahlreiche Definitionen. So schreiben z. B. Lehner
und Thiele:
„The real-time aspect in the context of data warehouses describes a
new processing model where every change is automatically captured and
pushed into the data warehouse.“ [LeTh09, S. 1]
Diese Begriffsbestimmung verdeutlicht, dass das primäre Ziel eines EchtzeitData-Warehouses die Datenaktualität ist. Jede Änderung, die sich in den Transaktionssystemen vollzieht, soll ohne Verzögerung an die analytischen Komponenten weitergeleitet werden. Allerdings befindet sich in der obenstehenden Definition bereits ein Vorgriff auf die mögliche Implementierung eines solchen EchtzeitData-Warehouses. Wenn Lehner und Thiele schreiben, dass neue Transaktionsinformationen automatisch an die Zielsysteme im „Push-Modus“ propagiert werden, dann wird der Bezugsrahmen der Definition bereits sehr eingeschränkt. Tatsächlich gibt es verschiedene Implementierungsmöglichkeiten und Architekturen,
mit denen ein Echzeit-Data-Warehouse realisiert werden kann (s. Abschnitt 4).
Aus diesen Gründen ist die folgende von Thiele gewählte Definition geeigneter:
„Der Begriff Echtzeit charakterisiert die Fähigkeit eines Data Warehouses [...] Änderungen in der Realwelt bzw. der Diskurswelt zeitnah im
Data Warehouse abzubilden.“ [Thie10, S. 50]
Diese Erklärung beschreibt ein Data Warehouse zum einen unabhängig von der
jeweiligen Realisierung und relativiert zum anderen den Echtzeitbegriff. Tatsächlich wird es bei der Trennung von OLTP- und OLAP-Datenbanken kaum
möglich sein, die analytischen Systeme mit den Transaktionsdaten ohne jegliche Zeitverzögerung zu versorgen. Die Bezeichnung „zeitnah“ verdeutlicht dabei,
dass Änderungen so schnell wie möglich propagiert werden sollten. Nicht ohne
Grund gibt es daher im Englischen auch den Begriff des „Near Real-time“ Data
Warehouse [JöDe10]. Daneben existieren Bezeichnungen, wie „Right-time“ oder
„On-time“ , die zeigen, dass die Forderung nach Datenaktualität nicht Selbstzweck sein sollte [ThPL08] [Baer04]. Vielmehr ist es wichtig, dass die Bereitstellung hochaktueller Daten bedarfsorientiert erfolgt. Es muss demnach eine
auf die entsprechenden Anwenderbedürfnisse gerichtete Datenauswahl getroffen
werden. Für diese Informationen erfolgt dann die Bereitstellung mit möglichst
geringen Verzögerungsraten [BaGü09, S. 101] [ThPL08, S. 456]. Der Begriff der
Datenaktualität wird in diesem Zusammenhang dabei häufig synonym mit dem
englischen Ausdruck „Data Freshness“ verwendet [LeTh09].
In Abgrenzung zu den bereits vorgestellten Konzepten gibt es außerdem das Konzept des „Active Data Warehouse“ [MNSV09]. In einer solchen Datenbank werden
auf Grundlage hochaktueller Daten automatisch Entscheidungen getroffen und
im Falle der Über- oder Unterschreitung bestimmter Grenzwerte Maßnahmen
ausgelöst. So ist es z. B. vorstellbar, dass in einem Multimedia-Online-Shop bei
4
Nichterreichen einer vorgegebenen Verkaufszahl in einem bestimmten Zeitintervall automatisiert eine Preisreduktion erfolgt. Eine aktuelle Datenbasis, die mit
Real-time-Technologien geschaffen wurde, ist für dieses Vorgehen eine unmittelbare Voraussetzung.
In dieser Arbeit soll es allerdings vorrangig um die Betrachtung von Methoden
zur Realisierung eines Echtzeit-Data-Warehouses gehen.
3
Klassifikation der Latenzzeiten
Im Zuge der Phasen des Data Warehousing-Prozesses können zahlreiche Verzögerungen auftreten. Im Folgenden werden unter Zuhilfenahme der von Shelp
beschriebenen und in Abb. 1 dargestellten Einteilung die verschiedenen Latenzzeiten vorgestellt.
Abbildung 1. Verzögerungspotentiale (in Anlehnung an [Shel06, S. 426])
3.1
Organisatorische Latenz I
Diese Art der Zeitverschiebung setzt sich aus der Wahrnehmungslatenz und der
Verzögerung bei der Informationserfassung zusammen. Die Wahrnehmungslatenz beschreibt die Zeitdifferenz vom Auftreten eines Ereignisses in der Realwelt
bis zu dem Zeitpunkt, an dem ein Verantwortlicher realisiert, dass eine Veränderung eingetreten ist. In einem Reisebüro, in dem der zuständige Mitarbeiter per
E-Mail eine Aufforderung zur Buchung einer Reise erhält, ist diese Verzögerung
5
relativ groß. In einem Multimediahandel, in dem ein Kunde selbst die Bestellung tätigt, ist sie hingegen geringer. Auch bei der Erfassung der Veränderungen
im jeweiligen Transaktionsverwaltungssystem können Latenzzeiten auftreten. So
dauert es z. B. eine Weile, bis alle zu einer Reisebuchung gehörenden Informationen in das Datenbankmanagementsystem übertragen wurden.
3.2
Infrastrukturlatenz
Die Infrastrukturlatenz setzt sich aus der Ladelatenz und der Analyselatenz zusammen. Sie charakterisiert die Zeitverschiebungen, die bei der Übertragung und
Analyse der Daten im eigentlichen Data Warehouse auftreten. Diese Formen der
Verzögerung müssen daher, im Gegensatz zur Organisatorischen Latenz I, v. a.
auf der technischen Ebene gelöst werden. Im Fall der Ladelatenz geht es dabei darum, die Daten im Zuge des „Extract, Transfer, Load“ -Prozesses (ETL)
schneller bereitstellen zu können. Ein Multimediaversandhandel muss in dieser
Phase z. B. die Informationen aus den Transaktionssystemen seiner verteilten
Onlineshops und aus den Datenbankmanagementsystemen seiner Einzelhandelszweigstellen zusammenführen. Während der Datenbereinigung und -integration
können in diesem Zusammenhang erhebliche Zeitverzögerungen auftreten, da die
heterogenen Daten an ein einheitliches Schema angepasst und in die bestehenden
Datenstrukturen eingefügt werden müssen.
Im Gegensatz dazu, geht es bei der Analyselatenz um die Zeit, die ab der Bereitstellung im Data Warehouse verstreicht, bis ein Auswertungsergebnis verfügbar
ist. Fragen der Datenhaltung und der Anfrageoptimierung spielen in diesem Bereich eine entscheidende Rolle.
Mechanismen und Architekturlösungen zur Vemeidung von Infrastrukturlatenzen werden in Abschnitt 4 genauer behandelt.
3.3
Organisatorische Latenz II
In diesem Komplex werden alle Latenzzeiten zusammengefasst, die von der Bereitstellung eines Analyseergebnisses vergehen, bis eine konkrete Maßnahme getroffen wird. Wenn sich z. B. in einem Data-Warehouse-Bericht abzeichnet, dass
ein Produkt von einer bestimmten Kundengruppe verhältnismäßig wenig nachgefragt wird, müssten sich die Verantwortlichen für eine adäquate Reaktion entscheiden und diese manuell veranlassen. Die Verzögerungen, die in diesem Zusammenhang auftreten, können erheblich sein. Das bereits geschilderte Konzept
des „Active Data Warehouse“ verspricht für diese Art der Latenz zumindest partiell Abhilfe zu schaffen.
4
Beschleunigungspotentiale: Möglichkeiten und Grenzen
Klassische Data-Warehouse-Systeme bringen ihre Daten oftmals nur täglich auf
den neuesten Stand [BaGü09, S. 102]. Es finden sich sogar Analytische Datenbanken, die lediglich eine Aktualität auf Wochen- oder Monatsbasis besitzen
6
[Thie10]. Während eines Updatevorgangs werden in einem sog. „batch“ oder
„bulk load“ alle seit dem letzten Ladeprozess getätigten Änderungen in das Data
Warehouse übernommen [Shel06, S. 426]. Während des ETL-Prozesses können
die Benutzer und Applikationen des OLAP-Systems in der Regel nicht auf die
Analysedaten zugreifen [SaBe08, S. 49].
Nachfolgend werden Konzepte vorgestellt, die helfen sollen, Transaktionsdaten
schneller im Data Warehouse bereitzustellen.
4.1
Beschleunigungspotentiale im ETL-Bereich
Eine Beschleunigung der Datenintegration ist häufig durch die Optimierung
der in diesem Zusammenhang stattfindenden Prozessoperationen möglich. Dabei muss allerdings berücksichtigt werden, dass eine höhere Aktualität in diesem
Bereich zu Lasten der Datenstabilität geht. Da die Informationen teilweise kontinuierlich in das Data Warehouse eingespeist werden und keine festen Publikationszeitpunkte bestehen, kann es zu Inkonsistenzen und Schemaverletzungen
kommen [Thie10, S. 57]. Zudem haben die gesteigerten Ladegfrequenzen eine
Erhöhung der Analyselatenz zur Folge. Die ständigen Aktualisierungen führen
dazu, dass entweder das OLAP-System vorübergehend nicht verfügbar ist oder
sich die Antwortzeiten aufgrund des gestiegenen Workloads erhöhen [Thie10, S.
56].
4.1.1 Near-Realtime-Ansatz Es wird Transaktionsdaten geben, die zwar
aktuell sein müssen, deren Verfügbarkeit aber nicht unmittelbar erfolgskritisch
ist. So können z. B. die Verkaufszahlen des Multimediahandels auf einem Stand
gehalten werden, der mehrmals am Tag, ggf. auch stündlich, erneuert wird. Zu
diesem Zweck müssen lediglich die Ladefrequenzen der Batchoperationen erhöht
werden.[Lang04]
Um festzustellen, welche Daten sich seit dem letzten Update verändert haben,
wird eine Monitoring-Komponente eingesetzt, die die Datenmanipulationen der
OLTP-Systeme überwacht. Im Zuge des Monitoring werden in den Transaktionssystemen veränderte Datensätze entsprechend markiert. Für diese Vorgehensweise existieren verschiedene Verfahren. Im Near-Realtime-Warehousing sind dabei
v. a. die Ansätze des timestampbasierten, des logbasierten und des snapshotbasierten Monitoring relevant [BaGü09, S. 50].
• timestampbasiert: Jedem Datensatz werden in der Quelldatenbank Zeitstempel zugeordnet. Im Fall einer Änderung erhält ein Tupel eine neue Zeitmarke.
Beim nächsten Batch-Load werden dann die Transaktionsdaten in das Data
Warehouse integriert, deren Timestamps jünger sind als der Zeitpunkt des
letzten Ladeprozesses.
• logbasiert: Im Zuge dieses Verfahrens arbeitet man mit den Logdateien der
Transaktionsdatenbank, um die zu ladenden Tupel zu identifizieren.
7
• snapshotbasiert: Beim Snapshot-Verfahren wird der aktuelle Zustand der
Quelldaten in periodischen Abständen in eine Datei (Snapshot) geschrieben. Um schließlich die für das Batching relevanten Datensätze zu ermitteln,
erfolgt eine Deltaberechnung der Nettoänderungen zwischen den einzelnen
Snapshots.
4.1.2 Direct-Data- oder Trickle-Feed-Ansatz In diesem push-basierten
Verfahren erfolgt eine synchrone Aktualisierung. Die Nettoänderungen werden,
sobald sie in den Transaktionssystemen auftauchen, direkt in die OLAP-Datenbank übertragen [Lehn03, S. 181 f.]. Zu diesem Zweck muss das Datenbankmanagementsystem aktive Mechanismen wie Trigger unterstützen. Sobald eine Manipulation erfolgt, werden die entsprechenden Tupel in die Faktentabellen des Data
Warehouses eingefügt [BaGü09]. Bei diesem Ansatz liegen die Daten minutenoder sogar sekundenaktuell vor, da sie kontinuierlich in die Analysedatenbank
geschrieben werden. Zudem sind die in das OLAP-System zu übertragenden
Datenvolumen nicht sehr umfangreich. Aus diesem Grund kann das Data Warehouse auch während der inkrementellen Aktualisierung genutzt werden.[FaSa10]
Allerdings skaliert das Verfahren nicht gut. Komplexe OLAP-Anfragen können
schnell mit kontinuierlichen INSERT-Operationen in Konflikt geraten. Dies führt
zu einer Verschlechterung der Anfrageperformanz [Lang04].
4.1.3 Partitionsbasierter Ansatz Auch bei diesem Ansatz wird die Aktualisierung inkrementell vorgenommen. Sobald eine Änderung bei den Transaktionsdaten erfolgt ist, wird sie unmittelbar an das OLAP-System propagiert.
Allerdings werden die Informationen in einer Übergangstabelle im Data Warehouse zwischengespeichert, bevor sie in die historisierten Faktentabellen geladen
werden [Lang04].
Santos und Bernardino beschreiben eine Vorgehensweise, die diesen Ansatz weiter spezifiziert [SaBe08, S. 49ff.]. Sie schlagen vor, für jedes Tupel, für das in
der Datenquelle ein COMMIT erfolgt ist, einen Trigger auszulösen, der eine Datentransformation initialisiert. Die auf diese Weise erzeugten Datensätze werden
vorübergehend in die Real-time-Tabellen des Data Warehouses geschrieben. Eine
solche Tabelle besitzt im Unterschied zu den eigentlichen Faktentabellen keine
Indizes, Primärschlüssel oder sonstige Integritätsbedingungen. Auf diese Weise
ist es möglich, eine bessere Schreib- und Leseperformance zu erzielen. Zusätzlich
wird für jede Änderung, die bei ein und derselben Zelle in der temporären Tabelle
erfolgt, ein Zähler inkrementiert. So müssen die Daten nicht erst überschrieben
werden. Stattdessen wird lediglich derjenige Datensatz mit dem höchsten Zähler
in das Data Warehouse übernommen. Für die Abfrage werden dann ggf. historisierte und temporäre Daten gejoint (s. Abschnitt 4.2.4). Vorteilhaft ist zudem,
dass für einen Anfrage-Befehl, welcher nur aktuelle Daten benötigt, ausschließlich die Replikatabellen abgefragt werden müssen.
Eine Übertragung der Daten aus der Partition in das eigentliche Data Warehouse sollte immer dann erfolgen, wenn ein erhöhtes Aufkommen an Echtzeitdaten
zu einer verminderten Anfrageperformance führt. Dies geschieht, da der Auf8
wand der Zusammenführung von Datenmengen aus den dauerhaften und den
temporären Tabellen mit der Zunahme der Informationen ansteigt. In diesem
Zusammenhang ließe sich für die Antwortzeiten z. B. ein Schwellwert festlegen,
den es nicht zu unterschreiten gilt. Es ist auch möglich, im Zuge des DataWarehouse-Designs andere Ladebedingungen zu spezifizieren. So wäre es z. B.
denkbar, die Temporärdaten immer dann in die Faktentabellen zu übertragen,
wenn eine bestimmte Tupel-Anzahl erreicht oder eine gewisse Zeitspanne überschritten ist. Die Einfügeoperationen gehen einher mit dem Wiederaufbau aller
Indizes und der Aktualisierung von Aggregationen und materialisierten Sichten.
4.1.4 Cachebasierter Ansatz Eine weitere Möglichkeit ist es, die neu hinzukommenden Transaktionsdaten vorübergehend in einem Real-time Data Cache
(RTDC) außerhalb des eigentlichen Data Warehouses zu speichern. Dieser Cache ist ein eigener Datenbankserver, in dem die Relationen den Faktentabellen
des historisierten OLAP-Systems gleichen. Allerdings werden nur solche Tabellen vorgehalten, die für die Real-time-Daten benötigt werden [SSPK09].
Diese Architektur eignet sich für alle Arten von Applikationen, die entweder mit
einem großen Aufkommen von Echtzeitdaten umgehen müssen oder eine gesteigerte Anfrageperformanz benötigen. Sollten Analyseprozesse sowohl auf historische als auch auf aktuelle Daten angewiesen sein, können die Daten mit Hilfe
einer Just-In-Time-Integration (s. Abschnitt 4.2.4) zusammengeführt werden.
Wie im Fall des partitionsbasierten Ansatzes müssen die Echtzeitdaten periodisch in das eigentliche Data Warehouse übertragen werden. Bei beiden Verfahren ist im Zuge des Ladeprozesses mit erhöhtem Workload und einer Beeinträchtigung der Antwortzeiten zu rechnen. Während bei der partitionsbasierten Herangehensweise, aufgrund der fehlenden Restriktionen in den Temporärtabellen,
zusätzliche Transformationen nötig sind, treten beim Laden der RTDC-Daten
v. a. Verzögerungen auf, weil die Tupel aus einem separaten System übertragen
werden [Lang04].
4.1.5 Enterprise Application Integration Die Ladeprozesse des Data
Warehouses können auch mit Hilfe bereits integrierter Transaktionsdaten beschleunigt werden. Das kann über die Umsetzung einer Enterprise-ApplicationIntegration-Architektur (EAI) erfolgen. Diese Form der Prozessintegration verknüpft die operativen Prozesse der Transaktionssysteme redundanzfrei miteinander. Im Beispiel des Multimediahandels würden Bestell-, Liefer- und Rechnungsinformationen nicht in separaten Softwaresystemen und Datenbanken gehalten,
sondern ganzheitlich in einem gemeinsamen System erfasst und bearbeitet werden. Die integrierten Daten ließen sich dann von der EAI-Schicht in das Data
Warehouse übertragen. In diesem Stadium wäre bereits ein Großteil der Bereinigungsoperationen, wie z. B. Formatänderungen, schon getätigt [Shel06, S.
432].
9
4.2
Beschleunigungpotentiale im Analysebereich
Klassische OLAP-Systene arbeiten üblicherweise auf statischen, nicht veränderlichen Daten. In einem Echtzeit-Data-Warehouse besteht das Problem, dass
gleichzeitig lesende und schreibende Zugriffe verarbeitet werden müssen. Dies
führt dazu, dass die Daten Inkonsistenzen aufweisen und damit instabil sein
können. Darüber hinaus ist es möglich, dass die kontinuierlichen Ladeprozesse Anfragen blockieren oder Antwortzeiten verlängern. Auf diese Weise führt
die gesteigerte „Data Freshness“ im ETL-Bereich des Data Warehouse zu einer
Belastung der Anfrage-Performance. Gleichzeitig greifen Mechanismen, die der
Anfrageoptimierung dienen, auf historisierte Daten zurück. So könnten z. B.
aggregrierte Daten nicht mit den bereits geladenen Echtzeitinformationen übereinstimmen. [Lang04].
Die richtige Strategie im Spannungsverhältnis zwischen Datenaktualität und verringerter Anfragelatenz muss von Fall zu Fall abgewogen werden. In diesem Zusammenhang sollten Systembenutzer in den Designprozess einbezogen werden,
um Anforderungen an die “Data Freshness“ und gewünschte durchschnittliche
Antwortzeiten zu spezifizieren [Thie10, S. 56].
Im Folgenden werden daher sowohl Ansätze vorgestellt, die die Anfragelatenzen
verringern, als auch solche, die darauf ausgerichtet sind, aktuelle Daten adäquat
abzufragen.
4.2.1 Materialisierte Sichten und Präaggregation Anfragen in OLAPSystemen sind weitaus komplexer, als in OLTP-Datenbanken. Wenn die Daten
eines Data Warehouses in relationen Strukturen abgelegt sind (Relational OLAP
- ROLAP), dann müssen sie anhand mehrerer Dimensionen zusammengefügt
und über viele Hierarchieebenen hinweg aggregiert werden [PaKYJ02, S. 379].
Dies wird auch als „Snowflake-Schema“ bezeichnet. Antwortzeiten von Abfragen
können dabei im Minutenbereich liegen und daher nicht den Echtzeitzustand der
Daten widerspiegeln [Lang04].
Eine verbreitete Strategie, um diesem Problem zu begegnen, ist die Speicherung
häufig abegfragter Ergebnisse in bereits gejointen Relationen. Diese Tabellen
werden auch materialisierte Sichten (materialized views) genannt und dienen der
Zugriffsbeschleunigung. Abb. 2 zeigt das Star-Schema eines potentiellen Data
Warehouses. Dieses Schema könnte die Datengrundlage im OLAP-System des
bereits erwähnten Multimediahandels sein.
Geht man z. B. davon aus, dass die Vertriebsmanager Angaben bzgl. der täglichen Umsatzzahlen aller Einzelhandelszweigstellen in verschiedenen Städten seit
Beginn des Jahres benötigen, dann könnte eine materialisierte Sicht folgendermaßen aussehen (das Beispiel ist angelehnt an [PaKYJ02, S. 381]).
10
Abbildung 2. Star-Schema eines potentiellen Data Warehouse [PaKYJ02, S.
380]
CREATE VIEW Daily_Sales_2012 AS
SELECT Store.city, Time.day, sum(Sales.sales_dollar)
FROM Store, Time, Sales
WHERE Sales.store_id=Store.store_id AND Sales.time_id=Time.time_id
AND Time.year >= 2012
GROUP BY Store.city, Time.day
Auf diese Weise sind die aggegregierten Ergebnisse der zusammengefügten Tabellen bei zukünftig anfallenden Anfragen schon gespeichert und können schnell
abgerufen werden. Allerdings steht dieser Ansatz der Anfragebeschleunigung in
Konflikt mit der kontinuierlichen Aktualisierung. Es müsste sichergestellt werden, dass eine Erneuerung der materialisierten Sichten immer dann erfolgt, sobald zusätzliche Echtzeitdaten in das Data Warehouse eingefügt werden. Ein
solches Vorgehen ist sehr aufwändig und kann dazu führen, dass die Beschleunigung der Antwortperformance durch die häufigen Neuberechnungen der Sichten
wieder verloren geht.
Die provisorische Speicherung aller denkbaren Kombinationen von Aggregationen (Multidimensional OLAP - MOLAP) nimmt darüber hinaus viel Speicherplatz in Anspruch. Aus diesem Grund wird häufig von dem Konzept der anwenderorientierten Voraggregation Gebrauch gemacht, bei dem nur die wichtigsten
Berechnungen im Vorfeld stattfinden. Diese gemischte Vorgehensweise wird auch
als Hybrides OLAP (HOLAP) bezeichnet [PeJe01, S. 43 f.] Allerdings ist darauf
hinzuweisen, dass in den nächsten Jahren durch die zusätzlichen Möglichkeiten
der Hardwarebeschleunigung mit einer Verschiebung zugunsten des ROLAP zu
11
rechen ist, da sich Aggregrationen zunehmend schneller im Hauptspeicher berechnen lassen (s. Abschnitt 5).
4.2.2 Rechtebeschränkungen Eine weitere Möglichkeit, um die Anfragegeschwindigkeiten des OLAP-Systems zu verbessern, ist eine Rechteverwaltung,
die es einigen Nutzern verbietet, Anfragen auf bestimmten Daten durchzuführen
oder komplexe Analysen zu starten. So müsste z. B. das obere Management des
Multimediahandels nicht unbedingt Zugriff auf hochaktuelle Daten haben. Denn
die langfristige, strategische Planung lässt sich ggf. ohne die Absatzzahlen der
letzten Tage oder Stunden durchführen. Für die Marketingabteilung, die auch
auf kurzfristige Trends reagieren muss, ist der Zugriff auf die Echtzeitdaten hingegen relevant. Rollenbasierte Zugriffsbeschränkungen ermöglichen demnach die
Verringerung des Workloads und die Verbesserung der Antwortzeiten [Lang04].
4.2.3 Priorisiertes Scheduling Das prioritätsgesteuerte Laden bietet eine
Möglichkeit, um den Workload im Data Warehouse auf einem niedrigen Level zu
halten und trotz allem die Abfrage hochaktueller Daten zu gewährleisten. Lehner und Thiele stellen ein Verfahren vor, bei dem nur Echtzeitaktualisierungen
vorgenommen werden, die Relevanz für die aktuellen OLAP-Anfragen besitzen
[LeTh09].
Dazu wird angenommen, dass die kontinuierlich anfallenden Echzeitdaten vorübergehend in einer „Update-Queue“ und die an das System gestellten Anfragen in einer „Query-Queue“ zwischengespeichert werden. Unter Berücksichtigung
der von den Systemnutzern vorgegebenen Spezifikationen wird jeder Anfrage
der „Query-Queue“ eine Priorität zugewiesen. Für die Abfrage mit der höchsten Priorität wird ermittelt, welche der sich in der „Update-Queue“ befindenden
Transaktionsdaten zunächst in das Data Warehouse geladen werden müssen. Auf
diese Weise können dann die hochaktuellen Daten aus dem OLTP-System „right
on time“ bereitgestellt werden. Allerdings ist an dieser Stelle darauf hinzuweisen,
dass das geschilderte Vorgehen bei Anfragen, die viele Aktualisierungen benötigen, zu erheblichen Verzögerungen führt. Daher lässt sich das Konzept nur bei
einem geringen Aufkommen an Echtzeitdaten sinnvoll einsetzen.
4.2.4 Just-in-Time-Integration Im Gegensatz zu den in den vorherigen
Abschnitten vorgestellten Konzepten behandelt der kommende Abschnitt kein
Verfahren, das direkt darauf abzielt, die Antwortzeiten des OLAP-Systems zu
verbessern oder den Workload zu senken. Im Folgenden wird vielmehr die Frage zu beantworten sein, inwieweit die Real-Time-Daten durch entsprechende
Anfrage-Tools zeitnah genutzt werden können.
Ein Ansatz, um dies zu erreichen, ist die Just-in-Time-Integration. Bei diesem
Verfahren werden die Daten erst zum Zeitpunkt der Anfrage zusammengeführt.
Im Unterschied zum Ladeprozess beim priorisierten Scheduling werden die während der Anfrage in das Data Warehouse überführten Daten allerdings nicht
persistent gespeichert.
12
Das Verfahren der Just-in-Time-Integration bietet den Vorteil, dass RealtimeInformationen in jeder Phase des ETL-Prozesses (und somit auch noch nicht
integrierte Daten) abgerufen werden können. Abb. 3 zeigt das Schema einer solchen idealtypischen Architektur.
Abbildung 3. Referenzarchitektur eines Echtzeit-Data-Warehouses[Thie10, S.
52]
Nach dieser Vorstellung werden die Anfragen aus dem OLAP-System über die
Vermittlungsschicht auf die einzelnen Prozessstufen umgeleitet. So ist es möglich, die schon extrahierten aber noch unbereinigten Daten aus dem Arbeitsbereich abzufragen. In weiter fortgeschrittenen Phasen des Extraxt-TransferLoad-Prozesses, in denen z. B. bereits Formatanpassungen und Duplettenentfernungen erfolgt sind, kann ein Abruf aus der konsolidierten Basisdatenbank
stattfinden. Zudem steuert die Vermittlungsschicht die Ausgabe von Daten aus
dem Data Warehouse, den Data Marts und dem Reporting-Layer. Die vorgestellte Architektur stellt besonders hohe Anforderungen an den Query-Manager.
Er hat zum einen die Aufgabe, festzustellen, welche Real-Time-Komponenten
die Anfrage enthält. Zum anderen muss er den Anfragebefehl so modifizieren,
dass die Echtzeitdaten auch tatsächlich ermittelt werden können. Dafür ist es erforderlich, dass der Query-Manager die Schemata der Real-Time-Informationen
an den verschiedenen Stationen des ETL-Prozesses kennt [Lang04]. Werden z.
B. Daten abgefragt, die sich noch im Transformationsprozess befinden, müssten
die Anfragen, entsprechend den Schemaanforderungen der einzelnen Prozessstufen, umgeschrieben werden (engl. query-rewrite) [Thie10, S. 52]. Auf diese Weise
könnten OLAP-Anfragen, die beispielsweise in Form einer “Multidimensional
Expression“ (MDX)[Nola99] gestellt sind, in SQL-konforme Teilanfragen zerlegt
und zu den Schichten geschickt werden, die in einer eindimensionalen relationalen Struktur vorliegen.
13
5
Die Integration von OLTP und OLAP
Klassischerweise sind OLAP und OLTP in zwei getrennten Systemen organisiert. Die bisher geschilderten Ansätze haben Wege aufgezeigt, um die Prozesse
im Rahmen dieser Architektur zu beschleunigen. Im Folgenden wird hingegen
ein Verfahren vorgestellt, das das Ziel verfolgt, transaktions- und analyseorientierte Operationen in einem System zu integrieren. Hierzu stellt Plattner ein
Datenbankmanagementsystem vor, welches im Wesentlichen auf einer spaltenorientierten In-Memory-Datenhaltung basiert [Plat09].
Traditionellerweise werden die Informationen einer transaktionsverwaltenden Datenbank tupelweise (d. h. in Form der einzelnen Tabellenzeilen) gespeichert. So
können Datensätze effizienter aktualisiert und eingefügt werden. Demgegenüber
erfolgt die Speicherung der OLAP-Daten weitestgehend spaltenorientiert. Auf
diese Weise lassen sich reine Lesezugriffe und Aggregationen schneller durchführen [Thie10].
Plattner geht nun davon aus, dass die spaltenorientierte Speicherstrategie ebenso
für ein integriertes System anwendbar sein könnte. Seine Argumentation ist, dass
sich die höheren Prozessorgeschwindigkeiten moderner Rechner und die Möglichkeit einer In-Memory-Datenhaltung ausnutzen lassen, um sowohl Lesezugriffe
als auch update-intensive Prozesse in einem gemeinsamen Datenbankmanagementsystem zu organisieren. Zudem ermöglicht die Vorhaltung der Tabellen im
Hauptspeicher eine schnellere Verarbeitung von Join-Operationen und Aggregationen. Dabei werden die Berechnungen nicht mehr im Voraus getätigt, sondern
zur Laufzeit generiert.
Zudem stellt Plattner für seinen Systementwurf einen „insert-only-Ansatz“ vor.
Bei dieser Vorgehensweise finden keine Löschoperationen statt. Stattdessen erhalten neue Zellenwerte einen aktuellen Zeitstempel. So können Einfüge- und
Veränderungsoperationen schneller getätigt werden. Für die Abfrage und Analyse der Daten werden dann nur solche Werte berücksichtigt, deren Zeitstempel
zum Beginn der Anfrage kleiner, als der aktuelle Timestamp sind. Außerdem können mit einem solchen Vorgehen aufwändige Sperrverfahren vermieden werden.
Stattdessen bestimmen Zeitstempel über die Abarbeitungsreihenfolge nebenläufiger Operationen. Dieses Verfahren wird auch als „pessimistisches Sperren“ bezeichnet. Für den Fall, dass auf einem Tupel Datenmanipulationen ausgeführt
werden, wird der Zeitstempel einer neuen Anfrage automatisch dekrementiert.
Auf diese Weise wird der gerade bearbeitete Datensatz aus der Analyse ausgeschlossen. Um die Datenvolumen im Hauptspeicher auf einem möglichst niedrigen Niveau zu halten, erfolgt die Sicherung historischer Daten auf einem separaten persistenten Speichermedium.
In dem von Plattner vorgestellten System entfällt die ETL-Schicht einer klassischen Data-Warehouse-Architektur. Veränderungen werden in der gemeinsamen
Datenbank gespeichert und können unmittelbar in analytische Berechnungen
einbezogen werden. Auf diese Weise ist die Verringerung von Latenzzeiten im
Lade- und Analysebereich möglich. Zudem wird durch die Zusammenführung
des OLTP- und des OLAP-Systems die Redundanz der Datenhaltung beseitigt.
Aufwendungen, die zuvor zweimal für die Speicherung und Verarbeitung der
14
Informationen getätigt wurden, müssen nun nur noch einmal vorgenommen werden.
Das von Plattner beschriebene integrierte System ist bislang allerdings nur für
eine Datenbank mit ca. 35 Millionen Tupeln getestet worden. Es bleibt abzuwarten, wie gut diese Lösung für Tabellengrößen mit über 100 Millionen Tupeln
skaliert. Außerdem ist nach wie vor ungeklärt, inwieweit ein adäquates Sperrund Workloadmanagement bewerkstelligt werden kann. Da in Plattners Systementwurf Abfrageoperationen mit Einfügeprozessen in Konflikt stehen können, ist
das Finden effizienter Lösungen in diesen Bereichen besonders erfolgskritisch.
Gleichwohl ist die Frage zu beantworten, ob die Zusammenführung von OLTPund OLAP-Systemen tatsächlich zielführend ist. So geht z. B. Conn darauf ein,
dass die Transaktiondatenbanken und das Data Warehouse unterschiedlichen
Zwecken dienen und daher getrennt sein sollten. Auf diese Weise könnten Datenschemata und Speicherstrukturen am besten auf die jeweiligen Systemanforderungen ausgerichtet werden. Zudem werden nicht alle Transaktionsinformationen für die Erstellung von Analyseberichten benötigt [Conn05, S. 516].
Zusätzlich vernachlässigt der Ansatz von Plattner, dass in einem OLAP-System
nicht nur Daten aus relationalen Systemen vorzufinden sind, denen ein einheitliches Schema zugrunde liegt. Vielmehr können die integrierten Informationen
sehr heterogenen, mitunter sogar semistrukturierten Quellen (z. B. XML-Daten)
entspringen. Auch Inmon sieht den Verzicht auf die Transformations- und Integrationsprozesse kritisch:
“There is no point in bringing data [...] into the data warehouse environment without integrating it. If the data arrives at the data warehouse
in an unintegrated state, it cannot be used to support a corporate view
of data.“ [Inmo06]
Aus diesem Grund wird ein ganzheitliches Transaktions- und Analysesystem nur
für bestimmte Anwendungsfälle praktikabel sein.
6
Fazit
In der vorliegenden Arbeit wurde darauf eingegangen, dass die Daten klassischer
Data Warehouses mehreren Zeitverzögerungen unterliegen. Die Ausführungen
haben gezeigt, dass bereits zahlreiche Möglichkeiten bestehen, Transaktionsdaten in einem Data Warehouse zeitnah zur Verfügung zu stellen. So gibt es sowohl in den einzelnen Phasen des ETL-Prozesses als auch bei der Erstellung
von Berichten und Analysen Beschleunigungspotentiale. In diesem Zusammenhang sollte nicht vergessen werden, dass Zeiteinsparungen in einem Bereich zu
Verzögerungen in dem jeweils anderen Bereich führen können. Die Entscheidung zwischen einer höheren Datenaktualität und verringerten Anfragelatenzen
muss dabei für jeden Fall neu getroffen werden. Überdies ist zu berücksichtigen,
dass eventuelle Zeiteinsparungen auch immer vor dem Hintergrund der jeweiligen Anwenderbedürfnisse gesehen werden sollten. So müssten z. B. im Fall des
Multimediaversandhandels nicht unbedingt die Daten der Personalverwaltung
15
unmittelbar für die Analyse bereitstehen. Vielmehr ist es wichtig, dass die richtigen Informationen, wie beispielsweise die neuesten Verkaufszahlen, zur richtigen
Zeit verfügbar sind.
Darüber hinaus können mithilfe der Integration von OLTP- und OLAP-Systemen
zusätzliche Zeiteinsparungen erzielt werden. Aber auch hier ist, aufgrund der vereinfachten Systemarchitektur und eines gemeinsamen Schemas für alle Daten,
mit Einbußen bei der Funktionalität zu rechnen. Die höhere Datenaktualität
geht in diesem Fall zu Lasten einer integrierten Sicht auf heterogene Datenbestände. Zudem sind effiziente Sperrmechanismen nötig, um den gleichzeitigen
und konsistenten Zugriff von Schreib- und Leseoperationen zu ermöglichen.
Zusammenfassend kann festgehalten werden, dass die Anforderung der Datenaktualität in einem Data Warehouse vor dem Hintergrund dynamischer Umweltverhältnisse ein wichtiges und wünschenswertes Ziel ist. Gleichwohl sollte bedacht
werden, zu welchem Preis potentielle Zeiteinsparungen erreicht werden können.
Eine Reduktion der Latenzzeit wird mit diesem Wissen nur dann vorgenommen,
wenn sie für den gegebenen Zweck auch tatsächlich sinnvoll erscheint.
Literatur
Baer04.
Hermann Baer. On-Time Data Warehousing with Oracle Database10g Information at the Speed of your Business, March 2004.
BaGü09. Andreas Bauer und Holger Günzel (Hrsg.). Data-Warehouse-Systeme: Architektur, Entwicklung, Anwendung, Band 3. Aufl. dpunkt-Verl., Heidelberg. 2009.
Conn05. Samuel Conn. OLTP and OLAP data integration : a review of feasible implementation methods and architectures for real time data analysis. SoutheastCon, 2005. Proceedings. IEEE, 2005, S. 515–520.
FaSa10.
Farrah Farooq und Syed Mansoor Sarwar. Real-time data warehousing for
business intelligence. Proceedings of the 8th International Conference on
Frontiers of Information Technology, 2010.
Inmo06.
W. H. Inmon. Building the data warehouse, Band 4. eds. John Wiley Sons,
New York. 2006.
JöDe10.
Thomas Jörg und Stefan Dessloch. Near Real-Time Data Warehousing
Using State-of-the-Art ETL Tools. Work, Band 41, 2010, S. 100–117.
Lang04.
Justin Langseth. Real-time Data Warehousing: Challenges and Solutions,
August 2004.
Lehn03.
Wolfgang Lehner. Datenbanktechnologie für Data-Warehouse-Systeme:
Konzepte und Methoden. dpunkt-Verl., Heidelberg. 2003.
LeTh09. Wolfgang Lehner und Maik Thiele. Evaluation of Load Scheduling Strategies for Real-Time Data Warehouse Environments. Proceedings of the 3rd
International Workshop on Business Intelligence for the Real-Time Enterprise, 2009, S. 1–14.
MNSV09. Mukesh K. Mohania, Ullas Nambiar, Michael Schrefl und Millist W. Vincent. Active and Real-Time Data Warehousing. In Encyclopedia of Database
Systems, S. 21–26. 2009.
Nola99.
Carl Nolan. Manipulate and Query OLAP Data Using ADOMD and Multidimensional Expressions, August 1999.
16
PaKYJ02. Chang-Sup Park, Myoung Ho Kim und Lee Yoon-Joon. Finding an efficient
rewriting of OLAP queries using materialized views in data warehouses.
Decision Support Systems, 32(4), 2002, S. 379–399.
PeJe01.
Torben Pedersen und Christian Jensen. Multidimensional database technology. Computer, 34(12), dec 2001, S. 40–46.
Plat09.
Hasso Plattner. A common database approach for OLTP and OLAP using
an in-memory column database. In Proceedings of the 35th SIGMOD international conference on Management of data, 2009, S. 1–2.
SaBe08.
Ricardo Santos und Jorge Bernardino. Real-time data warehouse loading
methodology. Proceedings of the 2008 international symposium on Database
engineering applications, 2008, S. 49–58.
Shel06.
Joachim Shelp. Real-Time Warehousing und EAI. In Analytische Informationssysteme: Business Intelligence-Technologien und –Anwendungen. Springer, 2006.
SSPK09. Michael Soffner, Norbert Siegmund, Mario Pukall und Veit Köppen. Towards Real-Time Data Integration and Analysis for Embedded Devices. In
Grundlagen von Datenbanken, S. 51–55. Universität Rostock, 2009.
Thie10.
Maik Thiele. Qualitätsgetriebene Datenproduktionssteuerung in EchtzeitData-Warehouse-Systemen. Dissertation, Technische Universität Dresden,
2010.
ThPL08. Christian Thomsen, Torben Bach Pedersen und Wolfgang Lehner. RiTE:
Providing On-Demand Data for Right-Time Data Warehousing. In Proceedings of the 2008 IEEE 24th International Conference on Data Engineering.
IEEE Computer Society, 2008, S. 456–465.
17

Similar documents