Data-Warehouse-Technologien Prof. Dr.-Ing. Kai-Uwe Sattler 1 Prof. Dr. Gunter Saake 2 Dr. Veit Köppen 2 1 TU Ilmenau FG Datenbanken & Informationssysteme 2 Universität Magdeburg Institut für Technische und Betriebliche Informationssysteme Letzte Änderung: 15.10.2018 c Sattler / Saake / Köppen Data-Warehouse-Technologien Letzte Änderung: 15.10.2018 0–1
66
Embed
Data-Warehouse-Technologien · Speicherstrukturen für Data Warehouse Relationale Speicherung Relationale Speicherung – ROLAP Umsetzung von Star- bzw. Snowflake-Schema auf Relationen
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Data-Warehouse-Technologien
Prof. Dr.-Ing. Kai-Uwe Sattler1 Prof. Dr. Gunter Saake2
Dr. Veit Köppen2
1TU IlmenauFG Datenbanken & Informationssysteme
2Universität MagdeburgInstitut für Technische und Betriebliche Informationssysteme
Speicherstrukturen für Data Warehouse Relationale Speicherung
Relationale Speicherung – ROLAP
Umsetzung von Star- bzw. Snowflake-Schema auf RelationenVerbreitetste Form der Speicherung von DW-Tabellen(Details: siehe VL „Datenbank-Implementierungstechniken“)Besonderheiten
I Sehr große Faktentabellen→ Beschleunigung der Zugriffe durchPartitionierung
I Multidimensionale Zugriffe→ spezielle Cluster- und IndexstrukturenI Update-Charakteristik (Anhängen von Daten)
Speicherstrukturen für Data Warehouse Relationale Speicherung
Partitionierung
Unabhängig von und ergänzend zu Indexverfahren:Aufteilung umfangreicher Relationen in kleinere Teilrelationen(sogenannte Partitionen oder Fragmente)Größe und Inhalt der Partitionen richtet sich nach Anfrage- undAktualisierungscharakteristikUrsprünglich für verteilte Datenbanken um Lastverteilung aufmehreren Knoten zu unterstützenPartitionierung umfasst die logische Aufteilung von Relationen,die physische Verteilung ist Aufgabe der Allokation
Speicherstrukturen für Data Warehouse Relationale Speicherung
Partitionierung in Data Warehouses (2)
Spezialfall vertikaler Partitionierung: Mini-DimensionenGelegentlich werden Dimensionstabellen riesig groß:z.B. Kundentabelle mit mehreren Millionen Datensätzen
I Viele Attribute werden nie oder nur selten angefragt, da sie fürAuswertungen uninteressant sind
oderI es gibt disjunkte Attributgruppen, die immer nur für verschiedene
Anwendungen bzw. verschiedene Arten von Auswertungen benötigtwerden
Abtrennung von Attributen durch vertikale Partitionierung erlaubtdann eine deutliche Verkleinerung der einzelnenDimensionstabellen
Speicherstrukturen für Data Warehouse Relationale Speicherung
Append-Mode Tabellen
Optimierter Modus für Tabellen zum Hinzufügen von DatenHinzufügen erfolgt am Ende→ INSERT OptimierungFührt to mehreren Page-Loads zur Abfragezeitin DB2 per ALTER TABLE darf kein geclusterter Index assoziiertwerdenin Oracle beim Laden, z.B. Bulk-Loader-Option
ALTER TABLE Bestellung (BestellNr int primary key, ...
Speicherstrukturen für Data Warehouse Relationale Speicherung
Bereichsgeclusterte Tabellen
Nutzung ein Sequenznummer (frei wählbares Attribut) als logischRowid zur Ermittlung der physischen SpeicheradresseVorab-Allokation des gesamten Speicherplatzes der TabelleEinsortierung des Tupels über SequenznummerZugriff über Sequenznummer→ kein zusätzlicher Indexnotwendig
CREATE TABLE Bestellung (BestellNr int primary key, ...
) ORGANIZE BY KEY SEQUENCE(BestellNr starting from 1 ending at 10000)
Speicherstrukturen für Data Warehouse Multidimensionale Speicherung
Multidimensionale Speicherung – MOLAP
Verwendung unterschiedlicher Datenstrukturen für Datenwürfelund DimensionSpeicherung des Würfels als ArrayOrdnung der Dimension für Adressierung der WürfelzellennotwendigHäufig proprietäre Strukturen (und Systeme)
Speicherstrukturen für Data Warehouse Multidimensionale Speicherung
Datenstruktur für Würfel
Für n Dimensionen: n-dimensionaler Raummi Dimensionswerte der Dimension i: Aufteilung des Würfels in mparallele EbenenDurch Endlichkeit der Dimensionswerteliste: endliche, gleichgroßeListe von Ebenen je DimensionZelle eines n-dimensionalen Würfels wird eindeutig über n-Tupelvon Dimensionswerten identifiziertZelle kann ein oder mehrere Kennzahlen eines zuvor definiertenDatentyps aufnehmenBei mehreren Kennzahlen: Alternative→ mehrere Datenwürfel
Speicherstrukturen für Data Warehouse Multidimensionale Speicherung
Klassifikationshierarchien
Dimensionswerte umfassen alle Ausprägungen der Dimension:Elemente (Blätter) und Knoten der höheren KlassifikationsstufenKnoten der höheren Stufen bilden weitere Ebenen
Speicherstrukturen für Data Warehouse Multidimensionale Speicherung
Berechnung von Aggregationen
Echtzeit:I Bei Anfrage von Zellen, die Werte einer höheren, aggregierten
Klassifikationsstufe repräsentieren→ Berechnung aus DetaildatenI Hohe Aktualität, jedoch hoher AufwandI Eventuell Caching
Vorberechnung:I Nach Übernahme der Detaildaten→ Berechnung und Eintragen
der Aggregationswerte in entsprechende ZellenI Neuberechnung nach jeder Datenübernahme notwendigI Hohe Anfragegeschwindigkeit, jedoch Zunahme der Würfelgröße
Speicherstrukturen für Data Warehouse Multidimensionale Speicherung
Array-Speicherung
Speicherung des Würfels: n-dimensionales Array→ Linearisierung in eine eindimensionale ListeIndizes des Arrays→ Koordinaten der Würfelzellen (Dimensionen Di)Indexberechnung für Zelle z mit Koordinaten x1...xn
Speicherstrukturen für Data Warehouse Multidimensionale Speicherung
Hybride Speicherung – HOLAP
Verbindung der Vorteile beider WeltenI Relational (Skalierbarkeit, Standard)I Multidimensional (analytische Mächtigkeit, direkte
OLAP-Unterstützung)Speicherung:
I Relationale Datenbank: DetaildatenI Multidimensionale Datenbank: aggregierte DatenI Multidimensionale Speicherstrukturen als „intelligenter“ Cache für
häufig angeforderte Datenwürfel
Transparenter Zugriff über multidimensionales Anfragesystem
Speicherstrukturen für Data Warehouse Speicherungsvarianten
Steuerung der Partitionierung
Automatische Partitionierung:I Automatisches Finden der Partitionierung für optimale Ausführung
der OperationenI Nutzung des Füllgrades der BereicheI Nutzung von Zugriffsstatistiken
Bedeutung bestimmter Dimensionen/ DimensionskombinationenI Besondere Behandlung der ZeitdimensionI Partitionierung nach Zeitreihen (spezielle Formate für Reihen von
Werten, z.B. täglich, wöchentlich, etc.)Zwei-Ebenen-Speicherung
I Nur Speicherung von verwendeten Kombinationen dünn besetzterDimensionen
Partitionenspezifikation des AnwendersI Direkte Spezifikation jedes BereichesI Dimensionspartitionen
Speicherstrukturen für Data Warehouse Speicherungsvarianten
Zwei-Ebenen-Datenstruktur
Obere Ebene indiziert Datenblöcke, die auf unterer Ebenegespeichert werdenUntere Ebene: Array mit allen möglichen Kombinationen vonDimensionswertenZellen des Array:
I Zeiger auf Datenblock, der Datenwerte für entsprechendenDimensionswert der dicht besetzten Dimensionen enthält
Speicherstrukturen für Data Warehouse Spaltenorientierte Speicherung
Datenexplosion
Datenbestände im OLAP-Bereich wachsen ständig ↪→ Daten inzentralisierten Systemen kaum noch verwaltbarHistorisierung der Daten erhöht Datenvolumen zusätzlichOLAP-Anfragen sehr speicher- und rechenintensiv ↪→ Verteilungder Last notwendigFür Aggregationen (OLAP) ist eine vertikale Partitionierung/Fragmentierung sinnvoll ↪→ bereits bestehende Partitionierungvon Column Stores ausnutzenAktuelle Systeme setzen Kompressionstechniken zurDatenvolumenreduktion ein
Speicherstrukturen für Data Warehouse Spaltenorientierte Speicherung
Anfragebearbeitung
Column Stores basieren auch auf relationalem Datenmodell ↪→Verwendung der relationalen Algebra und derer OperationenLogischer Anfrageplan wie bei Row StoresArchitekturspezifische Ausführung transparentBitoperationen von Natur aus unterstützt (vgl. Bitmap-Join-Index)Spaltenweise Kompression erlaubt Bearbeitung ohneDekompression
I Verlustfreie Kompressionstechniken (Bekannteste: Lempel-Ziv undDerivate) ↪→ gleiche (unkomprimierte) Werte haben gleichekomprimierte Darstellung
I D.h. Vergleichswert wird falls nötig vor Anfrageausführung inkomprimierte Darstellung überführt ↪→ gut geeignet für nichtvektorbasierte Joins
I Ordnungserhaltende Techniken wie RLE ↪→Werte ggf. direktvergleichbar oder wie bei verlustfreier Kompression
I D.h. Aggregatfunktionen wie MIN/MAX oder SUM können Datenkomprimiert verarbeiten
Speicherstrukturen für Data Warehouse Spaltenorientierte Speicherung
Materialisierungszeitpunkt
Frühe Materialisierung (EM)I Anfragebearbeitung sehr nah an Row StoresI Aggregatfunktionen auf einzelnen ColumnsI Tupelrekonstruktion sobald Tupel verwendetI Zumeist Verwendung bei tupel-orientierter Anfragebearbeitung
Späte Materialisierung (LM)I So lang wie möglich auf Columns arbeitenI Mehrfacher Zugriff auf Basistabellen und/oder ZwischenergebnisseI Folge: Anfrageplan kein Baum mehrI Aber: Gleichzeitige Bearbeitung auf komprimierten und
unkomprimierten Daten möglichI Notwendig für (effektive) spalten-orientierte Anfragebearbeitung
Speicherstrukturen für Data Warehouse Spaltenorientierte Speicherung
Nachteile
Tupelrekonstruktion verursacht KostenKosten für Einfügeoperation durch Partitionierung der TupelUpdates benötigen TupelrekonstruktionFolge: Insert- und Update-in-place nicht möglichAber: Updates und Inserts in OLAP/DWH Anwendung selten odernur durch ETL
Speicherstrukturen für Data Warehouse Spaltenorientierte Speicherung
Lösungsansätze
Tupel-orientierte Anfragebearbeitung und frühe MaterialisierungC-Store/Vertica
I Read-optimized (RS) and write-optimized Storage (WS)I Verschiedene sich überlappende Projektionen im RSI Inserts und Updates nur im WSI Tuple mover übermittelt Daten vom WS in RS zu geringer Last
Speicherstrukturen für Data Warehouse Spaltenorientierte Speicherung
Zusammenfassung
Row Stores nicht optimal für OLAP- und DWH-AnwendungenColumn Stores besser geeignet für AggregatsfunktionenColumn Stores verringern Datenvolumen z.T. drastisch ↪→geringerer I/O, bessere Ausnutzung des HauptspeichersDarstellung von Tupeln erzeugt Kosten in Column Stores(Tupelrekonstruktion)Column Stores zeigen Schwächen bei Inserts und UpdatesSehr viele und stark unterschiedliche Implementierungen fürColumn Stores