Star - Schema - BS 7 Augsburg

Werbung
Star - Schema
Name
1
AnPr
Klasse
Datum
OLAP vs. OLTP
In den RDBMS Konfigurationen unterscheidet man zwei verschiedene Grundtypen:
OLTP: OnLine Transactional Processing ist für die Transaktionsprozesse und somit zur funktionalen Abbildung bzw. Unterstützung der eigentlichen Geschäftsprozesse gedacht. Hier finden wir folgende grundlegende
Eigenschaften wieder:
 Redundanzfreie Abbildung aller Daten im Datenmodell
 Sehr hohe Ausfallsicherheit (meistens durch gespiegelte Systeme)
 Viele User und Transaktionen werden unterstützt
OLAP: OnLine Analytical Processing ist für die Gewinnung von Erkenntnissen aus den Daten konzipiert. Es
greifen im Regelfall keine direkten Interfaces auf die OLAP Datenbanken zu, welche direkt wieder den Geschäftsprozess beeinflussen. Wir finden bei OLAP folgende Eigenschaften:
 Unterstützung von Entscheidungen (mittels Analysetools, „Dashboards“ etc.)
 Abfrageoptimierte Abbildung relevanter Daten
 Sehr hoher Speicherbedarf
 Wenige User und Transaktionen
