Seminar im Sommersemester 2004 an der Universität Karlsruhe (TH) Verteilung und Integration von Informationen im Verkehrsbereich Thema: OLAP in verteilten Data-Warehouse- Umgebungen Vortrag: Christian Kuhn Betreuer: Heiko Schepperle Karlsruhe, 28.06.2004
Szenario - Zur Erfassung von LKW-Daten: Mautstationen auf der Autobahn - Daten: Uhrzeit, Datum, eventuell Gewicht und Ladung - Eindeutige Identifizierung über MautstationsID und LKW-MauterfassungsID - Zweck: Routenverfolgung, Statistiken (Streckenauslastung,...),... Christian Kuhn 2
Szenario - Gefordert: Analyse auf großen Datenmengen ==> OnLine Transactional Processing (OLTP) für Analyse ungeeignet - Besser: OnLine Analytical Processing (OLAP) - Ideal: OLAP-Datenbanken zu verteilen, z.b. jedes Bundesland ein Data-Warehouse ==> Reduktion der Datenbankgröße ==> Welche Möglichkeiten gibt es dafür? Christian Kuhn 3
Szenario Christian Kuhn 4
- Data-Warehouse und OLAP zur Implementierung -Architektur -Daten der Ansätze Gliederung Christian Kuhn 5
Abgrenzung Data-Warehouse gegenüber traditionellen Informationssystemen Perspektive Transaktionale Systeme Data-Warehouse-Systeme Anwender Ein-/Ausgabe durch Auswertung durch Manager, Sachbearbeiter Controller, Analysten Anwenderzahl Sehr viele Wenige Interaktionsdauer Kurze Lese-/ Lesen, periodisches und Typ Schreibtransaktion Importieren neuer Daten Anfragestruktur Einfach Komplex Datenvolumen Megabyte Gigabyte Gigabyte Terabyte Schemaentwurf Anfrageneutrale Analysebezogene Datenmodellierung Datenmodellierung Antwortzeit ms s Christian Kuhn 6
Definition Data-Warehouse A data warehouse is a subject-oriented, integrated, time-varying, non-volatile collection of data in support of the management's decision-making process. (Inmon 1996) also: - Fachorientierung - Integrierte Datenbasis - Historische Daten - Nicht flüchtige Datenbasis Christian Kuhn 7
OLAP - Spekulative was-wenn und/oder warum Datenmodell-Szenarien - Innerhalb historischer Basis und Perspektive - Informationen aus Unternehmensdaten - Unendliche Anzahl von hierarchischen Dimensionen - Abfragen auf die Dimensionen Christian Kuhn 8
OLAP vs. Data-Warehouse - Data-Warehouse beschreibt die Architektur der Analysedatenbank - OLAP als übergeordnetes Werkzeug - Begriff wird nicht konsistent verwendet - ROLAP (relationales OLAP) - MOLAP (multidimensionales OLAP) - HOLAP (hybrides OLAP) Christian Kuhn 9
Star-Schema (ROLAP) Christian Kuhn 10
Skalla-Ansatz Christian Kuhn 11
Skalla-Ansatz - Benutzt ROLAP als Architektur - GMDJ als Abfragesprache -Seiten entsprechen im Szenario einzelnen Bundesländern - Mediator entspricht zentralem Provider Christian Kuhn 12
Ablauf Algorithmus - Anfrage in GMDJ an Mediator - Mediator konstruiert leere Ergebnisstruktur - Sendet Ergebnisstruktur an Skalla Seiten Seiten liefern Ergebnis an Mediator - Mediator synchronisiert und aggregiert die Unterergebnisse - Iterativer Ablauf für jeden Operator in GMDJ- Ausdruck (Ergebnisstruktur ist synchronisierte) Christian Kuhn 13
Beispielschema Traffic(LorryID, LorryTyp, Date, Load, Weight) Traffic auf Skalla Seite 1 LorryID LorryTyp Date Load Weight 4711 MAN 20040611 Oil 9 4712 MAN 20040611 Wood 11 4713 Daimler 20040611 Gas 8 4714 Daimler 20040611 Gas 10 Traffic auf Skalla Seite 2 LorryID LorryTyp Date Load Weight 4812 MAN 20040611 Wood 9 4813 Daimler 20040611 Gas 10 4814 Daimler 20040611 Gas 8 Christian Kuhn 14
Beispielabfrage Wir wollen wissen: - die Anzahl der LKWs pro Hersteller und Ladung (cnt1) - welches Gewicht die Ladungen innerhalb der Gruppierung haben (sum1) - wieviele LKWs innerhalb der Gruppierung es gibt, die mehr als das Durchschnittsgewicht transportieren (cnt2) ==> es sind zwei verschachtelte GMDJ-Operatoren notwendig, der erste (innere) ermittelt cnt1 und sum1, der zweite (äußere) ermittelt cnt2 mit sum1/cnt1 Christian Kuhn 15
Beispielabfrage: 1. Runde Mediator legt Ergebnisstruktur X an: X = {LorryTyp, Load, cnt1, sum1, cnt2} und sendet sie mit Anfrageplan an Skalla Seiten Diese schicken Basistabelle mit π LorryTyp,Load (Traffic) zurück LorryTyp Load MAN MAN Daimler Oil Wood Gas LorryTyp Load MAN Daimler Wood Gas Ergebnis von Seite 1 Ergebnis von Seite 2 LorryTyp Load MAN MAN Daimler Oil Wood Gas Vom Mediator synchronisiert Christian Kuhn 16
Beispielabfrage: 2. Runde Synchronisierte Ergebnisstruktur X wird wieder an Skalla Seiten geschickt mit ersten GMDJ-Operator. Zählt die jeweiligen LKWs und summiert Gewicht auf. LorryTyp Load cnt1 sum1 MAN Oil 1 9 MAN Wood 1 11 Daimler Gas 2 18 LorryTyp Load cnt1 sum1 MAN Oil 0 0 MAN Wood 1 9 Daimler Gas 2 18 Ergebnis von Seite 1 Ergebnis von Seite 2 LorryTyp Load cnt1 sum1 MAN Oil 1 9 MAN Wood 2 20 Daimler Gas 4 36 Vom Mediator synchronisiert Christian Kuhn 17
Beispielabfrage: 3. Runde Synchronisierte Ergebnisstruktur X wird wieder an Skalla Seiten geschickt mit zweiten (äußeren) GMDJ-Operator. Zählt die LKWs, deren Gewicht dem Durchschnitt ist LorryTyp Load cnt1 sum1 cnt2 MAN Oil 1 9 1 MAN Wood 2 20 1 Daimler Gas 4 36 1 LorryTyp Load Ergebnis von Seite 1 Ergebnis von Seite 2 LorryTyp Load cnt1 sum1 cnt2 MAN Oil 1 9 1 MAN Wood 2 20 1 Daimler Gas 4 36 2 Vom Mediator synchronisiert cnt1 sum1 cnt2 MAN Oil 1 9 0 MAN Wood 2 20 0 Daimler Gas 4 36 1 Christian Kuhn 18
XML-Ansatz Christian Kuhn 19
Ablauf Algorithmus - Benutzer stellt Anfrage mit MDX - Collection Server sendet Anfrage an verteilte DWs - Verteilte Data Warehouses senden Ergebnisse in XML zurück an Collection Server - Collection Server aggregiert und synchronisiert Daten - Collection Server sendet Daten an OLAP-Server, um OLAP-Würfel zu erstellen - Benutzer stellt jetzt Anfragen an OLAP-Würfel Christian Kuhn 20
Beispiel für gefülltes OLAP-Schema <olap_cube name="collection"> <fact_table> <row Weight ="8" Load ="Oil" LorryTyp ="MAN" Date ="20040611" > <row Weight ="9" Load ="Gas" LorryTyp ="Daimler" Date ="20040611"/> </fact_table> <Load> <row Load="Oil" sub_group="consistent" main_group="liquid"/> <row Load="Gas" sub_group="fluid" main_group="liquid" /> </Load>.. </olap_cube> Christian Kuhn 21
Beispiel für MDX-Abfrage SELECT {LorryTyp.company.[2], LorryTyp.company.[5]}, Load.main_group.0.CHILDREN, {Date.[20040611], Date.[20040612]} FROM collection WHERE Weight Christian Kuhn 22
Vergleich der beiden Ansätze - beide Ansätze sind sehr ähnlich, ein zentraler Mediator sammelt Daten und synchronisiert Unterschiede: Eigenschaft Skalla-Architektutur XML-Architek- Datenformat jede Skalla-Seite XML hat einen Wrapper Dauer der Datensammlung mehrere Runden sofort alles (iterativ) Abfragesprache GMDJ MDX Ergebnis Ergebnisstruktur OLAP-Würfelschema Optimierungsmöglichkeiten mehrere unbekannt Christian Kuhn 23
Fazit - GMDJ ist für das verteilte Rechnen konzeptiert - MDX eigentlich nur für lokales ==> GMDJ daher geeigneter? - Angeblich können beide Ansätze mit großen Datenmengen umgehen ==> wie groß ist groß? - keine Anwendungen bekannt, nur die theoretischen Ausarbeitungen (Performance? Skalierbarkeit?) Christian Kuhn 24
Vielen Dank für die Aufmerksamkeit! Fragen?? Christian Kuhn 25