OLAP Datenbanken finden wir im Regelfall in sogenannten „Datamarts“, in denen große Mengen an Informationen für Analysezwecke bereitgehalten werden.
Das Hauptproblem der OLTP Architekturen ist die Vermeidung von Redundanzen und die damit einhergehende Notwendigkeit von Joins für fachlich relevante Abfragen. Diese Joins können bei intensiveren Datenanalysen zu erheblichen Performanceeinbußen führen, wodurch die OLTP Datenbanken mitunter für schnelle
Datenanalysen nicht mehr zu gebrauchen sind.
2
Der Weg der Daten
Die „Datenwahrheit“ bleibt in dem OLTP Datenbanken, da hier die Geschäftsprozesse laufen. Von dort aus
werden sie mittels eines ETL Prozesses (Extract Transfer Load) in die gewünschte Form gebracht. Hierbei
werden die ursprünglichen Daten nicht verändert, sondern in eine neue Datenbank kopiert.
Mitunter werden in den Analysedatenbanken historische Informationen benötigt, welche zeitlich weiter zurückgreifen, als es die OLTP Datenbanken ermöglichen. Hierbei werden teilweise auch Zwischenschritte eingebaut, um eine saubere Historie zu ermöglichen. Meist wird bereits eine Veränderung der Daten in Richtung
ANPR_StarSchema_v03.docx
Seite 1
Star - Schema
AnPr
Zwischenstatus durchgeführt – man geht von den quellsystemgetriebenen Datenmodell hin zu einem fachlich
getriebenen Datenmodell („Corporate Data Model“) hin, welches auch historisch vorliegt. Man bezeichnet
diese Datenhaltung meist als „Datawarehouse“, kurz DWH. Von dort werden die Daten in die analyseoptimierte Struktur, dem „Datamart“ weitergeleitet. Ziel ist es am Ende aber immer, die Daten derart bereitzustellen, dass Analysen möglichst einfach und vor allem schnell zu ermöglichen.
3
Das Star Schema
Üblicherweise werden in Schemabilder die Analyseplattformen als Würfel („Cubes“) dargestellt. Dies soll das
Grundkonzept der Analysen verdeutlichen. Im Regelfall ist man an Geschäftszahlen interessiert(wie bspw.
„Sales“). Diese müssen nun nach gewissen Gesichtspunkten
zusammengefasst werden. Diese Gesichtspunkte können
bspw. die Zeit sein – also „Wie viel Sales wurde im ersten
Quartal 2014 gemacht?“. Eine andere benötigte Information ist
„Welcher Betreuer hat am meisten verkauft?“. Diese Sichtweisen kann man sich als Dimensionen vorstellen. Wenn man sich
nun die Informationen in drei Dimensionen aufteilt – sagen wir
Betreuer, Kunde und Datum, dann würde dies wie ein Würfel
aussehen, der aus vielen kleinen Einzelwürfeln besteht. Jeder
Einzelwürfel trägt die Information des Salesbetrages zu der zugehörigen Zeit, dem Betreuer und dem Kunden.
Nun kann man in den drei verschiedenen Dimensionen Summen bilden und könnte somit verschiedene Aspekte des Sales analysieren. In der Realität gibt es natürlich mehr als nur drei Dimensionen, da wir auch nach
Branchen, Personen usw. gruppieren möchten. Da dies aber grafisch nicht darstellbar ist, beschränkt man sich
bei Erklärungen meist auf drei Dimensionen.
Die tatsächliche Abbildung auf der Datenbank erfolgt im sogenannten „Star Schema“, in dem die Faktentabelle im Zentrum
steht und die Dimensionstabellen wie Sternenarme außen herum
geordnet sind.
Die Schlüssel der Dimensionen bilden wiederum den kombinierten Schlüssel der Faktentabelle. In den Dimensionstabellen stehen Werte und Eigenschaften, welche für die Spätere Auswertung und Einschätzung interessant sind, wie bspw. Kundennamen
oder Rechtsformen. Die Faktentabelle trägt (neben den Schlüsseln) lediglich die Betragsfelder, welche den eigentlichen Kern
der Analyse darstellen.
Wie man bereits sieht, ist das Star Schema immer auf einen bestimmten Analysebereich ausgerichtet. Die
Anforderungen für ein solches Datenmodell kommen also von den Personen, welche Auswertungen durchführen müssen, nicht von den Systemen, welche die Daten bereitstellen.
Eine leicht veränderte Version des Star Schemas ist das sogenannte „Snowflake Schema“. Dieses berücksichtigt, dass es Dimensionen gibt, die direkt voneinander abhängen. So würde man im Snowflake Schema die
Branche nicht am Fakt „Sales“ hängen, sondern an die Dimensionstabelle der Firma, da eine Firma in unserem
Quelldatenmodell immer einer bestimmten Branche zugeordnet ist. Dies hat den Vorteil, dass weniger Redundanzen entstehen, allerdings den Nachteil, dass wieder mehr Joins notwendig werden.
In der Praxis gilt es noch zusätzliche Probleme zu meistern. Ein Beispiel wären die „Slowly Changing Dimensions“. Dies sind Änderungen in den Dimensionen – wenn bspw. für einen Kunden der Betreuer wechselt.
Hier müssen die Änderungen dergestalt in den Datenhaushalt eingebaut werden, dass der Auswertende sinnvolle Ergebnisse erhält. Dies bedeutet, dass es für einen Betreuerwechsel je nach Auswertungsnotwendigkeit
unterschiedliche Lösungsansätze gibt. Da dies jedoch den Inhalt sprengen würde, sei hier auf das Internet
verwiesen.
Seite 2
AnPr
4
Star - Schema
Aufgabenstellung
Um das Ganze praktisch zu untermauern,
soll nun ein Star Schema erstellt und bewirtschaftet werden. Als Datenbasis für das im
vorausgegangenen Kapitel bereits vorgestellte Schema die nebenstehenden Tabellen.
Wie wir schon erahnen können, wird das
Umstellen auf ein Star Schema nicht sehr
viel bringen, da die Datenbasis vergleichsweise einfach aufgebaut ist. Trotzdem wird ein Performancegewinn bei den Abfragen zu erwarten sein.
4.1 Die Dimensionstabellen
Da die Faktentabelle die Schlüssel aus den Dimensionstabellen bezieht, beginnen wir mit den Dimensionstabellen.
Tabelle DimPartner:
Spaltenname:
PartnerID
PrimAnsprechpersonName
Struktur:
INT (Primary
Key)
VARCHAR(60)
PrimGeschl
CHAR(1)
Quelle:
1:1 aus Partner.
Nachname + Vorname aus Tabelle Person.
Bei Firmen: erste. auffindbare Person der Firma (also
Primärer Ansprechpartner). Bei Privatkunden: Person.
Aus Person (Datensatzauswahl siehe oben)
Tabelle DimBetreuer:
Spaltenname:
BetreuerID
Struktur:
INT (Primary
Key)
VARCHAR(60)
CHAR(1)
Quelle:
1:1 aus Partner.BetreuerID.
Quelle:
Bei Firmen 1:1 aus Firma. Bei Privatkunden Wert „-1“
Name
Struktur:
INT (Primary
Key)
VARCHAR(100)
RechtsForm
CHAR(5)
Name
Geschl
Nachname + Vorname aus Tabelle Person
Aus Person (Datensatzauswahl siehe oben)
Tabelle DimFirma:
Spaltenname:
FirmaID
Bei Firmen 1:1 aus Firma. Bei Privatkunden Wert „Privatkunde“
Bei Firmen 1:1 aus Firma. Bei Privatkunden Wert
„PRV“
Tabelle DimBranche:
Spaltenname:
BrancheID
Bezeichnung
Struktur:
INT (Primary
Key)
VARCHAR(100)
Quelle:
Bei Firmen 1:1 aus Branche. Bei Privatkunden Wert „1“
Bei Firmen 1:1 aus Branche. Bei Privatkunden Wert
„Privatkunden“
Seite 3
Star - Schema
AnPr
Tabelle DimDatum: Die Datumstabelle ist eine besondere Tabelle, da die Daten für die Auswertungszwecke
speziell aus dem Datumswert erzeugt werden. Auch werden die Keys eigens für das Star Schema erstellt:
Spaltenname:
DatumID
Datum
Tag
Wochentag
Monat
Quartal
Jahr
Struktur:
INT (Primary
Key)
DATE
TINYINT
TINYINT
TINYINT
TINYINT
SMALLINT
Quelle:
AUTO INCREMENT
1:1 aus Bestellung
Errechnet aus Datum
Errechnet aus Datum
Errechnet aus Datum
Errechnet aus Datum
Errechnet aus Datum
4.2 Die Faktentabelle
Basierend auf den Dimensionkeys kann nun die Faktentabelle definiert werden:
Tabelle FctSales:
Spaltenname:
DatumID
PartnerID
BetreuerID
BrancheID
FirmaID
Porto
BestBetrag
Struktur:
INT (Primary
Key)
INT (Primary
Key)
INT (Primary
Key)
INT (Primary
Key)
INT (Primary
Key)
DECIMAL(7,2)
DECIMAL(10,2)
Quelle:
DimDatum
DimPartner
DimBetreuer
DimBrache
DimFirma
Summe aus Bestellung
Summe Betrag aus Bestellung
4.3 Die Skripte
Erstellen Sie nun ein Skript, welches die Datenbankstruktur bereitstellt. Anschließend ein Skript, welches die
Daten aus dem existierenden HardWhere Datenmodell in das Star Datenmodell migriert. Hierzu reichen in
unserem Fall normale SQL Mittel.
Empfehlung:
Bewirtschaften Sie zuerst die Dimensionstabellen, anschließend lediglich die Keys der Faktentabelle. Erst zum
Schluss werden über ein Updatestatement die Faktenbeträge übernommen.
Hilfestellung für Update aus einem Select:
UPDATE Zieltabelle, (
SELECT z.KeyFeld, q.WerteFeld FROM Quelltabelle q, Zieltabelle z
WHERE z.KeyFeld = q.KeyFeld) Quelle
SET Zieltabelle.WerteFeld = Quelle.WerteFeld
WHERE Zieltabelle.KeyFeld = Quelle.KeyFeld;
Hier wird die Zieltabelle mittels „SET“ geupdated. Die Daten kommen aus einer Quelltabelle und werden
mittels einem Subselect ermittelt (dieses müssen Sie natürlich auf die Problemstellung anpassen).
Seite 4
AnPr
5
Star - Schema
Die Abfragen
Für folgende Abfragen sollen Sie einmal über das Star Schema gehen und einmal die Informationen direkt aus
dem Quelldatenmodell beziehen und jeweils die Performance notieren.
Aufgabenstellung:
Ergebnis:
Quartal mit den meisten Umsätzen
4/2012
Betreuer mit den meisten Umsätzen
Becker Petra
Branche mit den meisten Umsätzen
Gastronomie,
Restaurants
Zeit OLAP:
Zeit OLTP:
Der Betreuer, welcher in der Branche 132 im Becker Petra
ersten Quartal 2009 den meisten Umsatz gemacht hat.
Der Kunde, welcher den meisten Umsatz ge- Riemer Josef
macht hat
Der Kunde (Ansprechpartner), welcher im Schneider Hildezweiten Quartal 2012 den meisten Umsatz ge- gard
macht hat.
Seite 5
Star - Schema
6
AnPr
Lizenz
Diese(s) Werk bzw. Inhalt von Maik Aicher (www.codeconcert.de) steht unter einer
Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen
Bedingungen 3.0 Unported Lizenz.
Seite 6
Herunterladen