DATA-WAREHOUSE-TECHNOLOGIEN



Ähnliche Dokumente
Anforderungen des Data Warehousing. 2. Data-Warehouse-Architektur. Anforderungen des Data Warehousing. Referenzarchitektur. Data-Warehouse-Manager

Data-Warehouse-Architektur

Data-Warehouse-Architektur

Teil II Data-Warehouse-Architektur

OLAP und Data Warehouses

1. Einführung. Szenario: Getränkemarkt. DB-Schema. Motivation Überblick Anwendungen Abgrenzung Begriff Data Warehouse DW-Architektur Benchmarks

fi Data Warehouse: Sammlung von Technologien zur Unterstützung von Entscheidungsprozessen fi Herausforderung an Datenbanktechnologien

Data Warehouse Technologien

Veit Köppen Gunter Saake Kai-Uwe Sattler. 2. Auflage. Data Warehouse Technologien

Einführungsveranstaltung: Data Warehouse

Data-Warehouse-Architektur. Anforderungen des Data Warehousing. Anforderungen Referenzarchitektur Phasen des Data Warehousing Komponenten

Data-Warehouse-Technologien

Das Multidimensionale Datenmodell

Einführung. Überblick. Data-Warehouse-Technologien. Vorlesung

Kapitel 6. Vorlesung: PD Dr. Peer Kröger

Kapitel 6 Einführung in Data Warehouses

Data Warehouse Technologien

Multidimensionales Datenmodell

Data Warehousing. Kapitel 1: Data-Warehousing-Architektur. Folien teilweise übernommen von Matthias Gimbel

Multidimensionales Datenmodell. Motivation. Motivation /2. Grundbegriffe. Analyseoperationen. Notationen zur konzeptuellen Modellierung

Data Warehousing und Data Mining

Seminar im Sommersemester 2004 an der Universität Karlsruhe (TH)

Architektur eines Data Warehouse Systems. Mario Jandeck

Data Warehouse ??? Ein Data Warehouse ist keine von der Stange zu kaufende Standardsoftware, sondern immer eine unternehmensindividuelle

Datenbanktechnologie für Data-Warehouse-Systeme

Informationssysteme: Neuere Konzepte Teil II

Business Intelligence Data Warehouse. Jan Weinschenker

Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY

Data Warehouse Theorie und Praxis. Ali Khabbazian T-Systems

Data Warehousing: Anwendungsbeispiel

Data-Warehouse-Systeme

Christian Kurze BI-Praktikum IBM WS 2008/09

Data Warehouse Definition (1)

Datenbanken. Prof. Dr. Bernhard Schiefer.

7. Übung - Datenbanken

Kapitel 7 Grundlagen von Data

Einführung & Grundbegriffe

Vorlesung Datenbankmanagementsysteme

Motivation. Motivation /2. Dimensionen. Einfache Hierarchien. Hierarchien in Dimensionen. 3. Multidimensionales Datenmodell

Data Warehouses. Alexander Fehr. 23. Dezember 2002

Data-Warehouse-Technologien

Motivation. Dimensionen. Motivation /2. 3. Multidimensionales Datenmodell

Einführung relationale Datenbanken. Themenblock: Erstellung eines Cube. Schlüssel. Relationenmodell Relationenname Attribut. Problem.

BI Konsolidierung: Anspruch & Wirklichkeit. Jacqueline Bloemen. in Kooperation mit

Themenblock: Erstellung eines Cube

Aufgabe 1: [Logische Modellierung]

Seminar Business Intelligence Teil II. Data Mining & Knowledge Discovery

eevolution Business Intelligence Oliver Rzeniecki COMPRA GmbH Programmierer & Datenbankadministrator

Definition Informationssystem

Agenda. Themenblock: Data Warehousing (I) Referenzarchitektur. Eigenschaften eines Data Warehouse. Einführung Data Warehouse Data Access mit SQL

Einführung in OLAP und Business Analysis. Gunther Popp dc soft GmbH

Business Intelligence Praktikum 1

Data Warehouse Grundlagen

Allgemeines zu Datenbanken

Multidimensionale Modellierung

Kapitel 2 Terminologie und Definition

1Ralph Schock RM NEO REPORTING

Datenmanagement. Simone Unfried, Passau Vitaly Aleev, Passau Claus Schönleber, Passau. Strategisches Informationsmanagement 1 (01/2006)

Data Warehousing. Sommersemester Ulf Leser Wissensmanagement in der Bioinformatik

Logische Modelle für OLAP. Burkhard Schäfer

Modellierung von OLAP- und Data- Warehouse-Systemen

Online Analytical Processing

C09: Einsatz SAP BW im Vergleich zur Best-of-Breed-Produktauswahl

Summarization-based Aggregation

MIS by Franziska Täschler, Winformation GmbH Ausgabe 01/2001

Einführung. Informationssystem als Abbild der realen Welt

Kampagnenmanagement mit Siebel Marketing/Oracle BI ein Praxisbericht

Profilbezogene informatische Bildung in den Klassenstufen 9 und 10. Schwerpunktthema Daten und Datenbanken

3. Das Relationale Datenmodell

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Seminar C16 - Datenmodellierung für SAP BW

OLAP mit dem SQL-Server

Verwandt, logisch kohärent, zweckspezifisch, an reale Welt orientiert. Entität kann in einer oder mehreren Unterklassen sein

Komponenten und Architekturen von Analytischen Informationssystemen (AIS)

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

Schlüssel bei temporalen Daten im relationalen Modell

Seminar Informationsintegration und Informationsqualität. Dragan Sunjka. 30. Juni 2006

Business Intelligence und Geovisualisierung in der Gesundheitswirtschaft

Business Intelligence. Data Warehouse / Analyse Sven Elvers

ENTERBRAIN Reporting & Business Intelligence

Business Intelligence Praktikum 1

Seminar C02 - Praxisvergleich OLAP Tools

Survival Guide für Ihr Business Intelligence-Projekt

Von der spezialisierten Eigenentwicklung zum universellen Analysetool. Das Controlling-Informationssystem der WestLB Systems

Marketing Intelligence Vorstellung der Softwarekomponenten. Josef Kolbitsch Manuela Reinisch

SQL Server 2012 und SharePoint im Unternehmenseinsatz. Referent Daniel Caesar

Objektorientierte Datenbanken

Datenbanksysteme 2 Frühjahr-/Sommersemester Mai 2014

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Datenmanagement in Android-Apps. 16. Mai 2013

Data Mining-Projekte

Business Intelligence

Datenbankmodelle 1. Das Entity-Relationship-Modell

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

Marketing Intelligence Schwierigkeiten bei der Umsetzung. Josef Kolbitsch Manuela Reinisch

Transkript:

Vorlesung DATA-WAREHOUSE-TECHNOLOGIEN Wintersemester 2007/2008 Vorlesender: Eike Schallehn Vorlesung und Skript von: Prof. Dr.-Ing. habil. Kai-Uwe Sattler TU Ilmenau, FG Datenbanken und Informationssysteme http://www.tu-ilmenau.de/dbis Prof. Dr. habil. Gunter Saake Universität Magdeburg, Institut für Technische Informationssysteme http://wwwiti.cs.uni-magdeburg.de/iti_db

2 Uni Magdeburg, WS 2007/08

1 1 Einführung 1.1 Motivation 1.2 Anwendungen 1.3 Abgrenzung 1.4 Begriff Data Warehouse 1.5 DW-Architektur 1.6 Benchmarks 3

1 Einführung Einführung Einführung 1 Motivation 2 Anwendungen 3 Abgrenzung 4 Begriff Data Warehouse 5 DW-Architektur 6 Benchmarks Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 1 Einführung Szenario: Getränkemarkt Motivation Umsatz, Portfolio Werbung Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 2 DB-Schema Einführung Motivation Produkt (0,*) geliefert von Lieferant kauft (0,*) Menge Kunde Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 3 4 Uni Magdeburg, WS 2007/08

1 Einführung 1 DB-Nutzung Einführung Motivation Anfragen: Wie viele Flaschen Cola wurden letzten Monat verkauft? Wie hat sich der Verkauf von Rotwein im letzten Jahr entwickelt? Wer sind unsere Top-Kunden? Von welchem Lieferanten beziehen wir die meisten Kisten? Probleme Nutzung externer Quellen (Kundendatenbank, Lieferantendatenbank,... ) Daten mit zeitlichem Bezug Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 4 Erweitertes Szenario Einführung Motivation Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 5 DB-Nutzung /2 Einführung Motivation Anfragen Verkaufen wir in Ilmenau mehr Bier als in Erfurt? Wie viel Cola wurde im Sommer in ganz Thüringen verkauft? Mehr als Wasser? Problem Anfragen über mehrere Datenbanken Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 6 Uni Magdeburg, WS 2007/08 5

1 Einführung Lösungen Einführung Motivation Variante 1: Verteilte DB Globale Anfrage über mehrere DBs Sicht mit Union Nachteil: aufwändige verteilte Anfrageausführung Variante 2: Zentrale DB Änderungen über einer zentralen DB Nachteil: lange Antwortzeiten im operativen Betrieb Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 7 Einführung Data Warehouse-Lösung Motivation DB Jena DB Ilmenau DB Erfurt Umsatz, Portfolio Asynchrone Aktualisierung Redundante Datenhaltung Werbung Transformierte, vorberechnete Daten Data Warehouse Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 8 Einführung Gegenstand der Vorlesung Motivation Data Warehouse: Sammlung von Technologien zur Unterstützung von Entscheidungsprozessen Herausforderung an Datenbanktechnologien Datenvolumen (effiziente Speicherung und Verwaltung, Anfragebearbeitung) Datenmodellierung (Zeitbezug, mehrere Dimensionen) Integration heterogener Datenbestände Schwerpunkt Datenbanktechniken von Data Warehouses Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 9 6 Uni Magdeburg, WS 2007/08

1 Einführung 1 Einführung Motivation Überblick Monitoring & Metadaten- Administration Repositry OLAP-Server Externe Quellen Data Warehouse Analyse ETL Query/ Reporting Data Mining Operative Datenbanken Data Marts Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 10 Einführung Anwendungen Betriebswirtschaftliche Anwendungen Informationsbereitstellung Daten und Informationen als Grundlage einer erfolgreichen Abwicklung von Geschäftsprozessen (z.b. Kennzahlen) Anwender: Manager, Abteilungsleiter, Fachkräfte Formen der Bereitstellung Query-Ansätze: frei definierbare Anfragen und Berichte Reporting: Zugriff auf vordefinierte Berichte Redaktionell aufbereitete, personalisierte Informationen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 11 Einführung Anwendungen Betriebswirtschaftliche Anwendungen /2 Analyse (Business Intelligence) Detaillierte Analyse der Daten zur Untersuchung von Abweichungen oder Auffälligkeiten Anwender: Spezialisten (z.b. Controlling, Marketing) Planung Unterstützung durch explorative Datenanalyse Aggregierung von Einzelplänen Kampagnenmanagement Unterstützung strategischer Kampagnen Kundenanalyse, Risikoanalyse Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 12 Uni Magdeburg, WS 2007/08 7

1 Einführung Einführung Anwendungen Wissenschaftliche und Technische Anwendungen Wissenschaftliche Anwendungen Statistical und Scientific Databases technische Wurzeln des DW Beispiel: Projekt Earth Observing System (Klima- und Umweltforschung) täglich ca. 1,9 TB meteorologischer Daten Aufbereitung und Analyse (statistisch, Data Mining) Technische Anwendungen Öffentlicher Bereich: DW mit Umwelt- oder geographischen Daten (z.b. Wasseranalysen) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 13 Einsatzbeispiel Einführung Anwendungen Wal-Mart (www.wal-mart.com) Marktführer im amerikanischen Einzelhandel Unternehmensweites Data Warehouse Größe: ca. 300 TB (2003), heute: geschätzt 0,5 PB Täglich bis zu 20.000 DW-Anfragen Hoher Detaillierungsgrad (tägliche Auswertung von Artikelumsätzen, Lagerbestand, Kundenverhalten) Basis für Warenkorbanalyse, Kundenklassifizierung,... Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 14 Einführung Anwendungen Fragestellungen und Aufgaben (Bsp.) Überprüfung des Warensortiments zur Erkennung von Ladenhütern oder Verkaufsschlagern Standortanalyse zur Einschätzung der Rentabilität von Niederlassungen Untersuchung der Wirksamkeit von Marketing-Aktionen Auswertung von Kundenbefragungen, Reklamationen bzgl. bestimmter Produkte etc. Analyse des Lagerbestandes Warenkorbanalyse mit Hilfe der Kassenbons Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 15 8 Uni Magdeburg, WS 2007/08

1 Einführung 1 Beispiel einer Anfrage Einführung Anwendungen Welche Umsätze sind in den Jahren 2005 und 2006 in den Warensegmenten Bier und Rotwein in den Bundesländern Hessen und Thüringen angefallen? Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 16 Ergebnis (Würfel) Einführung Anwendungen Summe Rotwein Bier Produkt Kennzahl Umsatz 2005 2006 Summe Zeitraum Hessen Thüringen Summe Region Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 17 Ergebnis (Bericht) Einführung Anwendungen Umsatz Bier Rotwein Summe 2005 Hessen 45 32 77 Thüringen 52 21 73 Summe 97 53 150 2006 Hessen 60 37 97 Thüringen 58 20 78 Summe 118 57 175 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 18 Uni Magdeburg, WS 2007/08 9

1 Einführung Einführung Abgrenzung Aspekte von Data Warehouses Integration Vereinigung von Daten aus verschiedenen, meist heterogenen Quellen Überwindung der Heterogenität auf verschiedenen Ebenen (System, Schema, Daten) Analyse Bereitstellung der Daten in einer vom Anwender gewünschten Form (bezogen auf Entscheidungsgebiet) erfordert Vorauswahl, Zeitbezug, Aggregation Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 19 Abgrenzung zu OLTP Einführung Abgrenzung Klassische operative Informationssysteme Online Transactional Processing (OLTP) Erfassung und Verwaltung von Daten Verarbeitung unter Verantwortung der jeweiligen Abteilung Transaktionale Verarbeitung: kurze Lese-/ Schreibzugriffe auf wenige Datensätze Data Warehouse Analyse im Mittelpunkt lange Lesetransaktionen auf vielen Datensätzen Integration, Konsolidierung und Aggregation der Daten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 20 Einführung Abgrenzung Abgrenzung zu OLTP: Anfragen Anfrage transaktional analytisch Fokus Lesen, Schreiben, Modifizieren, Lesen, periodisches Löschen Hinzufügen Transaktionsdauer und -typ kurze Lese- / Schreibtransaktionen lange Lesetransaktionen Anfragestruktur einfach strukturiert komplex Datenvolumen einer wenige Datensätze viele Datensätze Anfrage Datenmodell anfrageflexibel analysebezogen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 21 10 Uni Magdeburg, WS 2007/08

1 Einführung 1 Einführung Abgrenzung zu OLTP: Daten Abgrenzung Anfrage transaktional analytisch Datenquellen meist eine mehrere Eigenschaften nicht abgeleitet, abgeleitet / konsolidiert, zeitaktuell, autonom, nicht zeitaktuell, dynamisch integriert, stabil Datenvolumen MByte... GByte GByte... TByte Zugriffe Einzeltupelzugriff Tabellenzugriff Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 22 Einführung Abgrenzung Abgrenzung zu OLTP: Anwender Anwender transaktional analytisch Anwendertyp Ein-/Ausgabe durch Manager, Controller, Angestellte oder Analyst Applikationssoftware Anwenderzahl sehr viele wenige (bis einige hundert) Antwortzeit msecs... secs secs... min Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 23 Einführung Abgrenzung Abgrenzung: DBMS-Techniken Parallele Datenbanken Technik zur Realisierung eines DWH Verteilte Datenbanken I.d.R. keine redundante Datenhaltung Verteilung als Mittel zur Lastverteilung Keine inhaltliche Integration/Verdichtung der Daten Föderierte Datenbanken Höhere Autonomie und Heterogenität Kein spezifischer Analysezweck Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 24 Uni Magdeburg, WS 2007/08 11

1 Einführung Einführung Data Warehouse: Begriff Begriff Data Warehouse A Data Warehouse is a subject-oriented, integrated, non-volatile, and time variant collection of data in support of managements decisions. (W.H. Inmon 1996) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 25 Einführung Data Warehouse: Charakteristika Begriff Data Warehouse Fachorientierung (subject-oriented): Zweck des Systems ist nicht Erfüllung einer Aufgabe (z.b. Personaldatenverwaltung), sondern Modellierung eines spezifischen Anwendungsziels Integrierte Datenbasis (integrated): Verarbeitung von Daten aus mehreren verschiedenen Datenquellen (intern und extern) Nicht-flüchtige Datenbasis (non-volatile): stabile, persistente Datenbasis Daten im DW werden nicht mehr entfernt oder geändert Zeitbezogene Daten (time-variant): Vergleich der Daten über Zeit möglich (Zeitreihenanalyse) Speicherung über längeren Zeitraum Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 26 Weitere Begriffe Einführung Begriff Data Warehouse Data Warehousing Data-Warehouse-Prozess, d.h. alle Schritte der Datenbeschaffung (Extraktion, Transformation, Laden), des Speicherns und der Analyse Data Mart externe (Teil-)Sicht auf das Data Warehouse durch Kopieren anwendungsbereichsspezifisch OLAP (Online Analytical Processing) explorative, interaktive Analyse auf Basis des konzeptuellen Datenmodells Business Intelligence... Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 27 12 Uni Magdeburg, WS 2007/08

1 Einführung 1 Einführung Begriff Data Warehouse Trennung operativer und analytischer Systeme: Gründe Antwortzeitverhalten: Analyse auf operativen Quelldatensystemen schlechte Performance Langfristige Speicherung der Daten Zeitreihenanalyse Zugriff auf Daten unabhängig von operativen Datenquellen (Verfügbarkeit, Integrationsproblematik) Vereinheitlichung des Datenformats im DW Gewährleistung der Datenqualität im DW Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 28 Historie: Wurzeln Einführung Begriff Data Warehouse 60er Jahre: Executive Information Systems (EIS) qualitative Informationsversorgung von Entscheidern kleine, verdichtete Extrakte der operativen Datenbestände Aufbereitung in Form statischer Berichte Mainframe 80er Jahre: Management Information Systems (MIS) meist statische Berichtsgeneratoren Einführung von Hierarchieebenen für Auswertung von Kennzahlen (Roll-Up, Drill-Down) Client-Server-Architekturen, GUI (Windows, Apple) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 29 Historie Einführung Begriff Data Warehouse 1992: Einführung des Data-Warehouse-Konzeptes durch W.H. Inmon redundante Haltung von Daten, losgelöst von Quellsystemen Beschränkung der Daten auf Analysezweck 1993: Definition des Begriffs OLAP durch E.F. Codd Dynamische, multidimensionale Analyse Weitere Einflussgebiete Verbreitung geschäftsprozessorientierter Transaktionssysteme (SAP R/3) Bereitstellung von entscheidungsrelevanten Informationen Data Mining WWW (Web-enabled Data Warehouse etc.) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 30 Uni Magdeburg, WS 2007/08 13

1 Einführung Einführung Vorlesung: Zielstellungen Begriff Data Warehouse Vermittlung von Kenntnissen zu Datenbanktechniken für Aufbau und Implementierung von Data Warehouses Anwendung bekannter DB-Techniken (siehe Vorlesung Datenbanksysteme ) Datenmodellierung Anfragesprachen und -verarbeitung DW-spezifische Techniken multidimensionale Datenmodellierung spezielle Anfragetechniken Indexstrukturen materialisierte Sichten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 31 DW-Architektur Einführung DW-Architektur Komponenten von DW und deren Aufgaben Datenbanken Datenquellen: Herkunftsort der Daten Arbeitsbereich: temporäre Datenbank für Transformation Data Warehouse: physische Datenbank für Analyse Repository: Datenbank mit Metadaten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 32 Einführung DW-Architektur: Komponenten DW-Architektur Data-Warehouse-Manager: zentrale Kontrolle und Steuerung Monitore: Überwachung der Quellen auf Veränderungen Extraktoren: Selektion und Transport der Daten aus Quellen in Arbeitsbereich Transformatoren: Vereinheitlichung und Bereinigung der Daten Ladekomponenten: Laden der transformierten Daten in das DW Analysekomponenten: Analyse und Präsentation der Daten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 33 14 Uni Magdeburg, WS 2007/08

1 Einführung 1 Einführung DW-Architektur Multidimensionales Datenmodell Datenmodell zur Unterstützung der Analyse Fakten und Dimensionen Klassifikationsschema Würfel Operationen: Pivotierung, Roll-Up, Drill-Down, Drill-Across, Slice und Dice Notationen zur konzeptuellen Modellierung Relationale Umsetzung Star-Schema, Snowflake-Schema Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 34 ETL-Prozess Einführung DW-Architektur Prozess von Extraktion, Transformation und Laden Extraktion von Daten aus Quellen Laden von Daten in das DWH Aspekte der Datenqualität Begriff Probleme Data Cleaning Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 35 Einführung DW-Architektur Index- und Speicherungsstrukturen Klassifikation Wiederholung B-Baum und B+-Baum Mehrdimensionale Indexstrukturen R-Baum UB-Baum Bitmap-Index Vergleich Weitere Formen Multidimensionale Speicherung Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 36 Uni Magdeburg, WS 2007/08 15

1 Einführung Einführung DW-Architektur Anfragen an Data Warehouses Gruppierung und Aggregation Supergroups, CUBE OLAP-Funktionen aus SQL:2003 Mehrdimensionale Erweiterungen von Anfragesprachen: MDX Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 37 Einführung DW-Architektur Anfrageverarbeitung und -optimierung Berechnung von Gruppierung und Cubes Star-Joins Weitere Optimierungsaspekte Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 38 Materialisierte Sichten Einführung DW-Architektur Materialisierte Sicht (engl. materialized view): vorab berechneter Ausschnitt aus einer Faktentabelle Verwendung: Anfrageersetzung Auswahl: Bestimmung der redundant gehaltenen Daten statische vs. dynamische Auswahlverfahren semantisches Caching Wartung und Aktualisierung Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 39 16 Uni Magdeburg, WS 2007/08

1 Einführung 1 TPC-Benchmarks Einführung Benchmarks Vergleich der Leistungsfähigkeit von Datenbanken (www.tpc.org) TPC-C: OLTP Benchmark TPC-H: Ad-hoc Decision Support (variable Anteile) TPC-R: Reporting Decision Support (feste Anfragen) TPC-W: ecommerce Transaktionsprocessing Vorgegebene Schemata (Lieferwesen) Schema-, Query- und Datengeneratoren Unterschiedliche DB-Größen TPC-H: 100 GB - 300 GB - 1 TB - 3 TB Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 40 TPC-H: Schema Einführung Benchmarks REGION NATION CUSTOMER SUPPLIER ORDERS PART PARTSUPP LINEITEM Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 41 TPC-H: Anfragen Einführung Benchmarks SELECT c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice, SUM (l_quantity) FROM customer, orders, lineitem WHERE o_orderkey IN (SELECT l_orderkey FROM lineitem GROUP BY l_orderkey HAVING SUM (l_quantity) > :1) AND c_custkey = o_custkey AND o_orderkey = l_orderkey GROUP BY c_name, c_custkey, o_orderkey, o_orderdate, o_totalprice ORDER BY o_totalprice desc, o_orderdate Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 42 Uni Magdeburg, WS 2007/08 17

1 Einführung Einführung TPC-H: Zahlen (100 GB) Benchmarks Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 43 Einführung TPC-H: Zahlen (3.000 GB) Benchmarks Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 44 Produkte Einführung Benchmarks OLAP-Tools/Server MS Analysis Services, Hyperion, Cognos DW-Erweiterungen für RDBMS Oracle10g, IBM DB2, MS SQL Server: SQL-Erweiterungen, Indexstrukturen, mat. Sichten, Bulk-Load/Insert,... ETL-Tools MS Integration Services, Oracle Warehouse Builder,... Schallehn Data-Warehouse-Technologien Wintersemester 07/08 2 45 18 Uni Magdeburg, WS 2007/08

1 Einführung 1 Teil III Data-Warehouse-Architektur Uni Magdeburg, WS 2007/08 19

1 Einführung 20 Uni Magdeburg, WS 2007/08

2 2 Data-Warehouse-Architektur 2.1 Anforderungen 2.2 Referenzarchitektur 2.3 Phasen des Data Warehousing 2.4 Komponenten 21

2 Data-Warehouse-Architektur Data-Warehouse-Architektur Data-Warehouse-Architektur 1 Anforderungen 2 Referenzarchitektur 3 Phasen des Data Warehousing 4 Komponenten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 1 Data-Warehouse-Architektur Anforderungen Anforderungen des Data Warehousing Unabhängigkeit zwischen Datenquellen und Analysesystemen (bzgl. Verfügbarkeit, Belastung, laufender Änderungen) Dauerhafte Bereitstellung integrierter und abgeleiteter Daten (Persistenz) Mehrfachverwendbarkeit der bereitgestellten Daten Möglichkeit der Durchführung prinzipiell beliebiger Auswertungen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 2 Data-Warehouse-Architektur Anforderungen Anforderungen des Data Warehousing Unterstützung individueller Sichten (z.b. bzgl. Zeithorizont, Struktur) Erweiterbarkeit (z.b. Integration neuer Quelle) Automatisierung der Abläufe Eindeutigkeit über Datenstrukturen, Zugriffsberechtigungen und Prozesse Ausrichtung am Zweck: Analyse der Daten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 3 22 Uni Magdeburg, WS 2007/08

2 2 Data-Warehouse-Architektur Referenzarchitektur Data-Warehouse-Architektur Referenzarchitektur Datenbeschaffungsbereich Extraktion Laden Datenquelle Arbeitsbereich Basisdatenbank Laden Data Warehouse Analyse Monitor Transformation Data- Warehouse- Manager Metadaten- Manager Datenfluss Kontrollfluss Repository Data-Warehouse-System Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 4 Data-Warehouse-Architektur Phasen des Data Warehousing Phasen des Data Warehousing 1 Überwachung der Quellen auf Änderungen durch Monitore 2 Kopieren der relevanten Daten mittels Extraktion in temporären Arbeitsbereich 3 Transformation der Daten im Arbeitsbereich (Bereinigung, Integration) 4 Kopieren der Daten in integrierte Basisdatenbank als Grundlage für verschiedene Analysen 5 Laden der Daten in das Data Warehouse (Datenbank für Analysezwecke) 6 Analyse: Operationen auf Daten des DW Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 5 Data-Warehouse-Architektur Data-Warehouse-Manager Komponenten Zentrale Komponente eines DW-Systems Initiierung, Steuerung und Überwachung der einzelnen Prozesse (Ablaufsteuerung) Initiierung des Datenbeschaffungsprozesses in regelmäßigen Zeitabständen (jede Nacht, am Wochenende etc.): Starten der Extraktion von Daten aus Quellen und Übertragung in Arbeitsbereich bei Änderung einer Quelle: Start der entsprechenden Extraktionskomponente auf explizites Verlangen des Administrators Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 6 Uni Magdeburg, WS 2007/08 23

2 Data-Warehouse-Architektur Data-Warehouse-Architektur Data-Warehouse-Manager Komponenten Nach Auslösen des Ladeprozesses: Überwachung der weiteren Schritte (Bereinigung, Integration etc.) Koordination der Reihenfolge der Verarbeitung Fehlerfall Dokumentation von Fehlern Wiederanlaufmechanismen Zugriff auf Metadaten aus dem Repository Steuerung des Ablaufs Parameter der Komponenten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 7 Datenquellen Data-Warehouse-Architektur Komponenten Lieferanten der Daten für das Data Warehouse gehören nicht direkt zum DW können intern (Unternehmen) oder extern (z.b. Internet) sein heterogen bzgl. Struktur, Inhalt und Schnittstellen (Datenbanken, Dateien) Auswahl der Quellen und Qualität der Daten von besonderer Bedeutung Faktoren für Auswahl Zweck des DW Qualität der Quelldaten Verfügbarkeit (rechtlich, sozial, technisch) Preis für Erwerb der Daten (speziell bei externen Quellen) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 8 Data-Warehouse-Architektur Komponenten Datenquellen: Klassifikation Herkunft: intern, extern Zeit: aktuell, historisch Nutzungsebene: Primärdaten, Metadaten Inhalt: Zahl, Zeichenkette, Grafik, Referenz, Dokument Darstellung: numerisch, alphanumerisch, BLOB Sprache und Zeichensatz Vertraulichkeitsgrad Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 9 24 Uni Magdeburg, WS 2007/08

2 2 Data-Warehouse-Architektur Data-Warehouse-Architektur Komponenten Datenquellen: Qualitätsforderungen Konsistenz (Widerspruchsfreiheit) Korrektheit (Übereinstimmung mit Realität), Vollständigkeit (z.b. Abwesenheit von fehlenden Werten oder Attributen) Genauigkeit (z.b. Anzahl der Nachkommastellen) und Granularität (z.b. tagesgenaue Daten) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 10 Data-Warehouse-Architektur Komponenten Datenquellen: Qualitätsforderungen Zuverlässigkeit und Glaubwürdigkeit (Nachvollziehbarkeit der Entstehung, Vertrauenswürdigkeit des Lieferanten) Verständlichkeit (inhaltlich und technisch / strukturell für jeweilige Zielgruppe) Verwendbarkeit und Relevanz (geeignetes Format, Zweckdienlichkeit) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 11 Monitore Data-Warehouse-Architektur Komponenten Aufgabe: Entdeckung von Datenmanipulationen in einer Datenquelle Strategien: Trigger-basiert aktive Datenbankmechanismen Auslösen von Triggern bei Datenänderungen Kopieren der geänderten Tupel in anderen Bereich replikationsbasiert Nutzung von Replikationsmechanismen zur Übertragung geänderter Daten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 12 Uni Magdeburg, WS 2007/08 25

2 Data-Warehouse-Architektur Monitore Data-Warehouse-Architektur Komponenten Strategien (fortg.): Log-basiert Analyse von Transaktions-Log-Dateien der DBMS zur Erkennung von Änderungen zeitstempelbasiert Zuordnung eines Zeitstempel zu Tupeln Aktualisierung bei Änderungen Identifizierung von Änderungen seit der letzten Extraktion durch Zeitvergleich Snapshot-basiert Periodisches Kopieren des Datenbestandes in Datei (Snapshot) Vergleich von Snapshots zur Identifizierung von Änderungen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 13 Arbeitsbereich Data-Warehouse-Architektur Komponenten Aufgabe: Zentrale Datenhaltungskomponente des Datenbeschaffungsbereichs (engl. staging area) Temporärer Zwischenspeicher zur Integration Nutzung: Ausführung der Transformationen (Bereinigung, Integration etc.) direkt auf Zwischenspeicher Laden der transformierten Daten in DW bzw. Basisdatenbank erst nach erfolgreichem Abschluss der Transformation Vorteile: Keine Beeinflussung der Quellen oder des DW Keine Übernahme fehlerbehafteter Daten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 14 Data-Warehouse-Architektur Extraktionskomponente Komponenten Aufgabe: Übertragung von Daten aus Quellen in Arbeitsbereich Funktion: abhängig von Monitoring-Strategie periodisch auf Anfrage Ereignisgesteuert (z.b. bei Erreichen einer definierten Anzahl von Änderungen) sofortige Extraktion Realisierung: Nutzung von Standardschnittstellen (z.b. ODBC) Ausnahmebehandlung zur Fortsetzung im Fehlerfall Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 15 26 Uni Magdeburg, WS 2007/08

2 2 Data-Warehouse-Architektur Data-Warehouse-Architektur Komponenten Transformationskomponente Vorbereitung und Anpassung der Daten für das Laden Inhaltlich: Daten-/Instanzintegration und Bereinigung Strukturell: Schemaintegration Überführung aller Daten in ein einheitliches Format Datentypen, Datumsangaben, Maßeinheiten, Kodierungen etc. Beseitigung von Verunreinigungen (engl. Data Cleaning bzw. Data Cleansing) Fehlerhafte oder fehlende Werte, Redundanzen, veraltete Werte Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 16 Data-Warehouse-Architektur Komponenten Transformationskomponente Data Scrubbing: Ausnutzung von domänenspezifischen Wissen (z.b. Geschäftsregeln) zum Erkennen von Verunreinigungen Beispiel: Erkennen von Redundanzen Data Auditing: Anwendung von Data-Mining-Verfahren zum Aufdecken von Regeln Aufspüren von Abweichungen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 17 Ladekomponente Data-Warehouse-Architektur Komponenten Aufgabe: Übertragung der bereinigten und aufbereiteten (z.b. aggregierten) Daten in die Basisdatenbank bzw. das DW Besonderheiten: Nutzung spezieller Ladewerkzeuge (z.b. SQL*Loader von Oracle) Bulk-Laden Historisierung: Änderung in Quellen dürfen DW-Daten nicht überschreiben, stattdessen zusätzliches Abspeichern Ladevorgang: Online: Basisdatenbank bzw. DW steht weiterhin zur Verfügung Offline: stehen nicht zur Verfügung (Zeitfenster: nachts, Wochenende) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 18 Uni Magdeburg, WS 2007/08 27

2 Data-Warehouse-Architektur Basisdatenbank Data-Warehouse-Architektur Komponenten Aufgabe: Integrierte Datenbasis für verschiedene Analysen unabhängig von konkreten Analysen, d.h. noch keine Aggregationen Versorgung des DW mit bereinigten Daten (u.u. durch Verdichtung) Anmerkungen: wird in der Praxis oft weggelassen entspricht Operational Data Store (ODS) nach Inmon Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 19 Data Warehouse Data-Warehouse-Architektur Komponenten Aufgabe: Datenbank für Analysezwecke; orientiert sich in Struktur an Analysebedürfnissen Basis: DBMS Besonderheiten: Unterstützung des Ladeprozesses Schnelles Laden großer Datenmengen Massenlader (engl. bulk loader) unter Umgehung von Mehrbenutzerkoordination und Konsistenzprüfung Unterstützung des Analyseprozesses Effiziente Anfrageverarbeitung (Indexstrukturen, Caching) Multidimensionales Datenmodell (z.b. über OLE DB for OLAP) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 20 Data Marts Data-Warehouse-Architektur Komponenten Aufgabe: Bereitstellung einer inhaltlich beschränkten Sicht auf das DW (z.b. für Abteilung) Gründe: Eigenständigkeit, Datenschutz, Lastverteilung, Datenvolumen, etc. Realisierung: Verteilung der DW-Daten Formen: Abhängige Data Marts Unabhängige Data Marts Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 21 28 Uni Magdeburg, WS 2007/08

2 2 Data-Warehouse-Architektur Data-Warehouse-Architektur Abhängige Data Marts Komponenten Verteilung des Datenbestandes nach Integration und Bereinigung (Basisdatenbank) und Organisation entsprechend der Analysebedürfnisse (Data Warehouse) Nabe- und Speiche -Architektur (engl. hub and spoke) Data Mart: nur Extrakt (inkl. Aggregation) des Data Warehouse Keine Bereinigung oder Normierung Analysen auf Data Mart konsistent zu Analysen auf DW Einfache Realisierung: Replikations- oder Sichtmechanismen von DBMS Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 22 Data-Warehouse-Architektur Komponenten Nabe- und Speiche -Architektur Analyse Analyse Analyse Analyse Data Marts Data Warehouse Laden Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 23 Data-Warehouse-Architektur Komponenten Abhängige Data Marts: Extraktbildung Strukturelle Extrakte Beschränkung auf Teile des Schemas Bsp.: nur bestimmte Kennzahlen oder Dimensionen Inhaltliche Extrakte inhaltliche Beschränkung Bsp.: nur bestimmte Filialen oder das letzte Jahresergebnis Aggregierte Extrakte Verringerung der Granularität Bsp.: Beschränkung auf Monatsergebnisse Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 24 Uni Magdeburg, WS 2007/08 29

2 Data-Warehouse-Architektur Data-Warehouse-Architektur Unabhängige Data Marts Komponenten unabhängig voneinander entstandene kleine Data Warehouses (z.b. von einzelnen Organisationen) nachträgliche Integration und Transformation Probleme: unterschiedliche Analysesichten (Data Mart, globales Data Warehouse) Konsistenz der Analysen aufgrund zusätzlicher Transformation Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 25 Data-Warehouse-Architektur Unabhängige Data Marts Komponenten Analyse Analyse Analyse Analyse Data Warehouse Transformation Data Marts Laden Laden Laden Laden Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 26 Analysewerkzeuge Data-Warehouse-Architektur Komponenten engl. Business Intelligence Tools Aufgabe: Präsentation der gesammelten Daten mit interaktiven Navigationsund Analysemöglichkeiten Analyse: einfache arithm. Operationen (z.b. Aggregation)... komplexe statistische Untersuchungen (z.b. Data Mining) Aufbereitung der Ergebnisse für Weiterverarbeitung bzw. Weitergabe Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 27 30 Uni Magdeburg, WS 2007/08

2 2 Data-Warehouse-Architektur Data-Warehouse-Architektur Komponenten Analysewerkzeuge: Darstellung Tabellen Pivot-Tabellen := Kreuztabellen Analyse durch Vertauschen von Zeilen und Spalten Veränderung von Tabellendimensionen Schachtelung von Tabellendimensionen Umsatz Bier Rotwein Summe 2005 Hessen 45 32 77 Thüringen 52 21 73 Summe 97 53 150 2006 Hessen 60 37 97 Thüringen 58 20 78 Summe 118 57 175 Graphiken Bildliche Darstellung großer Datenmengen Netz-, Punkt-, Oberflächengraphen Text und Multimedia-Elemente Ergänzung um Audio- oder Videodaten Einbeziehung von Dokumentenmanagementsystemen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 28 Data-Warehouse-Architektur Komponenten Analysewerkzeuge: Funktionalität Data Access Reporting Werkzeuge Lesen von Daten, Veränderung/Anreichung durch einfache arithmetische Operationen Präsentation in Berichten Ampelfunktionen : regelgebundene Formatierung Basis: SQL Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 29 Data-Warehouse-Architektur Komponenten Analysewerkzeuge: Beispiel [Cognos, 2006] Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 30 Uni Magdeburg, WS 2007/08 31

2 Data-Warehouse-Architektur Data-Warehouse-Architektur Komponenten Analysewerkzeuge: Funktionalität OLAP Interaktive Datenanalyse, Klassifikationsnavigation Berichte mit verdichteten Werten (Kennzahlen) Navigationsoperationen (Drill Down, Roll Up, Drill Across) Gruppierungs- und Berechnungsfunktionen (statistisch, betriebswirtschaftlich) Validierung von Hypothesen, Plausibilitätsprüfung Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 31 Data-Warehouse-Architektur Komponenten Analysewerkzeuge: Beispiel [Cognos, 2006] Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 32 Data-Warehouse-Architektur Komponenten Analysewerkzeuge: Funktionalität Data Mining Aufdeckung bisher unbekannter Zusammenhänge (Muster, Regeln) Verfahren (u.a.): Klassifikation: Zuordnung der Daten zu vorgegebenen Klassen Assoziationsregeln Clusterbildung: Segmentierung, d.h. Daten bzgl. Ihrer Merkmalsausprägungen zu Gruppen zusammenfassen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 33 32 Uni Magdeburg, WS 2007/08

Data-Warehouse-Architektur Data Mining: Beispiele 2 2 Data-Warehouse-Architektur Komponenten All Kreditwürdigkeit (Gut/Schlecht): 3/4 Einkommen Schulden=Niedrig Kreditwürdigkeit: 3/1 Schulden=Hoch Kreditwürdigkeit: 0/3 Alter Ang.verhältnis= Selbständig Kreditwürdigkeit: 0/1 Ang.verhältnis= Angestellt Kreditwürdigkeit: 3/0 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 34 Arten von Analysen Data-Warehouse-Architektur Komponenten Komplexität Datenvisualisierung Data Mining CRM- Analysen Forecasting/ Budgeting Analytical- Reporting OLAP Standard- Reporting Ad-hoc- Reporting Charting Flexibilität Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 35 Data-Warehouse-Architektur Komponenten Analysewerkzeuge: Realisierung Standard Reporting: Reporting-Werkzeuge des klassischen Berichtswesens Berichtshefte: Graphische Entwicklungsumgebungen zur Erstellung von Präsentationen von Tabellen, Graphiken, etc. Ad-hoc Query & Reporting: Werkzeuge zur Erstellung und Präsentation von Berichten Verbergen von Datenbankanbindung und Anfragesprachen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 36 Uni Magdeburg, WS 2007/08 33

2 Data-Warehouse-Architektur Data-Warehouse-Architektur Komponenten Analysewerkzeuge: Realisierung Analyse-Clients: Werkzeuge zur mehrdimensionalen Analyse beinhalten Navigation, Manipulation (Berechnung), erweiterte Analysefunktionen und Präsentation Spreadsheet Add-Ins: Erweiterung von Tabellenkalkulationen für Datenanbindung und Navigation Entwicklungsumgebungen: Unterstützung der Entwicklung eigener Analyseanwendungen Bereitstellung von Operationen auf multidimensionalen Daten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 37 Repository Data-Warehouse-Architektur Komponenten Aufgabe: Speicherung der Metadaten des DW-Systems Metadaten: Informationen, die Aufbau, Wartung und Administration des DW-Systems vereinfachen und Informationsgewinnung ermöglichen Beispiele: Datenbankschemata, Zugriffsrechte, Prozessinformationen (Verarbeitungsschritte und Parameter), etc. Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 38 Data-Warehouse-Architektur Metadaten-Manager Komponenten Aufgaben: Steuerung der Metadatenverwaltung Zugriff, Anfrage, Navigation Versions- und Konfigurationsverwaltung Formen: allgemein einsetzbar: erweiterbares Basisschema werkzeugspezifisch: fester Teil von Werkzeugen häufig Integration von bzw. Austausch zwischen dezentralen Metadaten-Managementsystemen notwendig Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 39 34 Uni Magdeburg, WS 2007/08

2 Data-Warehouse-Architektur 2 Data-Warehouse-Architektur Komponenten Zusammenfassung Referenzarchitektur für Data-Warehouse-Systeme Prozess des Data Warehousing Rolle der Komponenten Data Marts als Extrakte des DW Analysewerkzeuge: Klassifikation und Beispiele Schallehn Data-Warehouse-Technologien Wintersemester 07/08 3 40 Teil IV Multidimensionales Datenmodell Uni Magdeburg, WS 2007/08 35

2 Data-Warehouse-Architektur 36 Uni Magdeburg, WS 2007/08

3 3 Multidimensionales Datenmodell 3.1 Grundbegriffe 3.2 Der Würfel 3.3 Operationen zur Datenanalyse 37

3 Multidimensionales Datenmodell Multidimensionales Datenmodell Multidimensionales Datenmodell 1 Grundbegriffe 2 Der Würfel 3 Operationen zur Datenanalyse Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 1 Grundbegriffe Multidimensionales Datenmodell Grundbegriffe Dimensionen Fakten / Kennzahlen Zeitraum Produkt Kategorie Artikel Kennzahl Umsatz Jahr Quartal Monat Filiale Region Stadt Bundesland Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 2 Motivation Multidimensionales Datenmodell Grundbegriffe Datenmodell ausgerichtet auf Unterstützung der Analyse Datenanalyse im Entscheidungsprozess Betriebswirtschaftliche Kennzahlen (Erlöse, Gewinne, Verluste, etc.) stehen im Mittelpunkt Betrachtung der Kennzahlen aus unterschiedlichen Perspektiven (zeitlich, regional, produktbezogen) Dimensionen Unterteilung der Auswertedimensionen möglich (Jahr, Quartal, Monat) Hierarchien oder Konsolidierungsebenen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 3 38 Uni Magdeburg, WS 2007/08

3 Multidimensionales Datenmodell Multidimensionales Datenmodell Verfügbare Informationen Grundbegriffe 3 Qualifizierend Repräsentiert durch Kategorienattribute Daten zur Nutzung als Navigationsraster ( Drill-Pfade ) Modelliert als Begriffshierarchien im Rahmen von Dimensionen Quantifizierend Bilden Gegenstand der Auswertung ( Summenattribute ) Zellen eines Würfels, mit Dimensionen als Kanten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 4 Dimensionen Multidimensionales Datenmodell Grundbegriffe Dimension: beschreibt mögliche Sicht auf die assoziierte Kennzahl endliche Menge von n (n 2) Dimensionselementen (Hierarchieobjekten), die eine semantische Beziehung aufweisen dienen der orthogonalen Strukturierung des Datenraums Beispiele: Produkt, Geographie, Zeit Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 5 Multidimensionales Datenmodell Hierarchien in Dimensionen Grundbegriffe Dimensionselemente: Knoten einer Klassifikationshierarchie Klassifikationsstufe beschreibt Verdichtungsgrad Darstellung von Dimensionen über Klassifikationsschema (Schema von Klassifikationshierarchien) Formen: einfache Hierarchien parallele Hierarchien Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 6 Uni Magdeburg, WS 2007/08 39

3 Multidimensionales Datenmodell Multidimensionales Datenmodell Einfache Hierarchien Grundbegriffe Höhere Hierarchieebene enthält die aggregierten Werte genau einer niedrigeren Hierarchiestufe Oberster Knoten: Top enthält Verdichtung auf einen einzelnen Wert der Dimension Top Top Produktkategorie Land Produktfamilie Stadt Produktgruppe Filiale Artikel Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 7 Multidimensionales Datenmodell Parallele Hierarchien Grundbegriffe Innerhalb einer Dimension sind mehrere unabhängige Arten der Gruppierung möglich Keine hierarchische Beziehung zwischen parallelen Zweigen Parallelhierarchie Pfad im Klassifikationsschema Konsolidierungspfad Top Jahr Quartal Woche Monat Tag Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 8 Multidimensionales Datenmodell Grundbegriffe Schema einer Dimension D Partiell geordnete Menge von Kategorienattributen ({D 1,..., D n, Top D }; ) Generisches maximales Element Top D Funktionale Abhängigkeit Top D wird von allen Attributen funktional bestimmt: i, 1 i n : D i Top D Es gibt genau ein D i, das alle anderen Kategorieattribute bestimmt Gibt feinste Granularität einer Dimension vor i, 1 i n, j, 1 j n, i j : D i D j Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 9 40 Uni Magdeburg, WS 2007/08

3 Multidimensionales Datenmodell Kategorienattribute Multidimensionales Datenmodell Grundbegriffe 3 Inhaltliche Verfeinerung durch unterschiedliche Rollen: Primärattribut Kategorienattribut, das alle anderen Attribute einer Dimension bestimmt Definiert maximale Feinheit Beispiel: Auftrag Klassifikationsattribut Element der Menge, die mehrstufige Kategorisierung (Klassifikationshierarchie) bilden Beispiel: Kunde, Nation, Region Dimensionales Attribut Element der Menge der Attribute, die vom Primärattribut oder einem Klassifikationsattribut bestimmt werden und nur Top D bestimmen Beispiel: Adresse, Telefon Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 10 Multidimensionales Datenmodell Grundbegriffe Struktur einer Dimension: Beispiel Klassifikationsattribute Top Region Dimensionale Attribute Nation Kunde Adresse Telefon Status Bestellpreis Auftrag Primärattribut Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 11 Kennzahlen Multidimensionales Datenmodell Grundbegriffe Kennzahlen / Fakten (engl. facts): (verdichtete) numerische Messgrößen Beschreiben betriebswirtschaftliche Sachverhalte Fakt: Basiskennzahl Kennzahl: aus Fakten konstruiert (abgeleitete Kennzahl) Durch Anwendung arithmetischer Operationen Beispiele: Umsatz, Gewinn, Verlust, Deckungsbeitrag Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 12 Uni Magdeburg, WS 2007/08 41

3 Multidimensionales Datenmodell Fakt: Schema Multidimensionales Datenmodell Grundbegriffe Schema wird durch mehrere Bestandteile spezifiziert Granularität G = {G 1,..., G k } G ist Teilmenge aller Kategorienattribute aller im Schema existierenden Dimensionsschemata DS 1,..., DS n i, 1 i k, j, 1 j n : G i DS j i, 1 i k, j, 1 j k, i j : G i G j (keine funktionalen Abhängigkeit zwischen Kategorienattributen einer Granularität) Detailliertheitsgrad der Fakten Summationstyp SumTyp Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 13 Kennzahl Multidimensionales Datenmodell Grundbegriffe Kennzahl M ist definiert durch Granularität G Berechnungsvorschrift f () über Fakten Summationstyp SumTyp Berechnung über nichtleerer Teilmenge der im Schema existierenden Fakten M = (G, f (F 1,..., F k ), SumTyp) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 14 Multidimensionales Datenmodell Kennzahl: Bildung von f() Grundbegriffe Skalarfunktionen +,,, /, mod Beispiel: Umsatzsteueranteil = Menge Preis Steuersatz Aggregatfunktionen Funktion H() zur Verdichtung eines Datenbestandes, indem aus n Einzelwerten ein Aggregatwert ermittelt wird H : 2 dom(x1) dom(xn) dom(y) SUM(), AVG(), MIN(), MAX(), COUNT() Ordnungsbasierte Funktionen Definition von Kennzahlen auf Basis zuvor definierter Ordnungen Bsp.: Kumulation, TOP(n) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 15 42 Uni Magdeburg, WS 2007/08

3 Multidimensionales Datenmodell Summationstyps Multidimensionales Datenmodell Grundbegriffe 3 Zuweisung eines Summationstyps charakterisiert erlaubte Aggregationsoperationen FLOW Beliebig aggregierbar Beispiel: Bestellmenge eines Artikels pro Tag STOCK Beliebig aggregierbar mit Ausnahme temporaler Dimension Beispiele: Lagerbestand, Einwohnerzahl pro Stadt VALUE PER UNIT(VPU) Aktuelle Zustände, die nicht summierbar sind Zulässig nur: MIN(), MAX(), AVG() Beispiele: Wechselkurs, Steuersatz Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 16 Summierbarkeit Multidimensionales Datenmodell Grundbegriffe FLOW STOCK VPU Aggregation über temporale Dimension? nein ja MIN/MAX + + + SUM + + AVG + + + COUNT + + + Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 17 Multidimensionales Datenmodell Weitere Eigenschaften Grundbegriffe Disjunktheit Konkreter Wert einer Kennzahl geht exakt einmal in Ergebnis ein Bsp.: Studierende im Grundstudium Studierende 2004 2005 2006 Gesamt Informatik 15 17 13 28 BWL 10 15 11 21 Gesamt 25 32 24 49 Anzahl der Informatik-Studenten (bei 2-jährigem Grundstudium)? Anzahl der Studierenden insgesamt (bei Doppelstudium)? Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 18 Uni Magdeburg, WS 2007/08 43

3 Multidimensionales Datenmodell Multidimensionales Datenmodell Weitere Eigenschaften /2 Grundbegriffe Vollständigkeit Kennzahlen auf höherer Aggregationsebene lassen sich komplett aus Werten tieferer Stufen berechnen Restaurants 2005 2006 Halle 45 46 Magdeburg 52 50 Sonstige 20 22 Gesamt 117 118 Sonstige = Landgasthöfe im Umland Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 19 Der Würfel Multidimensionales Datenmodell Der Würfel Würfel (engl. cube, eigentlich Quader): Grundlage der multidimensionalen Analyse Kanten Dimensionen Zellen ein oder mehrere Kennzahlen (als Funktion der Dimensionen) Anzahl der Dimensionen Dimensionalität Visualisierung 2 Dimensionen: Tabelle 3 Dimensionen: Würfel > 3 Dimensionen: Multidimensionale Domänenstruktur Schema C eines Würfels Menge der Dimensionen(-schemata) DS Menge der Kennzahlen M C = (DS, M) = ({D 1,..., D n }, {M 1,..., M m }) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 20 Orthogonalität Multidimensionales Datenmodell Der Würfel In multidimensionalen Schemata gilt Orthogonalität, d.h. Keine funktionalen Abhängigkeiten zwischen Attributen unterschiedlicher Dimensionen i, 1 i n, j, 1 j n, i j k, l : D i.d k D j.d l Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 21 44 Uni Magdeburg, WS 2007/08

3 Multidimensionales Datenmodell Multidimensionales Datenmodell Der Würfel Multidimensionaler Datenwürfel 3 Zeitraum Produkt Kategorie Artikel Kennzahl Umsatz Jahr Quartal Monat Filiale Region Stadt Bundesland Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 22 Multidimensionales Datenmodell Operationen zur Datenanalyse Operationen zur Datenanalyse OLAP-Operationen auf multidimensionalen Datenstrukturen Standardoperationen Pivotierung Roll-Up, Drill-Down Drill-Across Slice, Dice Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 23 Multidimensionales Datenmodell Pivotierung / Rotation Operationen zur Datenanalyse Drehen des Würfels durch Vertauschen der Dimensionen Analyse der Daten aus verschiedenen Perspektiven Produkt Summe Rotwein Bier 2005 Zeitraum Summe 2006 2005 Bier 2006 Summe Rotwein Summe Zeitraum Hessen Thüringen Summe Region Produkt Hessen Thüringen Summe Region Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 24 Uni Magdeburg, WS 2007/08 45

3 Multidimensionales Datenmodell Multidimensionales Datenmodell Roll-Up, Drill-Down, Drill-Across Operationen zur Datenanalyse Roll-Up: Erzeugen neuer Informationen durch Aggregierung der Daten entlang des Konsolidierungspfades Dimensionalität bleibt erhalten Beispiel: Tag Monat Quartal Jahr Drill-Down: komplementär zu Roll-Up Navigation von aggregierten Daten zu Detail-Daten entlang der Klassifikationshierarchie Drill-Across: Wechsel von einem Würfel zu einem anderen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 25 Multidimensionales Datenmodell Roll-Up und Drill-Down Operationen zur Datenanalyse Produkt Drill Down Produkt Summe Rotwein Bier 2005 Roll Up Summe Rotwein Bier Q1 2006 Summe 2005 Q2 Q3 Zeitraum Hessen Thüringen Summe Region 2006 Q4... Summe Zeitraum Hessen Thüringen Summe Region Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 26 Slice und Dice Multidimensionales Datenmodell Operationen zur Datenanalyse Erzeugen individueller Sichten Slice: Herausschneiden von Scheiben aus dem Würfel Verringerung der Dimensionalität Beispiel: alle Werte des aktuellen Jahres entspricht der relationalen Projektion Dice: Herausschneiden einen Teilwürfels Erhaltung der Dimensionalität, Veränderung der Hierarchieobjekte Beispiel: die Werte bestimmter Produkte oder Regionen entspricht der relationalen Selektion Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 27 46 Uni Magdeburg, WS 2007/08

3 Multidimensionales Datenmodell Multidimensionales Datenmodell Operationen zur Datenanalyse 3 Slice Produkt Produkt Summe Summe Rotwein Rotwein Bier Bier 2005 2005 2006 2006 Summe Summe Zeitraum Hessen Thüringen Summe Region Zeitraum Hessen Thüringen Summe Region Schallehn Data-Warehouse-Technologien Wintersemester 07/08 4 28 Uni Magdeburg, WS 2007/08 47

3 Multidimensionales Datenmodell 48 Uni Magdeburg, WS 2007/08

4 Modellierungsansätze 4 4.1 Konzeptuelle Modellierung 4.2 ME/R 4.3 ADAPT 4.4 Graphbasier te Modellierungsansätze 4.5 Umsetzung des multidimensionalen Datenmodells 4.6 Relationale Speicherung 4.7 Darstellung von Klassifikationshierarchien 49

4 Modellierungsansätze Teil V Modellierungsansätze Modellierungsansätze Modellierungsansätze 1 Konzeptuelle Modellierung 2 ME/R 3 ADAPT 4 Graphbasierte Modellierungsansätze 5 Umsetzung des multidimensionalen Datenmodells 6 Relationale Speicherung 7 Darstellung von Klassifikationshierarchien Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 1 Modellierungsansätze Konzeptuelle Modellierung Konzeptuelle Modellierung Konzeptuelle Modellierung: formale Beschreibung des Fachproblems und der im Anwendungsbereich benötigten Informationsstrukturen Probleme konventioneller Entwurfstechniken (ER, UML): Unzureichende Semantik für multidimensionales Datenmodell hier: Verzicht auf universelle Anwendbarkeit, stattdessen Konzentration auf Analyse Beispiel: Klassifikationsstufe, Fakt Entity? Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 2 50 Uni Magdeburg, WS 2007/08

4 Modellierungsansätze ME/R-Modell Modellierungsansätze ME/R Multidimensional Entity/Relationship [Sapia et. al. (LNCS 1552)] Erweiterung des klassischen ER-Modells Entity-Menge Dimension Level (Klassifikationsstufe) keine explizite Modellierung von Dimensionen n-äre Beziehungsmenge Fact Kennzahlen als Attribute der Beziehung Binäre Beziehungsmenge Classification bzw. Roll-Up (Verbindung von Klassifikationsstufen) definiert gerichteten, nicht-zyklischen Graphen 4 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 3 ME/R: Notationen Modellierungsansätze ME/R Ebene Faktenbeziehung Klassifikationsstufe Faktenname Klassifikationsbeziehung Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 4 ME/R: Beispiel Modellierungsansätze ME/R Verkäufe Umsatz Produktgruppe Artikel Verkauf Filiale Stadt Tag Produktkategorie Bundesland Woche Monat Quartal Jahr Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 5 Uni Magdeburg, WS 2007/08 51

4 Modellierungsansätze ADAPT Modellierungsansätze ADAPT Application Design for Analytical Processing Technologies (Bulos) neue Entwicklung für multidimensionale Datenmodellierung Beschreibung sämtlicher Metadaten-Objekte Unterstützung von Berechnungsvorschriften teilweise Werkzeugunterstützung (CASE, Visio, etc.) keine formale Grundlage Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 6 ADAPT: Elemente Modellierungsansätze ADAPT Hypercube: multidimensionale Datenstruktur enthält nur eine Kennzahl Assoziationen zu beliebig vielen Dimensionen Dimension: beschreibt Dimension bestehend aus Hierarchiestufen, Dimensionselementen, Attributen Hierarchie: Eindeutiger Konsolidierungspfad Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 7 ADAPT Modellierungsansätze ADAPT Verkäufe Zeit Geographie Produkt Zeit Geographie Produkt { } Jahr { } Jahr { } Bundesland Standardhierarchie Wochenhierarchie Standardhierarchie Standardhierarchie { } Produktkategorie { } Quartal { } Woche { } Stadt { } Produktgruppe { } Monat { } Filiale { } Artikel { } Tag Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 8 52 Uni Magdeburg, WS 2007/08

4 Modellierungsansätze ADAPT Modellierungsansätze ADAPT 4 Hypercube ƒ() Berechnungsformel Dimension 1 Dimension 2 Hierarchie Dimension { } Hierarchiestufe Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 9 Modellierungsansätze Graphbasierte Modellierungsansätze Graphbasierte Modellierungsansätze Idee: Beschreibung konzeptioneller Schemata in Form von Graphen Ausgangspunkt: statistische Tabelle mit Kopfzeile und seitlicher Gliederung, teilweise Summenbildung über Zeilen und Spalten Repräsentation der kategorisierenden Daten sowie der Attributbeziehungen durch gerichteten, azyklischen Graphen Navigationshilfe für Benutzer Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 10 Graphstruktur Modellierungsansätze Graphbasierte Modellierungsansätze Kanten: Beziehungen der Attribute Knoten: unterschiedliche Semantik (in Abhängigkeit von konkreter Notation) Basistypen: Kategorien- (Cluster) Knoten (C) Repräsentiert Gruppierung einzelner Elemente gemäß Kategorienhierarchie Kreuzprodukt-Knoten (X) Aufspannen eines mehrdimensionalen Adressierungsraumes mit Hilfe der Kategorienattribute über C-Knoten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 11 Uni Magdeburg, WS 2007/08 53

4 Modellierungsansätze Modellierungsansätze Graphbasierte Modellierungsansätze Beispiel für Graphbasierte Modellierung männl. 2004 2005 2006 weibl. 2004 2005 2006 Lehrer Sekr. Ing. Grund- Real- Chef- Sekr. Bauschule schule Sekr. Ing. X X C Berufsgruppe Geschlecht Jahr Lehrer Sekr. Ing. C C C C C männl. weibl. 2004 2005 2006... Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 12 Zuordnungsregeln Modellierungsansätze Graphbasierte Modellierungsansätze Funktionale Abhängigkeit Wird direkt durch Kante zwischen beiden C-Knoten repräsentiert C Berufsgruppe Berufsgruppe [0,*] [0,1] Beruf C Beruf N:M-Beziehung Wird indirekt durch Einführung eines X-Knotens repräsentiert X Geschlecht [0,*] [0,*] Jahr C Geschlecht C Jahr Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 13 Weitere Knotentypen Modellierungsansätze Graphbasierte Modellierungsansätze Terminale Knoten (t n -Knoten) Repräsentation eines der möglichen Werte aus dem Wertebereich des übergeordneten Kategorieattributes Beispiel: männlich, weiblich für Geschlecht Summenknoten (S-Knoten) Explizite Spezifikation des quantitativen Teils eines Objektgraphen (Mehrfachverwendung von Graphen) Beispiel: mittleres Einkommen, Anteil am Gesamteinkommen zu X-Knoten Topic-Knoten (T-Knoten) Repräsentation einer Menge statistischer Objekte in gemeinsamen Auswertungskontext Dekomposition statistischer Sachverhalte Logische Verbindung von S-Knoten logische Sichten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 14 54 Uni Magdeburg, WS 2007/08

4 Modellierungsansätze Modellierungsansätze Modellierung der Abstraktion Graphbasierte Modellierungsansätze Aggregation (A-Knoten) Zusammenfassung logisch zusammengehöriger Einzelfakten Beispiel: (Straße, Stadt, Land) zu Wohnort, (PersNr, Name, Wohnort, Beruf) zu Erwerbstätige Generalisierung (G-Knoten) Definition einer übergeordneten Klasse abstrakter Objekte Beispiel: Erwerbstätige, Erwerbslose zu Erwerbsperson 4 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 15 Modellierungsansätze Graphbasierte Modellierungsansätze Zusammenfassung konzeptuelle Modellierung Weitere Notationen: Erweiterungen von ER: Dimensional Fact Modeling Erweiterungen von UML: muml (multidimensional UML) Graphbasiert: SUBJECT, GRASS, STORM, ADaS,... Zur Zeit kein Standard verfügbar Graphbasierte Ansätze zwar mächtig + flexibel, aber kaum verbreitet Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 16 Modellierungsansätze Umsetzung des multidimensionalen Datenmodells Umsetzung des multidimensionalen Datenmodells Multidimensionale Sicht Modellierung der Daten Anfrageformulierung Interne Verwaltung der Daten erfordert Umsetzung auf relationale Strukturen (Tabellen) ROLAP (relationales OLAP) Verfügbarkeit, Reife der Systeme multidimensionale Strukturen (direkte Speicherung) MOLAP (multidimensionales OLAP) Wegfall der Transformation Aspekte Speicherung Anfrageformulierung bzw. -ausführung Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 17 Uni Magdeburg, WS 2007/08 55

4 Modellierungsansätze Modellierungsansätze Relationale Speicherung Relationale Speicherung Vermeidung des Verlustes anwendungs-bezogener Semantik (aus dem multidimensionalen Modell, z.b. Klassifikationshierarchien) effiziente Übersetzung multidimensionaler Anfragen effiziente Verarbeitung der übersetzten Anfragen Einfache Pflege der entstandenen Relationen (z.b. Laden neuer Daten) Berücksichtigung der Anfragecharakteristik und des Datenvolumens von Analyseanwendungen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 18 Modellierungsansätze Relationale Speicherung Relationale Umsetzung: Faktentabelle Ausgangspunkt: Umsetzung des Datenwürfels ohne Klassifikationshierarchien Dimensionen, Kennzahlen Spalten der Relation Zelle Tupel 18.02.2006 19.02.2006 Zeitraum Produkt Rotwein Produkt Filiale Tag Verk. Rotwein Magdeburg 18.02.06 145 Weißbier Magdeburg 18.02.06 267 Rotwein Ilmenau 18.02.06 70... Magdeburg Ilmenau Region Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 19 Snowflake-Schema Modellierungsansätze Relationale Speicherung Abbildung von Klassifikationen: eigene Tabelle für jede Klassifikationsstufe (z.b. Artikel, Produktgruppe, etc.) Tabelle enthält ID für Klassifikationsknoten beschreibendes Attribut (z.b. Marke, Hersteller, Bezeichnung) Fremdschlüssel der direkt übergeordneten Klassifikationsstufe Faktentabelle enthält (neben Kenngrößen): Fremdschlüssel der jeweils niedrigsten Klassifikationsstufe Fremdschlüssel bilden zusammengesetzte Primärschlüssel für Faktentabelle Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 20 56 Uni Magdeburg, WS 2007/08

4 Modellierungsansätze Snowflake: Beispiel Modellierungsansätze Relationale Speicherung 4 Produktkategorie Jahr 1 Jahr_ID Bezeichnung Monat * Monat_ID Bezeichnung 1 Tag Zeit_ID 1 * Datum Monat_ID * Woche_ID 1 Woche Woche_ID Bezeichnung Verkauf Produkt_ID * Zeit_ID Geo_ID Verkäufe Umsatz Kategorie_ID Bezeichnung 1 Produktgruppe Gruppe_ID 1 Bezeichnung Produkt Kategorie_ID 1 Produkt_ID * Bezeichnung Gruppe_ID * Filiale * Geo_ID * 1 Bezeichnung Stadt_ID Stadt 1 Stadt_ID * Bezeichnung Land_ID * Bundesland Land_ID Bezeichnung 1 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 21 Star-Schema Modellierungsansätze Relationale Speicherung Snowflake-Schema ist normalisiert: Vermeidung von Update-Anomalien aber: erfordert Join über mehrere Tabellen! Star-Schema: Denormalisierung der zu einer Dimension gehörenden Tabellen für jede Dimension genau eine Dimensionstabelle Redundanzen in der Dimensionstabelle für schnellere Anfragebearbeitung Beispiel: Artikel, Produkt, Produktgruppe etc. als Spalten in einer Tabelle Produkt Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 22 Star-Schema: Muster Modellierungsansätze Relationale Speicherung 1. Dimensionstabelle Dim1_Schlüssel Dim1_Attribute 3. Dimensionstabelle Dim3_Schlüssel Dim3_Attribute Faktentabelle Dim1_Schlüssel Dim2_Schlüssel Dim3_Schlüssel Dim4_Schlüssel... Fakt1 Fakt2 Fakt4... 2. Dimensionstabelle Dim2_Schlüssel Dim2_Attribute 4. Dimensionstabelle Dim4_Schlüssel Dim4_Attribute Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 23 Uni Magdeburg, WS 2007/08 57

4 Modellierungsansätze Modellierungsansätze Star-Schema: Beispiel Relationale Speicherung Zeit Zeit_ID Tag Woche Monat Quartal Jahr 1 * * Verkauf Produkt_ID Zeit_ID Geo_ID Verkäufe Umsatz * 1 Produkt Produkt_ID Artikel Produktgruppe Pruduktkategorie Geographie Geo_ID Filiale Stadt Bundesland 1 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 24 Star-Schema formal Modellierungsansätze Relationale Speicherung Multidimensionales Schema mit n Dimensionen Dimensionstabellen D 1,..., D n der Form D i (PA i, A i,1,..., A i,ki ) Faktentabelle F(PA 1,..., PA n, f 1,..., f m ) Jeder Teil des kompositen Primärschlüssels der Faktentabelle ist Fremdschlüssel zum Primärschlüsselattribut der korrespondierenden Dimension Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 25 Modellierungsansätze CREATE DIMENSION in Oracle Relationale Speicherung Fremdschlüsselbedingungen in SQL ausdrückbar Aber: funktionale Beziehungen zwischen Attributen innerhalb einer Dimension nicht spezifizierbar Oracle-Erweiterung: CREATE DIMENSION informative Zusicherung Korrektheit wird vom DBS nicht überprüft Nutzung beim Query Rewriting über materialisierten Sichten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 26 58 Uni Magdeburg, WS 2007/08

4 Modellierungsansätze Modellierungsansätze Beispiel CREATE DIMENSION Relationale Speicherung 4 CREATE DIMENSION ORDER_DIM LEVEL ORDER IS ORDERS.ORDERKEY LEVEL CUSTOMER IS ORDERS.CUSTOMERKEY LEVEL NATION IS ORDERS.NATIONKEY LEVEL REGION IS ORDERS.REGIONKEY HIERARCHY ORDER_HIERARCHY ( ORDER CHILD OF CUSTOMER CHILD OF NATION CHILD OF REGION ) ATTRIBUTE ORDER DETERMINES (O_STATUS, O_DATE,...) ATTRIBUTE CUSTOMER DETERMINES (C_NAME, C_ADDRESS,...); Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 27 Schlüsselworte Modellierungsansätze Relationale Speicherung LEVEL definiert Klassifikationsstufen HIERARCHY Festlegung der Abhängigkeiten der Klassifikationsstufen ATTRIBUTE... DETERMINES Definiert Abhängigkeit zwischen Klassifikationsattribut und dimensionalen Attributen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 28 Modellierungsansätze Relationale Speicherung Snowflake mit CREATE DIMENSION Produktgruppe Gruppe_ID Bezeichnung Verkauf Artikel_ID Tag_ID Filial_ID Verkäufe Umsatz Produkt Artikel_ID Bezeichnung Gruppe_ID CREATE DIMENSION s_pg LEVEL Produkt IS (Produkt.Artikel_ID) LEVEL Produktgruppe IS (Produktgruppe.Gruppe_ID) HIERARCHY pg_rollup ( Produkt CHILD OF Produktgruppe) JOIN KEY (Produkt.Gruppe_ID) REFERENCES Produktgruppe.Gruppe_ID Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 29 Uni Magdeburg, WS 2007/08 59

4 Modellierungsansätze Modellierungsansätze Star mit CREATE DIMENSION Relationale Speicherung Zeit Tag_ID Tag Monat_ID Monat Jahr_ID Jahr Verkauf Artikel_ID Tag_ID Filial_ID Verkäufe Umsatz CREATE DIMENSION s_time LEVEL Tag IS (Zeit.Tag_ID) LEVEL Monat IS (Zeit.Monat_ID) LEVEL Jahr IS (Zeit.Jahr_ID) HIERARCHY pg_rollup ( Tag CHILD OF Monat CHILD OF Jahr) ATTRIBUTE Tag_ID DETERMINES (Tag) ATTRIBUTE Monat_ID DETERMINES (Monat) ATTRIBUTE Jahr_ID DETERMINES (Jahr) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 30 Modellierungsansätze Star versus Snowflake Relationale Speicherung Charakteristika von DW-Anwendungen typischerweise Einschränkungen in Anfragen auf höherer Granularitätsstufe (Join-Operationen) geringes Datenvolumen der Dimensionstabellen im Vergleich zu Faktentabellen seltene Änderungen an Klassifikationen (Gefahr von Update-Anomalien) Vorteile des Star-Schemas einfache Struktur (vereinfachte Anfrageformulierung) einfache und flexible Darstellung von Klassifikationshierarchien (Spalten in Dimensionstabellen) effiziente Anfrageverarbeitung innerhalb einer Dimension (keine Join-Operation notwendig) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 31 Modellierungsansätze Relationale Speicherung Annahmen für Kostenbetrachtungen D Dimensionen, je K Klassifikationsstufen plus Top Jeder Klassifikationsknoten hat 3 Kinder Level i = K: 1 = 3 0 Knoten (Top) Level i = K 1: 3 = 3 1 Knoten Level i = K 2: 9 = 3 2 Knoten... Level i = 0: Höchste Granularität, 3 K Knoten N D = i=0...k Knoten pro Dimension N D = 3 i Knoten pro Dimension i=0...k 2: Top 1: ProdGruppe 0: Produkt Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 32 M Fakten, gleichverteilt in Dimensionen Attribut: b Bytes; Knoten haben nur ID; f Faktattribute 60 Uni Magdeburg, WS 2007/08

4 Modellierungsansätze Modellierungsansätze Relationale Speicherung Volle Klassifikationshierarchie Zu jedem Knoten gibt es (gleich viele) Fakten 4 Level 2 Top Level 1 K1 K2 K3 Level 0 K1.1 K1.2 K1.3 K2.1 K2.2 K2.3 K3.1 K3.2 K3.3 Fakten......... Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 33 Modellierungsansätze Kosten Star vs. Snowflake Speicherplatz Snowflake: Relationale Speicherung ((D + f ) M) + D N D ) b D Anzahl Fremdschlüssel in Faktentabelle f Anzahl Faktenattribute D N D Ein Tupel pro Klassifikationsknoten Speicherplatz Star: ((D + f ) M) + D 3 K K) b D 3 K Ein Tupel pro Klassifikationsknoten Level 0 K Ein Attribut pro Klassifikationsstufe Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 34 Modellierungsansätze Code Star vs Snowflake I Relationale Speicherung Anfrage: Verkäufe der Produktgruppe Soft-Drink pro Filiale und Jahr Snowflake-Schema: SELECT F.Bezeichnung, J.Jahr, SUM(Verkäufe) FROM Verkauf V, Filiale F, Artikel A, Produktgruppe PG, Tag T, Monat M, Jahr J WHERE V.Artikel_ID = A.Artikel_ID AND A.Gruppe_ID = PG.Gruppe_ID AND PG.Bezeichnung = Soft-Drink AND V.Tag_ID = T.Tag_ID AND T.Monat_ID = M.Monat_ID AND M.Jahr_ID = J.Jahr_ID AND V.Filial_ID = F.Filial_ID GROUP BY F.Bezeichnung, J.Jahr Anzahl der Joins: 6 (steigt linear mit Anzahl der Aggregationspfade) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 35 Uni Magdeburg, WS 2007/08 61

4 Modellierungsansätze Modellierungsansätze Code Star vs Snowflake II Anfrage für Star-Schema: Relationale Speicherung SELECT G.Filiale, Z.Jahr, SUM(Verkäufe) FROM Verkauf V, Geographie G, Produkt P, Zeit Z WHERE V.Produkt_ID = P.Produkt_ID AND V.Zeit_ID = Z.Zeit_ID AND V.Geographie_ID = G.Geographie_ID AND P.Produktgruppe = Soft-Drink GROUP BY G.Filiale, Z.Jahr Anzahl der Joins: 3 (unabhängig von der Länge der Aggregationspfade) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 36 Mischformen Modellierungsansätze Relationale Speicherung Abbildung einzelner Dimensionen analog Snowflake-Schema oder Star-Schema Entscheidungskriterien: Änderungshäufigkeit der Dimensionen: Reduzierung des Pflegeaufwandes durch Normalisierung (Snowflake) Anzahl der Klassifikationsstufen einer Dimension: mehr Klassifikationsstufen größere Redundanz im Star-Schema Anzahl der Dimensionselemente: Einsparung durch Normalisierung bei vielen Elementen einer Dimension auf niedrigster Klassifikationsstufe Materialisierung von Aggregaten: Performance-Verbesserung durch Normalisierung bei materialisierten Aggregaten für eine Klassifikationsstufe Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 37 Galaxie Modellierungsansätze Relationale Speicherung Star-Schema eine Faktentabelle mehrere Kennzahlen nur möglich bei gleichen Dimensionen Galaxie mehrere Faktentabellen teilweise mit gleichen Dimensionstabellen verknüpft auch: Multi-Faktentabellen-Schema, Multi-Cube, Hyper-Cube Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 38 62 Uni Magdeburg, WS 2007/08

4 Modellierungsansätze Fact Constellation Modellierungsansätze Relationale Speicherung Speicherung vorberechneter Aggregate in Faktentabelle Beispiel: Umsatz für Region Unterscheidung in Dimensionstabelle über spezielle Attribute (Bsp.: Stufe ) Alternative: Auslagerung in eigene Faktentabelle Fact-Constellation-Schema (Spezialfall eines Galaxie-Schemas) 4 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 39 Modellierungsansätze Darstellung von Klassifikationshierarchien Darstellung von Klassifikationshierarchien Horizontal: Modellierung der Stufen der Klassifikationshierarchie als Spalten der denormalisierten Dimensionstabelle Vorteil: Einschränkungen auf höherer Granularität ohne Join Nachteile: Duplikateliminierung beim Anfragen bestimmter Stufen (Bsp.: Produktgruppe innerhalb einer Kategorie) Schemaänderung beim Hinzufügen neuer Stufen Produkt_ID Artikel Produktgruppe Produktkategorie 1234 Immer Ultra Hygiene Kosmetik 1235 Putzi Hygiene Kosmetik 2345 Rohrfrei Reiniger Haushalt Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 40 Modellierungsansätze Darstellung von Klassifikationshierarchien Darstellung von Klassifikationshierarchien Vertikal (rekursiv): normalisierte Dimensionstabelle mit Attributen Dimensions_ID: Schlüssel für Faktentabelle Eltern_ID: Attributwert der Dimensions-ID der nächsthöheren Stufe Vorteile: Einfache Änderung am Klassifikationsschema Einfache Behandlung vorberechneter Aggregate Nachteil: Self-Join für Anfragen einzelner Stufen (Bsp.: Produktgruppe innerhalb einer Kategorie) Dimensions_ID Immer Ultra Hygiene Putzi Eltern_ID Hygiene Kosmetik Hygiene Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 41 Uni Magdeburg, WS 2007/08 63

4 Modellierungsansätze Modellierungsansätze Darstellung von Klassifikationshierarchien Darstellung von Klassifikationshierarchien Kombiniert: Verbindung beider Strategien Repräsentation der Klassifikationsstufen als Spalten (jedoch generische Bezeichnung) Speicherung der Knoten aller höheren Stufen als Tupel Zusätzliches Attribut Stufe Angabe der bezeichneten Klassifikationsstufe Dimensions_ID Stufe1_ID Stufe2_ID Stufe Immer Ultra Hygiene Kosmetik 0 Putzi Hygiene Kosmetik 0 Hygiene Kosmetik NULL 1 Kosmetik NULL NULL 2 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 42 Modellierungsansätze Darstellung von Klassifikationshierarchien Vermeidung von Semantikverlusten Semantikverlust bei relationaler Abbildung: Unterscheidung zwischen Kennzahl und Dimension (Attribute der Faktentabelle) Attribute von Dimensionstabellen (beschreibend, Aufbau der Hierarchie) Aufbau der Dimensionen (Drill-Pfade) Ausweg: Erweiterung des Systemkatalogs um Metadaten für multidimensionale Anwendungen Beispiel: CREATE DIMENSION, HIERARCHY in Oracle Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 43 Modellierungsansätze Darstellung von Klassifikationshierarchien Probleme der relationalen Umsetzung Transformation multidimensionaler Anfragen in relationale Repräsentation notwendig komplexe Anfragen Einsatz komplexer Anfragewerkzeuge notwendig (OLAP-Werkzeuge) Semantikverlust daher: direkte multidimensionale Speicherung? Schallehn Data-Warehouse-Technologien Wintersemester 07/08 5 44 64 Uni Magdeburg, WS 2007/08

5 5 Extraktion, Transformation, Laden 5.1 ETL-Prozess 5.2 Extraktion von Daten aus Quellen 5.3 Differentielle Snapshots 5.4 Laden von Daten 5.5 Transformationsaufgaben 65

5 Extraktion, Transformation, Laden Teil VI Extraktion, Transformation, Laden Extraktion, Transformation, Laden Extraktion, Transformation, Laden 1 ETL-Prozess 2 Extraktion von Daten aus Quellen 3 Differentielle Snapshots 4 Laden von Daten 5 Transformationsaufgaben Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 1 Extraktion, Transformation, Laden ETL-Prozess ETL: Überblick Zwei Schritte Von den Quellen zur Staging Area Extraktion von Daten aus den Quellen Erstellen / Erkennen von differentiellen Updates Erstellen von LOAD Files Von der Staging Area zur Basisdatenbank Data Cleaning und Tagging Erstellung integrierter Datenbestände Kontinuierliche Datenversorgung des DWH Sicherung der DWH Konsistenz bzgl. Datenquellen Effiziente Methoden essentiell Sperrzeiten minimieren Rigorose Prüfungen essentiell Datenqualität sichern Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 2 66 Uni Magdeburg, WS 2007/08

5 Extraktion, Transformation, Laden ETL-Prozess Extraktion, Transformation, Laden ETL-Prozess Häufig aufwändigster Teil des Data Warehousing Vielzahl von Quellen Heterogenität Datenvolumen Komplexität der Transformation Schema- und Instanzintegration Datenbereinigung Kaum durchgängige Methoden- und Systemunterstützung, jedoch Vielzahl von Werkzeugen vorhanden 5 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 3 ETL-Prozess Extraktion, Transformation, Laden ETL-Prozess Extraktion: Selektion eines Ausschnitts der Daten aus den Quellen und Bereitstellung für Transformation Transformation: Anpassung der Daten an vorgegebene Schemaund Qualitätsanforderungen Laden: physisches Einbringen der Daten aus dem Arbeitsbereich (staging area) in das Data Warehouse (einschl. eventuell notwendiger Aggregationen) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 4 Extraktion, Transformation, Laden ETL-Prozess Definitionsphase des ETL-Prozesses OLTP Analysebedarf Datenmodell und Konventionen Legacy Quelldatenanalyse Auswahl der Objekte Erstellen der Transformation Erstellen der ETL-Routinen Abbildung Schlüsseltransf. Normalisierung ETL-Jobs Externe Quellen Dokumentation, operativer Datenkatalog Regelwerk für Datenqualität Metadaten- Management Repository Transformationsregeln Erfolgskriterien für Laderoutinen DWH Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 5 Uni Magdeburg, WS 2007/08 67

5 Extraktion, Transformation, Laden Extraktion Extraktion, Transformation, Laden Extraktion von Daten aus Quellen Aufgabe Regelmäßige Extraktion von Änderungsdaten aus Quellen Datenversorgung des DWH Unterscheidung Zeitpunkt der Extraktion Art der extrahierten Daten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 6 Zeitpunkt Extraktion, Transformation, Laden Extraktion von Daten aus Quellen Synchrone Benachrichtigung Quelle propagiert jede Änderung Asynchrone Benachrichtigung Periodisch Quellen erzeugen regelmäßig Extrakte DWH fragt regelmäßig Datenbestand ab Ereignisgesteuert DWH erfragt Änderungen vor jedem Jahresabschluss Quelle informiert alle X Änderungen Anfragegesteuert DWH erfragt Änderungen vor jedem tatsächlichen Zugriff Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 7 Art der Daten Extraktion, Transformation, Laden Extraktion von Daten aus Quellen Snapshots: Quelle liefert immer kompletten Datenbestand Neuer Lieferantenkatalog, neue Preisliste, etc. Änderungen erkennen Historie korrekt abbilden Logs: Quelle liefert jede Änderung Transaktionslogs, Anwendungsgesteuertes Logging Änderungen effizient einspielen Netto-Logs: Quelle liefert Netto-Änderungen Katalogupdates, Snapshot-Deltas Keine vollständige Historie möglich Änderungen effizient einspielbar Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 8 68 Uni Magdeburg, WS 2007/08

5 Extraktion, Transformation, Laden Extraktion, Transformation, Laden Zeitpunkt der Datenversorgung Extraktion von Daten aus Quellen Quelle... Technik Aktualität DWH erstellt periodisch Files propagiert jede Änderung erstellt vor Extrakte auf zung Benut- Anfrage anwendungsgesteuert Belastung DWH Belastung Quellen Batchläufe, Viele Systeme (Mainframe) Je nach Frequenz nichtniedrig online zugreifbar Niedrig Snapshots Trigger, Widerspricht Repli-DWH-Ideekation MaximalMehrbelastung Hoch der Quellen Sehr hoch Sehr schwierig Maximal Medium Medium Technisch bisher nicht effizient durchführbar anwendungsgesteuert je nach Frequenz je nach Frequenz je nach Frequenz 5 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 9 Extraktion, Transformation, Laden Extraktion aus Legacy-Systemen Extraktion von Daten aus Quellen Sehr anwendungsabhängig Zugriff auf Host-Systeme ohne Online-Zugriff Zugriff über BATCH, Reportwriter, Scheduling Daten in Non-Standard-Datenbanken ohne APIs Programmierung in PL-1, COBOL, Natural, IMS,... Unklare Semantik, Doppelbelegung von Feldern, sprechende Schlüssel, fehlende Dokumentation, Herrschaftswissen bei wenigen aber: Kommerzielle Tools vorhanden Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 10 Extraktion, Transformation, Laden Differentielle Snapshots Differential Snapshot Problem [LGM96] Viele Quellen liefern immer den vollen Datenbestand Molekularbiologische Datenbanken Kundenlisten, Angestelltenlisten Produktkataloge Problem Ständiges Einspielen aller Daten ineffizient Duplikate müssen erkannt werden Algorithmen um Delta-Files zu berechnen Schwierig bei sehr großen Files Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 11 Uni Magdeburg, WS 2007/08 69

5 Extraktion, Transformation, Laden Szenario Extraktion, Transformation, Laden Differentielle Snapshots Quellen liefern Snapshots als File F Ungeordnete Menge von Records (K, A 1,..., A n ) Gegeben: F 1, F 2, mit f 1 = F 1, f 2 = F 2 Berechne kleinste Menge O = {INS, DEL, UPD} mit O(F 1 ) = F 2 O nicht eindeutig! O 1 = {(INS(X)),, (DEL(X))} O 2 = {,, } Differential Snapshot Problem Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 12 Szenario Extraktion, Transformation, Laden Differentielle Snapshots F 1 F 2 K4, t, r,... K102, p, q,... K104, k, k,... K202, a, a,... K3, t, r,... K102, p, q,... K103, t, h,... K104, k, k,... K202, b, b,... Differential Snapshot Algorithmus INS K3 DEL K4 UPD K202:... UPD K38:... DWH Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 13 Annahmen Extraktion, Transformation, Laden Differentielle Snapshots Berechnung einer konsekutiven Folge von DS Files am 1.1.2006, 1.2.2006, 1.3.2006,... Kostenmodell Alle Operationen im Hauptspeicher sind umsonst IO zählt mit Anzahl Records: sequenzielles Lesen Keine Beachtung von Blockgrößen Hauptspeichergröße: M (Records) Filegrößen F x = f x (Records) Files i.d.r. wesentlich größer als Hauptspeicher Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 14 70 Uni Magdeburg, WS 2007/08

5 Extraktion, Transformation, Laden Extraktion, Transformation, Laden DS naive Nested Loop Differentielle Snapshots Berechnung von O Record R aus F 1 lesen F 2 sequenziell lesen und mit R vergleichen R nicht in F 2 O := O (DEL(R)) R in F 2 O := O (UPD(R)) / ignorieren Problem: INS wird nicht gefunden Hilfsstruktur notwendig Array mit IDs aus F 2 (on-the-fly generieren) R jeweils markieren, abschließender Lauf für INS Anzahl IO: f 1 f 2 + δ Verbesserungen? Suche in F 2 abbrechen, wenn R gefunden jeweils Partition mit Größe M von F 1 laden: f1 M f 2 5 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 15 Extraktion, Transformation, Laden DS small kleine Files Differentielle Snapshots Annahme: Hauptspeicher M > f 1 (oder f 2 ) Berechnung von O F 1 komplett lesen F 2 sequenziell lesen (S) S F 1: O := O (UPD(S)) / ignorieren S F 1: O := O (INS(S)) S in F 1 markieren (Bitarray) Abschließend: Records R F 1 ohne Markierung: O := O (DEL(R)) Anzahl IO: f 1 + f 2 + δ Verbesserungen F 1 im Hauptspeicher sortieren schnellerer Lookup Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 16 Extraktion, Transformation, Laden DS sort Sort-Merge Differentielle Snapshots Allgemeiner Fall: M f 1 und M f 2 Sortieren auf Sekundärspeicher F in Partitionen P i mit P i = M lesen P i im Hauptspeicher sortieren und schreiben in F i ( Runs ) Alle F i mischen Sortiertes F 2 aufheben für nächstes DS Pro DS muss nur F 2 sortiert werden Berechnung von O Sortierte F 1 und F 2 öffnen Mischen (paralleles Lesen mit Skipping) Anzahl IO: f 1 + 5 f 2 + δ Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 17 Uni Magdeburg, WS 2007/08 71

5 Extraktion, Transformation, Laden Extraktion, Transformation, Laden DS sort2 Verschränkung Differentielle Snapshots Sortiertes F 1 vorhanden Berechnung von O F 2 in Partitionen P i mit P i = M lesen P i im Hauptspeicher sortieren und schreiben in F2 i Alle F2 i mischen und gleichzeitig mit F 1 vergleichen Anzahl IO: f 1 + 4 f 2 + δ Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 18 Extraktion, Transformation, Laden Differentielle Snapshots DS hash Partitioned Hash Berechnung von O F 2 in Partitionen P i mit P i = M/2 hashen Hashfunktion muss garantieren: P i P j =, i j Partitionen sind Äquivalenzklassen bzgl. der Hashfunktion F 1 liegt noch partitioniert vor F 1 und F 2 wurden mit derselben Hashfunktion partitioniert jeweils P 1,i und P 2,i parallel lesen und mischen Anzahl IO: f 1 + 3 f 2 + δ Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 19 Extraktion, Transformation, Laden Differentielle Snapshots Warum nicht einfach... UNIX diff? diff erwartet / beachtet Umgebung der Records Hier: Records sind völlig ungeordnet in der Datenbank mit SQL? Dreimaliges Lesen jeder Relation notwendig INSERT INTO delta SELECT UPD,...FROM F1, F2 WHERE F1.K = F2.K AND K1.W <> F2.W UNION SELECT INS,...FROM F2 WHERE NOT EXISTS (...) UNION SELECT DEL,...FROM F1 WHERE NOT EXISTS (...) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 20 72 Uni Magdeburg, WS 2007/08

5 Extraktion, Transformation, Laden Extraktion, Transformation, Laden Vergleich Eigenschaften Differentielle Snapshots IO Bemerkungen DS naiv f 1 f 2 außer Konkurrenz, extra Datenstruktur notwendig DS small f 1 + f 2 nur für kleine Dateien DS sort2 f 1 + 4 f 2 DS hash f 1 + 3 f 2 überlappungsfreie Hashfunktion, Partitionsgröße schwierig zu schätzen, Verteilungsannahmen (Sampling) 5 Erweiterung von DS hash für schlechtere Hashfunktionen bekannt Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 21 Weitere DS Verfahren Extraktion, Transformation, Laden Differentielle Snapshots Anzahl Partitionen / Runs größer als File-Handles des OS Hierarchische externe Sortierverfahren Kompression: Files komprimieren Größere Partitionen / Runs Größere Chance, Vergleich im Hauptspeicher durchzuführen In Realität schneller Windows Algorithmus Annahme: Files haben eine unscharfe Ordnung Mischen mit Sliding Window über beide Files Liefert u.u. redundante INS-DEL Paare Anzahl IO: f 1 + f 2 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 22 DS mit Zeitstempel Extraktion, Transformation, Laden Differentielle Snapshots Annahme: Records sind (K, A 1,..., A n, T) T: Zeitstempel der letzten Änderung Erstellen von O Festhalten von T 0 : Letztes Update F 2 sequenziell lesen Entries mit T > T 0 interessant Aber: INS oder UPD? Weiteres Problem: DEL wird nicht gefunden Zeitstempel erspart nur Attributvergleich Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 23 Uni Magdeburg, WS 2007/08 73

5 Extraktion, Transformation, Laden Laden Extraktion, Transformation, Laden Laden von Daten Aufgabe Effizientes Einbringen von externen Daten in DWH Kritischer Punkt Ladevorgänge blockieren unter Umständen die komplette DB (Schreibsperre auf Faktentabelle) Aspekte Trigger Integritätsbedingungen Indexaktualisierung Update oder Insert? Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 24 Satzbasiert Extraktion, Transformation, Laden Laden von Daten Benutzung von Standard-Schnittstellen: PRO*SQL, JDBC, ODBC,... Arbeitet im normalen Transaktionskontext Trigger, Indexe und Constraints bleiben aktiv Manuelle Deaktivierung möglich Keine großräumigen Sperren Sperren können durch COMMIT verringert werden Nicht bei Oracle: Leseoperationen werden nie gesperrt (MVCC) Benutzung von Prepared Statements Teilweise proprietäre Erweiterungen (Arrays) verfügbar Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 25 BULK Load Extraktion, Transformation, Laden Laden von Daten DB-spezifische Erweiterungen zum Laden großer Datenmengen Läuft (meist) in speziellem Context Oracle: DIRECTPATH option Komplette Tabellensperre Keine Beachtung von Triggern oder Constraints Indexe werden erst nach Abschluss aktualisiert Kein transaktionaler Kontext kein Logging Checkpoints zum Wiederaufsetzen Praxis: BULK Uploads Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 26 74 Uni Magdeburg, WS 2007/08

5 5 Extraktion, Transformation, Laden Extraktion, Transformation, Laden Beispiel: ORACLE sqlldr Laden von Daten [Quelle: Oracle 9.2 Dokumentation] Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 27 Extraktion, Transformation, Laden Beispiel: ORACLE sqlldr /2 Laden von Daten Control-File LOAD DATA INFILE book.dat REPLACE INTO TABLE book ( book_title POSITION(1) CHAR(35), book_price POSITION(37) ZONED(4,2), book_pages POSITION(42) INTEGER, book_id "book_seq.nextval" ) Datenfile Oracle Essentials 3495 355 SQL*Plus: The Definitive Guide 3995 502 Oracle PL/SQL Programming 4495 987 Oracle8 Design Tips 1495 115 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 28 Extraktion, Transformation, Laden BULK Load Beispiel Laden von Daten Vielfältige Optionen Behandlung von Ausnahmen (Badfile) Datentransformationen Checkpoints Optionale Felder Konditionales Laden in mehrere Tabellen Konditionales Laden von Records REPLACE oder APPEND Paralleles Laden... Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 29 Uni Magdeburg, WS 2007/08 75

5 Extraktion, Transformation, Laden Direct Path Load Extraktion, Transformation, Laden Laden von Daten [Quelle: Oracle 9.2 Dokumentation] Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 30 Extraktion, Transformation, Laden Multi-Table-Insert in Oracle Laden von Daten Einfügen in mehrere Tabellen bzw. mehrfach (z.b. für Pivoting) INSERT ALL INTO Quartal_Verkauf VALUES (Produkt_Nr, Jahr /Q1, Umsatz_Q1) INTO Quartal_Verkauf VALUES (Produkt_Nr, Jahr /Q2, Umsatz_Q2) INTO Quartal_Verkauf VALUES (Produkt_Nr, Jahr /Q3, Umsatz_Q3) INTO Quartal_Verkauf VALUES (Produkt_Nr, Jahr /Q4, Umsatz_Q4) SELECT... FROM... Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 31 Extraktion, Transformation, Laden Multi-Table-Insert in Oracle /2 bedingtes Einfügen Laden von Daten INSERT ALL WHEN ProdNr IN (SELECT ProdNr FROM Werbe_Aktionen) INTO Aktions_Verkauf VALUES (ProdNr, Quartal, Umsatz) WHEN Umsatz > 1000 INTO Top_Produkte VALUES (ProdNr) SELECT... FROM... Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 32 76 Uni Magdeburg, WS 2007/08

5 Extraktion, Transformation, Laden Merge in Oracle Extraktion, Transformation, Laden Laden von Daten Merge: Versuch eines Inserts, bei Fehler (durch Verletzung einer Schlüsselbedingung) Update MERGE INTO Kunden K USING Neukunden N ON (N.Name = K.Name AND N.GebDatum = K.GebDatum) WHEN MATCHED THEN UPDATE SET K.Name = N.Name, K.Vorname=N.Vorname, K.GebDatum=N.GebDatum WHEN NOT MATCHED THEN INSERT VALUES (MySeq.NextValue, N.Name, N.Vorname, N.GebDatum) 5 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 33 Extraktion, Transformation, Laden Laden von Daten Technik: Quelle Arbeitsbereich BasisDB Quelle 1: RDBMS Quelle 2: IMS Rel. Schema Q1 Rel. Schema Q2 Cube, Intgriertes Schema BULK Load nur für ersten Schritt Zweiter Schritt INSERT INTO...SELECT... Logging ausschaltbar Parallelisierbar Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 34 Extraktion, Transformation, Laden Laden von Daten Aufgabe: Quelle Arbeitsbereich BasisDB Was macht man wo und wann? Keine definierte Aufgabenteilung vorhanden Art des Zugriffs verfügbare Datenbasen verfügbare Datensätze Programmiersprache Quelle Arbeitsbereich Satzorientiert Eine Quelle (Updatefile) Quellabhängig: Alle, alle Änderungen, Deltas Skripte: Perl, AWK,... oder 3GL Arbeitsbereich Basis-DB Mengenorientiert Viele Quellen Zusätzlich Basis-DB verfügbar SQL, PL/SQL Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 35 Uni Magdeburg, WS 2007/08 77

5 Extraktion, Transformation, Laden Transformation Extraktion, Transformation, Laden Transformationsaufgaben Problem Daten im Arbeitsbereich nicht im Format der Basisdatenbank Struktur der Daten unterschiedlich Arbeitsbereich: Quellnahes Schema Basis-DB: Multidimensionales Schema Strukturelle Heterogenität Aspekte Datentransformation Schematransformation Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 36 Extraktion, Transformation, Laden Daten- und Schemaheterogenität Transformationsaufgaben Hauptdatenquelle: OLTP-Systeme Sekundärquellen: Dokumente in firmeninternen Altarchiven Dokumente im Internet via WWW, FTP unstrukturiert: Zugriff über Suchmaschinen,... semistrukturiert: Zugriff über Suchmaschinen, Mediatoren, Wrapper als XML-Dokumente o.ä. Grundproblem: Heterogenität der Quellen Lösungen im nächsten Kapitel Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 37 Extraktion, Transformation, Laden Aspekte der Heterogenität Transformationsaufgaben verschiedene Datenmodelle bedingt durch autonome Entscheidung über Anschaffung von Systemen in den Unternehmensbereichen verschiedene und verschieden mächtige Modellierungskonstrukte, d.h. Anwendungssemantik in unterschiedlichem Ausmaß erfassbar Abbildung zwischen Datenmodellen nicht eindeutig Beispiel: Relationenmodell vs. objektorientierte Modellierung vs. XML Name Vorname Kunde PLZ Kunde Name Vorname PLZ... Kunde Name PLZ Vorname Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 38 78 Uni Magdeburg, WS 2007/08

5 Extraktion, Transformation, Laden Extraktion, Transformation, Laden Aspekte der Heterogenität /2 Transformationsaufgaben unterschiedliche Modellierungen für gleiche Sachverhalte der Realwelt bedingt durch Entwurfautonomie selbst im gleichen Datenmodell verschiedene Modellierungen möglich, z.b. durch unterschiedliche Modellierungsperspektiven der DB-Designer 5 Kunde Name Vorname Geschlecht... Kunde Name Vorname... Mann Frau Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 39 Extraktion, Transformation, Laden Aspekte der Heterogenität /3 Transformationsaufgaben unterschiedliche Repräsentation der Daten Unterschiedliche Datentypen möglich unterschiedliche Umfang der unterstützten Datentypen unterschiedliche interne Darstellung der Daten auch unterschiedliche Werte eines Datentyps zur Repräsentation derselben Information Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 40 ETL vs. ELT Extraktion, Transformation, Laden Transformationsaufgaben ELT = Extract-Load-Transform Variante des ETL-Prozesses, bei dem die Daten erst nach dem Laden transformiert werden Ziel: Transformation mit SQL-Anweisungen in der Zieldatenbank Verzicht auf spezielle ETL-Engines Schallehn Data-Warehouse-Technologien Wintersemester 07/08 6 41 Uni Magdeburg, WS 2007/08 79

5 Extraktion, Transformation, Laden Teil VII Datenaufbereitung und -bereinigung 80 Uni Magdeburg, WS 2007/08

6 Datenaufbereitung und -bereinigung 6.1 Schematische Heterogenität 6.2 Datenfehler 6 6.3 Datenaufbereitung als Prozess 6.4 Profiling 6.5 Datenbereinigung 6.6 Duplikaterkennung 81

6 Datenaufbereitung und -bereinigung Datenaufbereitung und -bereinigung Datenaufbereitung und -bereinigung 1 Schematische Heterogenität 2 Datenfehler 3 Datenaufbereitung als Prozess 4 Profiling 5 Datenbereinigung 6 Duplikaterkennung Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 1 Datenaufbereitung und -bereinigung Konflikt-Klassifikation Schematische Heterogenität Qualitätsprobleme Single-Source-Probleme Multi-Source-Probleme Schemaebene Instanzebene Schemaebene Instanzebene Fehlen von Integritätsbedingungen, schlechter Entwurf,... - Eindeutigkeit - Ref. Integrität -... Eingabefehler - Schreibfehler - Redundanzen / Duplikate - Widersprüchliche Werte -... Heterogenität von Datenmodell, Schema - Strukturelle Konflikte - Namenskonflikte -... Überlappung, Widersprüche, Inkonsistenzen - Repräsentation - Aggregationskonflikte - Zeitkonflikte -... [Rahm Do 2000] Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 2 Datenaufbereitung und -bereinigung Schematische Heterogenität Schematische Heterogenität Ursache: Entwurfsautonomie unterschiedliche Modellierung Unterschiedliche Normalisierung Was ist Relation, was Attribut, was Wert? Aufteilung von Daten in Tabellen Redundanzen aus Quellsystemen Schlüssel In SQL nicht gut unterstützt INSERT hat nur eine Zieltabelle SQL greift auf Daten zu, nicht auf Schemaelemente Erfordert meist Programmierung Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 3 82 Uni Magdeburg, WS 2007/08

6 Datenaufbereitung und -bereinigung Schema Mapping Datenaufbereitung und -bereinigung Schematische Heterogenität Datentransformation zwischen heterogenen Schemata Altes aber immer wiederkehrendes Problem Üblicherweise schreiben Experten komplexe Anfragen oder Programme Zeitintensiv Experte für die Domäne, für Schemata und für Anfrage XML macht alles noch schwieriger: XML Schema, XQuery Idee: Automatisierung Gegeben: Zwei Schemata und ein high-level Mapping dazwischen Gesucht: Anfrage zur Datentransformation 6 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 4 Datenaufbereitung und -bereinigung Schematische Heterogenität Warum ist Schema Mapping schwierig? Generierung der richtigen Anfrage unter Berücksichtigung des Quell und Ziel-Schemas, des Mappings und der Nutzer-Intention: Semantik! Garantie, dass die transformierten Daten dem Zielschema entsprechen Flach oder geschachtelt Integritätsbedingungen Effiziente Datentransformation Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 5 Datenaufbereitung und -bereinigung Schematische Heterogenität Schema Mapping: Normalisiert vs. Denormalisiert 1:1-Assoziationen werden unterschiedlich dargestellt durch Vorkommen im gleichen Tupel durch Fremdschlüsselbeziehung Article artpk title pages Author artfk name Publication pubid title date author SELECT artpk AS pubid, title, NULL AS date, NULL AS author FROM Article UNION SELECT NULL AS pubid, NULL AS title, NULL AS date, name AS author FROM Author Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 6 Uni Magdeburg, WS 2007/08 83

6 Datenaufbereitung und -bereinigung Datenaufbereitung und -bereinigung Schematische Heterogenität Schema Mapping: Normalisiert vs. Denormalisiert /2 Article artpk title pages Author artfk name Publication pubid title date author SELECT artpk AS pubid, title, NULL AS date, name AS author FROM Article, Author WHERE artpk = artfk Nur eine von vier möglichen Interpretationen! Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 7 Datenaufbereitung und -bereinigung Schematische Heterogenität Schema Mapping: Normalisiert vs. Denormalisiert /3 Publication title date author Article artpk title pages Author artpk name erfordert Generierung von Schlüsseln: Skolemfunktion SK, die einen bzgl. der Eingabe eindeutigen Wert liefert (z.b. Konkatenation aller Werte) Article := SELECT SK(title) AS artpk, title, NULL AS pages FROM Publication Author := SELECT SK(title) AS artfk, author AS name FROM Publication Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 8 Datenaufbereitung und -bereinigung Schematische Heterogenität Schema Mapping: Geschachtelt vs. Flach 1:1-Assoziationen werden unterschiedlich dargestellt also geschachtelte Elemente durch Fremdschlüsselbeziehung Article artpk title pages Author name Publication pubid title author Publication title date author Article title Author name Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 9 84 Uni Magdeburg, WS 2007/08

6 Datenaufbereitung und -bereinigung Schwierigkeiten Datenaufbereitung und -bereinigung Schematische Heterogenität Beispiel: Quelle(ID, Name, Strasse, PLZ, Umsatz) Zielschema #1 Kunde(ID, Name, Umsatz) Adresse(ID, Strasse, PLZ) erfordert 2 Durchläufe der Quelltabelle INSERT INTO Kunde... SELECT... INSERT INTO Adresse... SELECT... 6 Zielschema #2 PremKunde(ID, Name, Umsatz) NormKunde(ID, Name, Umsatz) erfordert 2 Durchläufe der Quelltabelle INSERT INTO PremKunde... SELECT... WHERE Umsatz>=X INSERT INTO NormKunde... SELECT... WHERE Umsatz<X Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 10 Schwierigkeiten /2 Datenaufbereitung und -bereinigung Schematische Heterogenität Schema P1(Id, Name, Geschlecht) P2(Id, Name, M, W) P31(Id, Name), P32(Id, Name) P1 P2 INSERT INTO P2 (id, name, T, F )... SELECT... INSERT INTO P2 (id, name, F, T )... SELECT... P3 P1 INSERT INTO P1(id, name, weibl. )... SELECT... FROM P31 INSERT INTO P1(id, name, männl. )... SELECT... FROM P32 Anzahl Werte muss feststehen; Neues Geschlecht Alle Anfragen ändern Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 11 Datenfehler Datenaufbereitung und -bereinigung Datenfehler Repräsentation Eindeutigkeit Widersprüche Ref. Integrität KUNDE KNr Name Geb.datum Alter Geschl. Telefon PLZ 123 Pren, Leo 18.2.80 37 m 999-9999 98693 123 Ann Joy 32.3.70 34 f 345-6788 5555 124 Leo Pren 18.2.80 24 m 678-9861 98693 ADRESSE PLZ 98693 98684 98786 Schreibfehler Ort Ilmenau Fehlende Werte Illmenau BRD Falsche Werte Duplikate Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 12 Uni Magdeburg, WS 2007/08 85

6 Datenaufbereitung und -bereinigung Datenaufbereitung und -bereinigung Datenfehler Vermeidung von Datenfehlern Vermeidung von durch falschen Datentypen Datentypdefinition, domain-constraints falschen Werte check fehlenden Werten not null ungültigen Referenzen foreign key Duplikaten unique, primary key Inkonsistenzen Transaktionen veralteten Daten Replikation, materialisierte Sichten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 13 Datenaufbereitung und -bereinigung Datenfehler Warum dennoch Datenfehler? Fehlen von Metadaten, Integritätsbedingungen,... fremde Daten Daten aus Nicht-DB -Quellen Eingabefehler, Unkenntnis,... Multi-Source-Probleme, Heterogenitäten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 14 Datenaufbereitung und -bereinigung Phasen der Datenaufbereitung Datenaufbereitung als Prozess Diskretisierung Nutzung Transformation Dimensionsreduktion / Sampling Aggregation / Feature- Extraktion Sammlung/ Auswahl DQ-Probleme identifizieren/ quantifizieren Fehlerarten/ -ursachen erkennen Data Profiling Fehlerkorrektur Duplikaterkennung und Merging Standardisierung/ Normalisierung Data Cleaning Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 15 86 Uni Magdeburg, WS 2007/08

6 Datenaufbereitung und -bereinigung Aufgaben Datenaufbereitung und -bereinigung Datenaufbereitung als Prozess Profiling Homogenisierung und Normalisierung Fehlende Daten / Werte Ausreißererkennung Record Linkage / Matching, Konfliktbehandlung Datenaufbereitung: Diskretisierung, Sampling,... 6 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 16 Profiling Datenaufbereitung und -bereinigung Profiling Analyse von Inhalt und Struktur einzelner Attribute Datentyp, Wertebereich, Verteilung und Varianz, Vorkommen von Nullwerten, Eindeutigkeit, Muster (z.b. dd/mm/yyyy) Analyse von Abhängigkeiten zwischen Attributen einer Relation unscharfe Schlüssel Funktionale Abhängigkeiten, potenzielle Primärschlüssel, unscharfe Abhängigkeiten Notwendigkeit: Keine expliziten Integritätsbedingungen spezifiziert Jedoch in Daten in den meisten Fällen erfüllt Analyse von Überlappungen zwischen Attributen verschiedener Relationen Redundanzen, Fremdschlüsselbeziehungen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 17 Profiling /2 Datenaufbereitung und -bereinigung Profiling Fehlende bzw. falsche Werte Ermittelte vs. Erwartete Kardinalität (z.b. Anzahl von Filialen, Geschlecht von Kunden) Anzahl der Nullwerte, Minimum / Maximum, Varianz Daten- bzw. Eingabefehler Sortierung und manuelle Prüfung Ähnlichkeitstest Duplikate Tupelanzahl vs. Attributkardinalität Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 18 Uni Magdeburg, WS 2007/08 87

6 Datenaufbereitung und -bereinigung Profiling mit SQL Datenaufbereitung und -bereinigung Profiling SQL-Anfragen für einfache Profiling-Aufgaben Schema, Datentypen: Anfragen an Schemakatalog Wertebereich select min(a), max(a), count(distinct A) from Tabelle Datenfehler, Defaultwerte select Ort, count(*) as Anz from Kunden group by Ort order by Anz Aufsteigend: Eingabefehler, z.b. Illmenau: 1, Ilmenau: 50 Absteigend: undokumentierte Default-Werte, z.b. AAA: 80 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 19 Data Cleaning Datenaufbereitung und -bereinigung Datenbereinigung Erkennen & Beseitigen von Inkonsistenzen, Widersprüchen und Fehlern in Daten mit dem Ziel der Qualitätsverbesserung Auch Cleansing oder Scrubbing Bis zu 80% des Aufwandes in DW-Projekten Cleaning im DW: Teil des ETL-Prozesses Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 20 Datenaufbereitung und -bereinigung Datenbereinigung Normalisierung und Standardisierung Datentypkonvertierung: varchar int Kodierungen: 1: Adr. unbekannt, 2: alte Adresse, 3: gültige Adresse, 4: Adr. bei Ehepartner,... Normalisierung: Abbildung in einheitliches Format Datum: 03/01/05 1. März 2005 Währung: $ e Zeichenketten in Großbuchstaben Zerlegung in Token: Date, Chris Date, Chris Diskretisierung numerischer Werte Domänenspezifische Transformationen Codd, Edgar Frank Edgar Frank Codd Str. Straße Adressen über Adressdatenbanken Branchenspezifische Produktbezeichnungen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 21 88 Uni Magdeburg, WS 2007/08

6 6 Datenaufbereitung und -bereinigung Datentransformation Datenaufbereitung und -bereinigung Datenbereinigung In SQL gut unterstützt Vielfältige Funktionen im Sprachstandard Stringfunktionen, Decodierung, Datumsumwandlung, Formeln, Systemvariable,... Funktionen in PL/SQL erstellen - in SQL verwenden Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 22 Beispiele Datenaufbereitung und -bereinigung Datenbereinigung Daten "Pause, Lilo" "Pause", "Lilo" "Prehn, Leo" "Prehn", "Leo" SQL INSERT INTO kunden (nachname, vorname) SELECT SubStr(name, 0, instr(name,, )-1), SubStr(name, instr(name,, )+1) FROM rawdata; Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 23 Beispiele /2 Datenaufbereitung und -bereinigung Datenbereinigung Daten "Arved", 11/22/2002 "Arved", 22.11.2002 "Bennett", 2/18/1999 "Bennett",18.02.1999 SQL INSERT INTO kunden( name, geburtsdatum) SELECT name, to_date (birthday, MM/DD/YYYY ) FROM rawdata; Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 24 Uni Magdeburg, WS 2007/08 89

6 Datenaufbereitung und -bereinigung Beispiele /3 Datenaufbereitung und -bereinigung Datenbereinigung Daten "Müller", M, "sehr gut" "Müller" 0 1 "Meier", w, "gut" "Meier" 1 2 SQL INSERT INTO schueler(name, geschlecht, klasse) SELECT name, decode (upper(sex), M, 0, 1), decode (grade, sehr gut, 1, gut, 2,...) FROM rawdata; Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 25 Datenaufbereitung und -bereinigung Datenbereinigung Normalisierung numerischer Daten Skalierung der Werte v eines Attributs A mit [min A, max A ] in vorgegebenen Bereich [min new, max new ], z.b. [0, 1] Min-Max-Normalisierung v = v min A max A min A (max new min new ) + min new Z-Score-Normalisierung: basierend auf Mittelwert und Standardabweichung v = v µ σ speziell wenn min A, max A nicht bekannt sind oder bei dominierenden Ausreißern Dezimalskalierung: Verschieben des Dezimalpunktes v = v 10 i mit i ist kleinster ganzzahliger Wert, sodass max( v ) < 1 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 26 Fehlende Werte Datenaufbereitung und -bereinigung Datenbereinigung Fehlen von Daten auf unterschiedlichen Ebenen Instanzebene: Werte, Datensätze, Teilrelationen,... Schemaebene: Attribute,... Problem speziell auf Instanzebene: Behandlung von Nullwerten: Unterscheidung fehlender Wert oder Defaultwert? Abschneiden von Werten Verzerrungen ( bias ) im Ergebnis, Fehler durch Nullwerte Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 27 90 Uni Magdeburg, WS 2007/08

6 Datenaufbereitung und -bereinigung Datenaufbereitung und -bereinigung Fehlende Werte: Erkennung Datenbereinigung Einfache Analysen: Anzahl der Nullwerte, Duplikate, Mittelwerte, Häufigkeiten Vergleich mit Erwartungswerten Für DW-Daten auch auf verschiedenen Aggregationsebenen Analyse der Ordnung der Datensätze Keine Verkaufszahlen vom 1.3.-4.3.? Keine Produkt im Preissegment > 20 e? Verstümmelte Daten, z.b. durch Abschneiden von Werten Einkäufe unter 1 e nicht berücksichtigt Einkäufe über 100 e als 100 e behandelt Erkennung Hinweise durch Analyse der Datenverteilung Meist jedoch Domänenwissen notwendig 6 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 28 Datenaufbereitung und -bereinigung Fehlende Werte: Behandlung Datenbereinigung unbiased estimators Wertschätzung ohne Änderung der Charakteristika der existierenden Daten (Mittelwert, Standardabweichung,... ) Beispiel: 1, 2, 3, _, 5 Mittelwert: 2.75 Standardabweichung: 4.659 Ausnutzung von Attributbeziehungen Bsp.: Hausgröße Einkommen Statistik-Techniken Lineare Regression: Einkommen = c Hausgröße Techniken für nichtlineare Zusammenhänge: Neuronale Netze,... Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 29 Datenaufbereitung und -bereinigung Ausreißererkennung Datenbereinigung Ausreißer: Wert der nicht in eine erwartete Messreihe passt Aspekte: Erkennung: Verteilung, Geometrie, Zeitreihe Interpretation: Mess- bzw. Datenfehler oder echtes Ereignis Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 30 Uni Magdeburg, WS 2007/08 91

6 Datenaufbereitung und -bereinigung Erkennung Datenaufbereitung und -bereinigung Datenbereinigung Modellbasiert: Ableitung einer Beziehung von Attributen lineare Regression Regeln: WENN Alter < 16 DANN Führerschein IS NULL Verteilungs- bzw. statistikbasiert: Annahme einer Verteilungsfunktion Geometrisch und distanzbasiert Peeling: Schichten im Datenraum mit wachsender Tiefe äußere Schichten enthalten Ausreißer Nicht praktikabel für höhere Dimensionsanzahl Distanzbasiert: Abstand zwischen Datenpunkten (metrische Distanzfunktion) Für Anwendungen ohne Standardverteilung Bei größerer Dimensionsanzahl Ausreißer in Zeitreihen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 31 Datenaufbereitung und -bereinigung Erkennung: Regression Datenbereinigung y = αx + β SELECT * FROM Data WHERE abs(:alpha * X + :beta - Y) < :threshold SELECT X, Y, abs(...) AS dist FROM Data ORDER BY dist LIMIT FIRST 95 PERCENT Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 32 Datenaufbereitung und -bereinigung Distanzbasierte Ausreißer Datenbereinigung Objekt o aus Datenmenge T ist Ausreißer DB(p, D), wenn mindestens ein Anteil p von T weiter als D von o entfernt ist [Knorr Ng 1998] Ausreißer: Objekte, die nicht genug Nachbarn besitzen p als Parameter zur Anpassung, falls Cluster von Ausreißern o D mind. p% Objekte Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 33 92 Uni Magdeburg, WS 2007/08

6 Datenaufbereitung und -bereinigung Datenaufbereitung und -bereinigung Datenbereinigung Distanzbasierte Ausreißer: Verfahren Indexbasierte Auswertung (R-Baum, kd(b)-baum) multidimensionaler Index zur Suche nach Nachbarn in Distanz D bei M erlaubten Nachbarn für Ausreißer: falls M + 1 Objekte in D kein Ausreißer Nested Loops ähnlich wie indexbasierte Auswertung, jedoch durch geschicktes Blocklesen 6 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 34 Datenaufbereitung und -bereinigung Datenbereinigung Distanzbasierte Ausreißer: Verfahren /2 Zellbasierte Technik: (k: Dimensionalität) Partitionierung des Datenraums in Zellen mit Kantenlänge D 2 mit k zwei umgebenden Schichten; zellenweiser Test Schicht 1: 1 Zelle dick, Schicht 2: k 1 Zellen dick pro Zelle: cell_count = Anzahl der Objekte cell+1layer_count = Anzahl der Objekte in Zelle und der 1 Schicht cell+2layer_count= Anzahl der Objekte in Zelle und Schicht 1 und 2 Ausreißer: Objekt o einer Zelle ist Ausreißer gdw. cell+1layer_count M; anderenfalls können alle Objekte der Zelle ignoriert werden (keine Ausreißer) cell+2layer_count M alle Objekte dieser Zelle sind Ausreißer cell+2layer_count > M einzelne Objekte können Ausreißer sein objektweiser Test Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 35 Datenaufbereitung und -bereinigung Duplikaterkennung Duplikaterkennung Begriff mit vielen Duplikaten Duplicate detection / de-duplication Record linkage Object identification / object consolidation Entity resolution / entity clustering Reference reconciliation / reference matching Householding / household matching Match / Fuzzy match / approximate match Merge/purge Hardening soft databases Identity uncertainty mixed and split citation problem Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 36 Uni Magdeburg, WS 2007/08 93

6 Datenaufbereitung und -bereinigung Record Linkage Datenaufbereitung und -bereinigung Duplikaterkennung Identifikation von semantisch äquivalenten Datensätzen, d.h. die das gleiche Realwelt-Objekt repräsentieren auch: Object Identification, Duplicate Elimination, Merge/Purge Merge: Erkennen von Duplikaten Purge: Auswahl /Berechnung des besten Vertreters pro Klasse KundenNr Name Adresse 3346 Just Vorfan Hafenstraße 12 3346 Justin Forfun Hafenstr. 12 5252 Lilo Pause Kuhweg 42 5268 Lisa Pause Kuhweg 42 Ann Joy Domplatz 2a Anne Scheu Domplatz 28 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 37 Datenaufbereitung und -bereinigung Record Linkage: Vergleiche Typische Vergleichsregeln Duplikaterkennung if ssn1 = ssn2 then match else if name1=name2 then if firstname1=firstname2 then if adr1=adr2 then match else unmatch else if adr1=adr2 then match_household else if adr1=adr2 then... Naiver Ansatz: Jeder-gegen-jeden O(n 2 ) Vergleiche Maximale Genauigkeit (je nach Regeln) Viel zu teuer Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 38 Datenaufbereitung und -bereinigung Record Linkage: Prinzip Duplikaterkennung Partitionierung des Suchraums R r, r, r,... 1 2 3 Matches (M) r,s 1 1 r,s 2 2 r 3,s 3 R x S S s 1, s 2, s 3,...... Vergleichsfunktion Non Matches (U) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 39 94 Uni Magdeburg, WS 2007/08

6 Datenaufbereitung und -bereinigung Partitionierung Datenaufbereitung und -bereinigung Duplikaterkennung Blockung Aufteilung des Suchraums in disjunkte Blöcke Duplikate nur innerhalb eines Blockes Sortierte Nachbarschaft [Hernandez Stolfo 1998] Sortierung der Daten anhand eines gewählten Schlüssels Vergleiche in einem gleitenden Fenster Multi-Pass-Technik Transitive Hülle über verschiedene Sortierungen 6 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 40 Datenaufbereitung und -bereinigung Sortierte Nachbarschaft Duplikaterkennung 1 Berechne einen Schlüssel pro Record Bsp: SSN + ersten 3 Zeichen von Name +... Beachtung typischer Fehler: 0-O, Soundex, Nachbartasten,... 2 Sortiere nach Schlüssel 3 Laufe Liste sequenziell ab 4 Vergleiche innerhalb eines Windows W, W = w Mit welchen Tupeln muss wirklich verglichen werden? Komplexität Schlüsselerzeugung: O(n), Sortieren: O(n log(n)); Vergleichen: O((n/w) (w 2 )) = O(n w); Gesamt: O(n log(n)) oder O(n w) w w Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 41 Datenaufbereitung und -bereinigung Duplikaterkennung Sortierte Nachbarschaft: Probleme Genauigkeit schlecht Sortierkriterium bevorzugt immer Attribute Sind erste Buchstaben wichtiger für Identität als letzte? Ist Nachname wichtiger als Hausnummer? Window vergrößern? Keine Hilfe Dominanz eines Attributes bleibt gleich, aber Laufzeit verschlechtert sich schnell Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 42 Uni Magdeburg, WS 2007/08 95

6 Datenaufbereitung und -bereinigung Datenaufbereitung und -bereinigung Multi-Pass-Technik Duplikaterkennung Sortieren nach mehreren Kriterien und Identifikation von Duplikaten Bildung der transitiven Hülle der Duplikate bis zu gegebener Länge A B C B C A 1. Lauf: A matches B 2. Lauf: B matches C Transitivität: A matches C Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 43 Datenaufbereitung und -bereinigung Vergleichsfunktionen Duplikaterkennung Vergleichsfunktionen für Felder (String A und B), u.a.: Editierdistanz: Anzahl der Editieroperationen (Einfügen, Löschen, Ändern) für Änderung von A in B q-grams: Vergleich der Mengen aller Teilstrings von A und B der Länge q Jaro-Distanz: Berücksichtigung von gemeinsamen Zeichen (innerhalb der halben Stringlänge) und transponierten Zeichen (an anderer Position) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 44 Datenaufbereitung und -bereinigung Duplikaterkennung Vergleichsfunktionen: Editierdistanz Editierdistanz (Levensthein-Distanz): Anzahl der Editieroperationen (Einfügen, Löschen, Ändern) für Änderung von A in B Beispiel: edit_distance( Qualität, Quantität ) = 2 update(3, n ) insert(4, t ) Anwendung: select P1.Name, P2.Name from Produkt P1, Produkt P2 where edit_distance(p1.name, P2.Name) <= 2 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 45 96 Uni Magdeburg, WS 2007/08

6 Datenaufbereitung und -bereinigung Datenaufbereitung und -bereinigung Vergleichsfunktionen: q-grams Duplikaterkennung q-grams: Menge aller Substrings der Länge q Qualität := { Q, _Qu, Qua, ual, ali, lit, itä, tät, ät_, t } Beobachtung: Strings mit kleiner Editierdistanz haben viele gemeinsame q-grams, d.h. für Editierdistanz = k mind. max( A, B ) 1 (k 1) q 6 gemeinsame q-grams Positionale q-grams: Ergänzung um Position im String Qualität := { (-1, Q), (0, _Qu), (1, Qua),... } Filterung für effizienten Vergleich: COUNT: Anzahl der gemeinsamen q-grams POSITION: Positionsunterschied zwischen korrespondierenden q-grams k LENGTH: Differenz der Stringlängen k Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 46 Datenaufbereitung und -bereinigung Duplikaterkennung Domänenspezifische Vergleichsfunktionen Vergleiche in Feldern mit spezieller Bedeutung (Namen, Codes, Adressen) Soundex: phonetische Kodierung, speziell für ähnlich klingende Namen ( Hilbert = Heilbpr ) Ausnutzung von Codes (TXL = Berlin-Tegel) Namenskonventionen Hawking, Stephen = Stephen Hawking Hauptstr. = Hauptstraße Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 47 Datenaufbereitung und -bereinigung Vergleich von Records Duplikaterkennung Basierend auf Ähnlichkeit der Felder Problem: Auswahl relevanter Felder Wichtung der Felder Ansätze Probabilistische Verfahren Nicht-Probabilistische Verfahren Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 48 Uni Magdeburg, WS 2007/08 97

6 Datenaufbereitung und -bereinigung Datenaufbereitung und -bereinigung Probabilistische Verfahren Duplikaterkennung Häufigkeit Non Match (U) Review Match (M) Cut off Gewicht Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 49 Datenaufbereitung und -bereinigung Probabilistische Verfahren /2 Vergleichsfunktion für Records Duplikaterkennung γ = (γ 1 (t R.A 1, t S.A 1 ), γ 2 (t R.A 2, t S.A 2 ),..., γ k (t R.A k, t S.A k )) Wahrscheinlichkeiten m(γ) = P(γ (t R, t S ) M) für Match u(γ) = P(γ (t R, t S ) U) für Non-Match Ableitung von m(γ) und u(γ) z.b. durch Voruntersuchung (z.b. EM-Algorithmus) Ablauf 1 Bestimmung der Einzelgewichte für Attribute 2 Berechnung des Gesamt-Scores 3 Entscheidung über Match (M) bzw. Non-Match (U) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 50 Datenaufbereitung und -bereinigung Duplikaterkennung Nicht-Probabilistische Verfahren Wissensbasierte Verfahren Funktionale Abhängigkeiten auf Instanzebene Matching-Regeln Data-Mining-Verfahren Clustering Entscheidungsbaumverfahren Distanzbasierte Verfahren Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 51 98 Uni Magdeburg, WS 2007/08

6 Datenaufbereitung und -bereinigung Datenaufbereitung und -bereinigung Regelbasiertes Matching Duplikaterkennung IntelliClean [Lee et al. 2000] Nutzung von Domänenwissen durch deklarative Regeln if A.Name = B.Name and field_similarity (A.Adresse, B.Adresse) then... 6 Regeltypen Duplicate identification rules: Bedingungen für Übereinstimmung mit Sicherheitsfaktor Merge/purge rules: Aktionen zum Verschmelzen Update rules: Manipulation von Feldern (z.b. bei leeren Feldern) Alert rules: Benachrichtigung bei notwendigem Review Regelauswertung durch Inferenz-Engine Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 52 Datenaufbereitung und -bereinigung Matching mit Hierarchien Duplikaterkennung Delphi [Ananthakrishna et al. 2002] Nutzung von Hierarchien in Dimensionstabellen Beispiel: Filiale Stadt Bundesland Land Filiale F1 Gewerbepark S1 F2 Markt S1 F3 Am Markt S3 F4 Anger S2 F5 Kaiserplatz S4 F6 Kaisercenter S3 Stadt S1 Ilmenau B1 S2 Erfurt B2 S3 Ilmenau B3 S4 Bregenz B4 S5 Bregenz B5 Bundesland B1 Thüringen L1 B2 Türingen L2 B3 Thüringen L1 B4 Voralberg L3 B5 Voralpberg L3 Land L1 L2 L3 BR Deutschland Deutschland Österreich Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 53 Datenaufbereitung und -bereinigung Matching mit Hierarchien /2 Duplikaterkennung Prinzip: Top-Down-Traversierung Vergleichsfunktionen: Textähnlichkeit, Co-occurence (Überlappung der Kindmengen, z.b. Städte im Bundesland) Oberste Hierarchieebene vergleichen Jeweils Kindrelation gruppieren in Gruppen G Vergleich der Tupel innerhalb einer Gruppe Filterfunktion für G: G G mit allen potenziellen Duplikaten Vergleich jedes Tupel aus G mit Tupeln aus G Dynamische Anpassung der Schwellwerte für Vergleichsfunktionen Beobachtung: kleiner Anteil an Duplikaten in Gruppe größerer Schwellwert Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 54 Uni Magdeburg, WS 2007/08 99

6 Datenaufbereitung und -bereinigung Datenaufbereitung und -bereinigung Duplikaterkennung Record Linkage vs. Differential Snapshots Differential-Snapshot-Problem Eindeutige Schlüssel vorhanden Vergleich zweier Records trivial Eindeutige Lösung möglich und verlangt Zahl IO-Zugriffe minimieren Record-Linkage-Problem Keine Schlüssel vorhanden Vergleich der Records verursacht dominierende Kosten Keine eindeutige Lösung möglich Zahl der Vergleiche minimieren bei hoher Trefferquote Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 55 Datenkonflikte Datenaufbereitung und -bereinigung Duplikaterkennung Datenkonflikt: Zwei Duplikate haben unterschiedliche Attributwerte für semantisch gleiches Attribut im Gegensatz zu Konflikten mit Integritätsbedingungen Datenkonflikte entstehen innerhalb eines Informationssystems (intra-source) und bei der Integration mehrerer Informationssysteme (inter-source) Voraussetzung: Duplikat, d.h. Identität schon festgestellt erfordert: Konfliktauflösung (Purging, Reconciliation) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 56 Datenaufbereitung und -bereinigung Datenkonflikte: Entstehung Duplikaterkennung Mangels Integritätsbedingungen oder Konsistenz-Checks Bei redundanten Schemata Bei Entstehung von Duplikaten Nicht korrekte Einträge Tippfehler, Übertragungsfehler Falsche Rechenergebnisse obsolete Einträge div. Aktualisierungszeitpunkte ausreichende Aktualität einer Quelle verzögerte Aktualisierung vergessene Aktualisierung Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 57 100 Uni Magdeburg, WS 2007/08

6 Datenaufbereitung und -bereinigung Datenaufbereitung und -bereinigung Datenkonflikte: Behebung Duplikaterkennung Referenztabellen für exakte Wertabbildung Z.B. Städte, Länder, Produktnamen, Codes... Ähnlichkeitsmaße bei Tippfehlern, Sprachvarianten (Meier, Mayer,...) Standardisieren und Transformieren Nutzung von Hintergrundwissen (Metadaten) bzgl. Konventionen (landestypische Schreibweisen) Ontologien, Thesauri, Wörterbücher zur Behandlung von Homonymen, Synonymen,... Bei der Integration Präferenzordnung über Datenquellen nach Aktualität, Trust (Vertrauen), Öffnungszeiten usw. Konfliktlösungsfunktionen 6 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 58 Datenaufbereitung und -bereinigung Zusammenfassung Duplikaterkennung Themen der Datenqualität machen typischerweise 80% des Aufwands von DWH Projekten aus! Langsame Anfragen sind ärgerlich Falsche Ergebnisse machen der DWH nutzlos Teil des Transformationsschrittes Schemaebene: Schema Mapping bzw. Schematransformation Instanzebene: Datenbereinigung Wichtig: Nachvollziehbarkeit von Cleaning Ad-hoc -Cleaning kann Qualität weiter verschlechtern reine Daten kaum erreichbar: Quantifizierung der Verbesserung notwendig Schallehn Data-Warehouse-Technologien Wintersemester 07/08 7 59 Teil VIII Speicherstrukturen für Data Warehouse Uni Magdeburg, WS 2007/08 101

6 Datenaufbereitung und -bereinigung 102 Uni Magdeburg, WS 2007/08

7 Speicherstrukturen für Data Warehouse 7.1 Relationale Speicherung 7.2 Multidimensionale Speicherung 7.3 Speicherungsvarianten 7 103

7 Speicherstrukturen für Data Warehouse Speicherstrukturen für Data Warehouse Speicherstrukturen für Data Warehouse 1 Relationale Speicherung 2 Multidimensionale Speicherung 3 Speicherungsvarianten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 1 Speicherstrukturen für Data Warehouse Relationale Speicherung Relationale Speicherung Umsetzung von Star- bzw. Snowflake-Schema auf Relationen verbreitetste Form der Speicherung von DW-Tabellen (Details: siehe VL Datenbank-Implementierungstechniken ) Besonderheiten sehr große Faktentabellen Beschleunigung der Zugriffe durch Partitionierung multidimensionale Zugriffe spezielle Cluster- und Indexstrukturen Update-Charakteristik (Anhängen von Daten) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 2 Partitionierung Speicherstrukturen für Data Warehouse Relationale Speicherung 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 der Anfrageund Aktualisierungscharakteristik ursprünglich für verteilte Datenbanken um Lastverteilung auf mehrere Knoten zu unterstützen Partitionierung umfasst eigentlich nur die logische Aufteilung von Relationen, die physische Verteilung ist dann Aufgabe der Allokation Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 3 104 Uni Magdeburg, WS 2007/08

7 Speicherstrukturen für Data Warehouse Speicherstrukturen für Data Warehouse Horizontale Partitionierung Relationale Speicherung Masterrelation R wird vollständig in mehrere paarweise disjunkte Teilrelationen R 1,..., R n aufgeteilt: R = R 1... R n ; R i R j = für i j verschiedene Formen der Aufteilung: Range-Partitionierung: jede Partition wird durch ein Selektionskriterium definiert, also R i := σ ϕ(r) mit ϕ Selektionsbedingung (range restriction) Hash-Partitionierung: Hashfunktion (angewendet auf das ganze Tupel oder einzelne Attribute) bestimmt, zu welcher Partition ein Tupel gehört Tupel mit gleichem Hashwert (oder Hashwerten in einem vorgegebenem Bereich) befinden sich in einer Partition 7 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 4 Speicherstrukturen für Data Warehouse Horizontale Partitionierung /2 Relationale Speicherung Masterrelation Partitionen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 5 Speicherstrukturen für Data Warehouse Vertikale Partitionierung Relationale Speicherung Verteilung der einzelnen Attribute (Spalten) auf Partitionen verteilt Partition entspricht einer Projektion auf die Masterrelation: R i := π attrlist (R) für Rekonstruierbarkeit der Masterrelation muss gemeinsames Attribut in jeweils zwei Partitionen existieren i.d.r. ist Primärschlüssel in allen Partitionen enthalten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 6 Uni Magdeburg, WS 2007/08 105

7 Speicherstrukturen für Data Warehouse Speicherstrukturen für Data Warehouse Vertikale Partitionierung /2 Relationale Speicherung K 001 002 003 004 005 006 A B C D Projektion K 001 002 003 004 005 006 K 001 002 003 004 005 006 A C B D Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 7 Speicherstrukturen für Data Warehouse Partitionierung in Oracle Relationale Speicherung Bereichspartitionierung CREATE TABLE Verkauf ( Datum DATE NOT NULL,... PARTITION BY RANGE(Datum) ( PARTITION Verkauf2002 VALUES LESS THAN to_date( 2003-01-01 ), PARTITION Verkauf2003 VALUES LESS THAN to_date( 2004-01-01 ), PARTITION Verkauf2004 VALUES LESS THAN to_date( 2005-01-01 )); Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 8 Speicherstrukturen für Data Warehouse Partitionierung in Oracle /2 Relationale Speicherung Hash-Partitionierung CREATE TABLE Verkauf ( ArtikelID INT NOT NULL, FilialID INT NOT NULL,... PARTITION BY HASH(ArtikelID, FilialID) PARTITIONS 5); Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 9 106 Uni Magdeburg, WS 2007/08

7 Speicherstrukturen für Data Warehouse Speicherstrukturen für Data Warehouse Relationale Speicherung Partitionierung in Data Warehouses die horizontale Partitionierung (insb. Range-Partitionierung) erlaubt z.b. große Faktentabellen in handlichere Teile zu zerlegen die Selektionsbedingungen für die einzelnen Partitionen sollten sinnvollerweise die in Anfragen häufig vorkommenden Bereichseinschränkungen berücksichtigen eine vertikale Partitionierung erfordert i.d.r. teure Join-Operation zum Wiederzusammensetzen der Tupel; kann aber zum Abspalten selten angefragter Attribute eingesetzt werden Verkleinerung von Fakten- oder Dimensionstabellen, auf die häufig zugegriffen wird 7 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 10 Speicherstrukturen für Data Warehouse Relationale Speicherung Partitionierung in Data Warehouses /2 Spezialfall vertikaler Partitionierung: Mini-Dimensionen gelegentlich werden Dimensionstabellen riesig groß: z.b. Kundentabelle mit mehreren Millionen Datensätzen viele Attribute werden nie oder nur selten angefragt, da sie für Auswertungen uninteressant sind oder es gibt disjunkte Attributgruppen, die immer nur für verschiedene Anwendungen bzw. verschiedene Arten von Auswertungen benötigt werden Abtrennung von Attributen durch vertikale Partitionierung erlaubt dann eine deutliche Verkleinerung der einzelnen Dimensionstabellen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 11 Speicherstrukturen für Data Warehouse Mini-Dimensionen Relationale Speicherung Verkauf Produkt_ID Zeit_ID Geo_ID Kunden_ID Demogr_ID Verkäufe Umsatz Kunden Kunden_ID Name Vorname Straße Ort Demogr_ID Demographie Demogr_ID Altersklasse Einkommensklasse Geschlecht Familienstand Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 12 Uni Magdeburg, WS 2007/08 107

7 Speicherstrukturen für Data Warehouse Speicherstrukturen für Data Warehouse Spezielle Tabellentypen in DB2 Relationale Speicherung Append-Mode-Tabellen optimiert für insert-operationen Tupel werden am Ende angefügt, ohne Freispeicher auf Seiten zu berücksichtigen bereichsgeclusterte Tabellen (range-clustered tables RCT) für Sequenzdaten multidimensional-geclusterte Tabellen (multidimensional clustering tables MDC) geclusterte Speicherung in mehreren Dimensionen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 13 Speicherstrukturen für Data Warehouse Bereichsgeclusterte Tabellen Relationale Speicherung Nutzung ein Sequenznummer (frei wählbares Attribut) als logisch Rowid zur Ermittlung der physischen Speicheradresse Vorab-Allokation des gesamten Speicherplatzes der Tabelle Einsortierung des Tupels über Sequenznummer Zugriff über Sequenznummer kein zusätzlicher Index notwendig create table Bestellung ( BestellNr int primary key,... ) organize by key sequence (BestellNr starting from 1 ending at 10000) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 14 MDC-Tabellen Speicherstrukturen für Data Warehouse Relationale Speicherung Tabellen üblicherweise max. nach einem Index geclustered Scan über anderen Index im Worst Case: 1 Seitenzugriff pro Tupel MDC: Tupel mit gleichen Werten bzgl. mehrerer Attribute (Dimensionen) auf gleicher Seite bzw. im gleichen Extent speichern Indexierung über Block-Indexe (dünn besetzte Indexe) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 15 108 Uni Magdeburg, WS 2007/08

7 Speicherstrukturen für Data Warehouse Speicherstrukturen für Data Warehouse MDC-Tabellen und Block-Indexe Relationale Speicherung Index "Stadt" Block Ilmenau 2003 Ilmenau 2004 Magdeburg 2003 Magdeburg 2004 Rostock 2003... Tupel 7 Index "Jahr" Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 16 Speicherstrukturen für Data Warehouse Anlegen einer MDC-Tabelle Relationale Speicherung create table Verkauf ( Umsatz number, Jahr int, Stadt varchar(20),... ) organize by dimensions (Stadt, Jahr) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 17 Speicherstrukturen für Data Warehouse Multidimensionale Speicherung Multidimensionale Speicherung Verwendung unterschiedlicher Datenstrukturen für Datenwürfel und Dimension Speicherung des Würfels als Array Ordnung der Dimension für Adressierung der Würfelzellen notwendig häufig proprietäre Strukturen (und Systeme) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 18 Uni Magdeburg, WS 2007/08 109

7 Speicherstrukturen für Data Warehouse Speicherstrukturen für Data Warehouse Datenstrukturen für Dimensionen Multidimensionale Speicherung endliche, geordnete Liste von Dimensionswerten Dimensionswerte: einfache unstrukturierte Datentypen (String, Integer, Date) Ordnung der Dimensionswerte (interne ganze Ordnungszahl 2 oder 4 Byte) Endlichkeit der Werteliste Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 19 Speicherstrukturen für Data Warehouse Datenstruktur für Würfel Multidimensionale Speicherung Für n Dimensionen: n-dimensionaler Raum m Dimensionswerte einer Dimension: Aufteilung des Würfels in m parallele Ebenen durch Endlichkeit der Dimensionswerteliste: endliche, gleichgroße Liste von Ebenen je Dimension Zelle eines n-dimensionalen Würfels wird eindeutig über n-tupel von Dimensionswerten identifiziert Zelle kann ein oder mehrere Kennzahlen eines zuvor definierten Datentyps aufnehmen Bei mehreren Kennzahlen: Alternative mehrere Datenwürfel Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 20 Speicherstrukturen für Data Warehouse Klassifikationshierarchien Multidimensionale Speicherung Dimensionswerte umfassen alle Ausprägungen der Dimension: Elemente (Blätter) und Knoten der höheren Klassifikationsstufen Knoten der höheren Stufen bilden weitere Ebenen Magdeburg Halle Sachsen-Anhalt Erfurt Thüringen Januar Februar März 1. Quartal Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 21 110 Uni Magdeburg, WS 2007/08

7 Speicherstrukturen für Data Warehouse Speicherstrukturen für Data Warehouse Berechnung von Aggregationen Multidimensionale Speicherung Echtzeit: bei Anfrage von Zellen, die Werte einer höheren, aggregierten Klassifikationsstufe repräsentieren Berechnung aus Detaildaten hohe Aktualität, jedoch hoher Aufwand eventuell Caching Vorberechnung: nach Übernahme der Detaildaten Berechnung und Eintragen der Aggregationswerte in entsprechende Zellen Neuberechnung nach jeder Datenübernahme notwendig hohe Anfragegeschwindigkeit, jedoch Zunahme der Würfelgröße und Laufzeitaufwand Ausweg: inkrementelle Vorberechnung 7 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 22 Speicherstrukturen für Data Warehouse Weitere Datenstrukturen Multidimensionale Speicherung Attribute klassifizierende Merkmale einer Dimension Identifizierung von Untermengen von Dimensionswerten (z.b. Produktfarbe ) nicht zur Vorberechnung vorgesehen Virtueller Würfel umfasst abgeleitete Daten ( Gewinn, prozentualer Umsatz ) Ableitung aus anderen Würfel durch Anwendung von Berechnungsfunktionen Sichten im relationalen Modell Teilwürfel Kombination mehrerer Ebenen eines Würfels virtuell Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 23 Speicherstrukturen für Data Warehouse Array-Speicherung Multidimensionale Speicherung Speicherung des Würfels: n-dimensionales Array Linearisierung in eine eindimensionale Liste Indizes des Arrays Koordinaten der Würfelzellen (Dimensionen D i ) Indexberechnung für Zelle z mit Koordinaten x 1...x n Index(z) = x 1 + (x 2 1) D 1 + (x 3 1) D 1 D 2 + + (x n 1) D 1 D n 1 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 24 Uni Magdeburg, WS 2007/08 111

7 Speicherstrukturen für Data Warehouse Speicherstrukturen für Data Warehouse Linearisierungsreihenfolge Multidimensionale Speicherung D 3 D 1 D 2 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 25 Speicherstrukturen für Data Warehouse Array-Speicherung: Probleme Multidimensionale Speicherung Zahl der Plattenzugriffe bei ungünstigen Linearisierungsreihenfolgen Reihenfolge der Dimensionen ist bei Definition des Würfels zu beachten Caching zur Reduzierung notwendig Speicherung dünn besetzter Würfel Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 26 Speicherstrukturen für Data Warehouse Speicherverbrauch Multidimensionale Speicherung Array Relational (Star-Schema) Speicherung Implizit Explizit Koordinaten (Linearisierung) (redundant) Leere Zellen Belegen Platz Belegen keinen Platz Neue Klassif. Komplette Neue Zeile Knoten Reorganisation in Dimensionstabelle Starkes Wachstum im Kaum Wachstum im Speicherverbrauch Speicherverbrauch Speicher b n i=1 d i b M (n + 1) -verbrauch mit M ist Anzahl Fakten, also M = n i=1 d i δ (Füllgrad δ) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 27 112 Uni Magdeburg, WS 2007/08

7 Speicherstrukturen für Data Warehouse Speicherstrukturen für Data Warehouse Vergleich Speicherplatz Multidimensionale Speicherung Faktoren Füllgrad k: Anzahl Knoten n: Anzahl Dimensionen Schon bei geringen Füllgraden ist Array Speicherplatz-effizienter Performance hängt von vielen Faktoren ab Indexierung Sequential reads... 7 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 28 Speicherstrukturen für Data Warehouse Vergleich Speicherplatz /2 Multidimensionale Speicherung Speicherplatz nach Füllgrad, b=8, k=100, n=5 Speicherplatz nach Füllgrad, b=8, k=20, n=3 500000000 450000000 400000000 350000000 300000000 250000000 200000000 150000000 100000000 50000000 0 10 20 30 40 50 60 70 80 90 100 Array Relational 300000 250000 200000 150000 100000 50000 0 10 20 30 40 50 60 70 80 90 100 Array Relational Füllgrad in % Füllgrad in % Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 29 Speicherstrukturen für Data Warehouse Multidimensionale Speicherung Grenzen der multidimensionalen Speicherung Skalierbarkeitsprobleme aufgrund dünn besetzter Datenräume teilweise einseitige Optimierung bezüglich Leseoperationen Ordnung der Dimensionswerte notwendig (durch Array-Speicherung) erschwert Änderungen an den Dimensionen keine Standard für multidimensionale DBMS Spezialwissen notwendig Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 30 Uni Magdeburg, WS 2007/08 113

7 Speicherstrukturen für Data Warehouse Speicherstrukturen für Data Warehouse Hybride Speicherung Multidimensionale Speicherung HOLAP: Verbindung der Vorteile beider Welten Relational (Skalierbarkeit, Standard) Multidimensional (analytische Mächtigkeit, direkte OLAP-Unterstützung) Speicherung: Relationale Datenbank: Detaildaten Multidimensionale Datenbank: aggregierte Daten Multidimensionale Speicherstrukturen als intelligenter Cache für häufig angeforderte Datenwürfel transparenter Zugriff über multidimensionales Anfragesystem Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 31 Speicherstrukturen für Data Warehouse Speicherungsvarianten Speicherungsvarianten Ziel: Optimierung für Leseoperationen, spez. OLAP-Anfragen (Aggregationen) schnelles Laden der tatsächlich benötigten Daten in Hauptspeicher für Berechnung Aspekte: Partitionierung: leere Bereiche entfernen Komprimierung: Speicherung von Nullwerten und redundanten Daten vermeiden Indexierung (nächstes Kapitel): Von Datenblöcken (Grid-Files, R+-Bäume, Zwei-Ebenen) In einem Datenblock (Array-/relationale Speicherung der Zellen, RLE, Bitmap) Insgesamt: Erhaltung der räumlichen Nachbarschaftsbeziehung der Zellen im Sekundärspeicher (multidimensionales Clustering) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 32 Speicherstrukturen für Data Warehouse Partitionierung von Datenwürfeln Speicherungsvarianten Ziel: Entfernen leerer Bereiche aus Würfel Optimierte Speicherung für Zugriffsmuster: häufig zugegriffene Bereiche in einigen wenigen Blöcken Kriterien: Art der Partitionierung Steuerung: Optimierung der Partitionierung für Anwendung Werkzeugunterstützung: für Steuerung der Partitionierung Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 33 114 Uni Magdeburg, WS 2007/08

7 Speicherstrukturen für Data Warehouse Speicherstrukturen für Data Warehouse Art der Partitionierung Speicherungsvarianten Aufteilung eines Würfels in nicht überlappende Bereiche (multidimensionale Intervalle) Allgemeine Form: multidimensionale Kachelung Geg.: n-dimensionales Array mit Dimensionswerten D = [1 : d 1,..., 1 : d n ] Kachelung: Menge von Sub-Arrays, die Bereichen b 1,..., b m der Dimensionswerte entsprechen b 1 = [l 1,1 : u 1,1,..., l 1,n : u 1,n ],..., b m = [l m,1 : u m,1,..., l m,n : u m,n ], 7 so dass b i b j = für i j und b i D, i, j = 1,..., m und jede besetzte Zelle einem Sub-Array angehört Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 34 Speicherstrukturen für Data Warehouse Multidimensionale Kachelung Speicherungsvarianten 1 d 1 d 2 u i,2 l i,2 b i 1 l i,1 u i,1 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 35 Speicherstrukturen für Data Warehouse Kachelung nach Ausrichtung Speicherungsvarianten ausgerichtet, regulär ausgerichtet, irregulär unausgerichtet Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 36 Uni Magdeburg, WS 2007/08 115

7 Speicherstrukturen für Data Warehouse Speicherstrukturen für Data Warehouse Speicherungsvarianten Kachelung nach Besetzung des Raumes dünnbesetzt dichtbesetzt Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 37 Speicherstrukturen für Data Warehouse Steuerung der Partitionierung Speicherungsvarianten Automatische Partitionierung: automatisches Finden der Partitionierung für optimale Ausführung der Operationen Nutzung des Füllgrades der Bereiche Nutzung von Zugriffsstatistiken Bedeutung bestimmter Dimensionen/ Dimensionskombinationen Besondere Behandlung der Zeitdimension Partitionierung nach Zeitreihen (spezielle Formate für Reihen von Werten, z.b. täglich, wöchentlich, etc.) Zwei-Ebenen-Speicherung Nur Speicherung von verwendeten Kombinationen dünn besetzter Dimensionen Partitionenspezifikation des Anwenders Direkte Spezifikation jedes Bereiches Dimensionspartitionen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 38 Speicherstrukturen für Data Warehouse Speicherung der Zellen Speicherungsvarianten Verwendung eines bestimmten Speicherformats für jeden Datenblock Unterstützung verschiedener Speicherformate (in Abhängigkeit vom Füllgrad) Ab bestimmten Füllgrad: Array-Speicherung effizienter als relationale Speicherung Grund: Speicherung der Koordinaten als Schlüssel bei relationaler Speicherung notwendig Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 39 116 Uni Magdeburg, WS 2007/08

7 Speicherstrukturen für Data Warehouse Speicherstrukturen für Data Warehouse Speicherungsvarianten Minimaler Füllgrad für optimale Speicherung ab einem berechenbaren minimalen Füllgrad ist Array-Speicherung besser als relationale Speicherung Minimaler Füllgrad δ ist maximales δ so dass gilt: n n Ix rel + δ L i s c + n < Ix arr + L i s c i=1 j=1 s j i=1 L i : Länge des Sub-Array in Dimension i s c : Speichergröße der Zellen (Platzverbrauch aller Kenngrößen einer Zelle) s j : Speichergröße der Dimensionsattribute j Ix rel : Speichergröße der Indizierung (relationale Speicherung) Ix arr : Speichergröße der Indizierung (Array-Speicherung) 7 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 40 Speicherstrukturen für Data Warehouse Speicherungsvarianten Minimaler Füllgrad: Beispiel Annahme: Ix rel und Ix arr gleich, s j = s c = 8 2 Dimensionen: 2 2 δ L i 24 < L i 8 j=1 j=1 Array-Speicherung effizienter ab Füllgrad 0.33 Für drei Dimensionen: 0.25 Füllgrad sinkt mit steigender Anzahl von Dimensionen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 41 Speicherstrukturen für Data Warehouse Zwei-Ebenen-Datenstruktur Speicherungsvarianten Obere Ebene indiziert Datenblöcke, die auf unterer Ebene gespeichert werden Obere Ebene: Array mit allen möglichen Kombinationen von Dimensionswerten Zellen des Array: Zeiger auf Datenblock, der Datenwerte für entsprechenden Dimensionswert der dicht besetzten Dimensionen enthält NULL für leeren Bereich Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 42 Uni Magdeburg, WS 2007/08 117

7 Speicherstrukturen für Data Warehouse Speicherstrukturen für Data Warehouse Zwei-Ebenen-Datenstruktur Speicherungsvarianten Werbeaktion dünn besetzt Kunde Geographie Zeit dicht besetzt Produkt Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 43 Speicherstrukturen für Data Warehouse Zusammenfassung Speicherungsvarianten relationale vs. multidimensionale Speicherung relationale Erweiterungen Partitionierung spezielle Tabellentypen Spezialitäten der multidimensionalen Speicherung Array-Speicherung Kachelung Umgang mit dünn besetzten Würfeln hybride Formen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 8 44 Teil IX Indexstrukturen für Data Warehouse 118 Uni Magdeburg, WS 2007/08

8 Indexstrukturen für Data Warehouse 8.1 Klassifikation von Indexstrukturen 8.2 B-Bäume 8.3 Bitmap-Indexe 8.4 Mehrdimensionale Indexstrukturen 8 119

8 Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse 1 Klassifikation von Indexstrukturen 2 B-Bäume 3 Bitmap-Indexe 4 Mehrdimensionale Indexstrukturen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 1 Motivation Indexstrukturen für Data Warehouse Faktentabellen in Data Warehouses sind so groß, dass ein Full-Table-Scan nicht sinnvoll ist Beispiel: Scan über 10 GB-Tabelle bei 10 MB/s = ca. 17 Minuten Anfragen betreffen typischerweise nur einen verhältnismäßig kleinen Anteil der vorhandenen Daten: Je nach Beschränkung der einzelnen Dimensionen umfasst die Antwort nur wenige Prozent oder Promille (oder noch weniger) aller Daten Verwendung von Indexstrukturen ist sinnvoll, um die Anzahl der zu lesenden Datenseiten zu minimieren Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 2 Indexstrukturen für Data Warehouse Klassifikation von Indexstrukturen Klassifikation von Indexstrukturen Clustering: Daten, die voraussichtlich oft zusammen verarbeitet werden, werden auch physisch nahe beieinander abgelegt Tupel-Clustering: Ablegen von Tupeln auf der gleichen physischen Seite Seiten-Clustering: Hintereinanderablegen zusammengehöriger Seiten im Sekundärspeicher (erlaubt Prefetching) Dimensionalität: Angabe, wieviele Attribute (Dimensionen) der zugrundeliegenden Relation für Berechnung des Indexschlüssels verwendet werden Symmetrie: Wenn die Performance unabhängig von der Reihenfolge der Indexattribute ist, handelt es sich um eine symmetrische Indexstruktur, ansonsten um eine asymmetrische Tupelverweise: Art der Verweise innerhalb der Indexstruktur auf die Tupel Dynamisches Verhalten: Aufwand zur Aktualisierung der Indexstruktur bei Einfügen, Ändern und Löschen; (sowie ggf. Problem der Entartung ) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 3 120 Uni Magdeburg, WS 2007/08

8 Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse Vergleich von Indexstrukturen Klassifikation von Indexstrukturen Full Table Scan Clusternder Primärindex Produkt (Artikel) Produkt (Artikel) Zeit (Tage) Zeit (Tage) Produkt (Artikel) Produkt (Artikel) 8 Zeit (Tage) Mehrere Sekundärindexe, Bitmap-Indexe Zeit (Tage) Multidimensionaler Index Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 4 Indexstrukturen für Data Warehouse B-Bäume Eindimensionale Baumstrukturen B-Baum [Bayer/McCreight 1972] 77 132... 54 69 88 99... 40 43 52 59 62 70 74 75 82 84 87 89 90 97 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 5 B-Baum Indexstrukturen für Data Warehouse B-Bäume Ordnung eines B-Baumes: min. Anzahl der Einträge auf den Indexseiten (außer Wurzelseite) Definition: Indexbaum ist B-Baum der Ordnung m, wenn Jede Seite enthält höchstens 2m Elemente Jede Seite außer Wurzelseite enthält mind. m Elemente Jede Seite ist entweder Blattseite ohne Nachfolger oder hat i + 1 Nachfolger (i: Anzahl ihrer Elemente) Alle Blattseiten liegen auf der gleichen Stufe Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 6 Uni Magdeburg, WS 2007/08 121

8 Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse B-Baum: Eigenschaften B-Bäume n Datensätze in Hauptdatei log m (n) Seitenzugriffe von der Wurzel zum Blatt Balancierungskriterium führt zu Eigenschaft nahe vollständiger Ausgeglichenheit Einfügen, Löschen, Suchen mit O(log m (n)) Speicherplatzausnutzung: mindestens 50% (ausser Wurzel) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 7 B + -Baum Indexstrukturen für Data Warehouse B-Bäume B + -Baum (Variante des B-Baums): Tupel/TIDs nur in den Blättern; Blätter untereinander verkettet für sequenziellen (Bereichs-) Durchlauf 89 132... 59 70 89 99... 40 43 52 59 62 70 74 75 82 84 87 89 90 97 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 8 Indexstrukturen für Data Warehouse B-Bäume Eigenschaften von B- und B + -Bäumen eindimensionale Struktur (Index über ein Attribut) als Primärindex können Tupel auch direkt im Baum gespeichert werden (ermöglicht einfaches Clustering; insb. beim B + -Baum) als Sekundärindex werden nur TIDs im Baum gespeichert balancierte Bäume (Weg von Wurzel zu Blatt überall gleich lang); Balancierung erfordert etwas aufwendiger Reorganisation bei Änderung der Daten für Data Warehouses von untergeordneter Bedeutung B + -Baum besonders geeignet für Bereichsanfragen (durch Verkettung auf Blattebene) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 9 122 Uni Magdeburg, WS 2007/08

8 Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse Anwendung von B-/B + -Baum B-Bäume B- und B + -Baum: eindimensionale Strukturen: nur unzureichende Unterstützung mehrdimensionaler Anfragen mögliche Anwendung bei mehrdimensionalen Anfragen: für jedes beteiligte Attribut gibt es einen B- oder B + -Baum als Sekundärindex dann kann für jedes Attribut entsprechend der Anfragerestriktion die Menge der TIDs der Tupel bestimmt werden, die die jeweilige Restriktion erfüllen nun wird der Schnitt dieser unabhängig voneinander bestimmten TID-Mengen berechnet; die zugehörigen Tupel bilden das Anfrageergebnis 8 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 10 B + -Baum: Fazit Indexstrukturen für Data Warehouse B-Bäume Robuste, generische Datenstruktur Unabhängig vom Datentyp (nur Ordnung erforderlich) Effiziente Aktualisierungsalgorithmen Kompakt Arbeitspferd aller RDBMS Probleme Attribute mit geringer Kardinalität degenerierte Bäume Zusammengesetzte Indexe ordnungssensitiv Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 11 Indexstrukturen für Data Warehouse Degenerierte B-Bäume B-Bäume Beispiel: Tabelle customer Attribute: u.a. gender (m, w) Index CREATE INDEX s_idx ON customer(gender) m w 0x100, 0x101, 0x105, 0x110,... 0x102, 0x103, 0x104, 0x106,... Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 12 Uni Magdeburg, WS 2007/08 123

8 Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse Ordnungsabhängigkeit B-Bäume Zusammengesetzter Index Indexierung konkatenierter Attributwerte Problem: Ordnung der Anfrageprädikate anpassen Beispiel: Tabelle customer Attribute: gender, profession, cclass Index: CREATE INDEX csp_idx ON customer(cclass, gender, profession) Anfragen: SELECT... FROM... WHERE gender= m AND profession= lecturer AND cclass=1 SELECT... FROM... WHERE cclass=1 AND gender= m AND profession= lecturer Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 13 Indexstrukturen für Data Warehouse B-Bäume B + -Baum-Tricks: Oversized Index Anfrage: SELECT AVG(age) FROM customer WHERE cclass=1 AND gender= m AND profession= lecturer Indexnutzung Suchen des Wertes 1 m lecturer Zugriff auf Block der Relation customer über TID für Wert von age Besser: CREATE INDEX csp_idx ON customer(cclass, gender, profession, age) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 14 Indexstrukturen für Data Warehouse B-Bäume B + -Baum-Tricks: Berechnete Indexe Berechnung von indexierten Werten durch Angabe einer Funktion Beispiel: Index über customer(name) Anfrage: SELECT * FROM customer WHERE name="müller" OR name="müller" OR name="mueller"... Besser Indexnutzung nicht möglich CREATE INDEX n_idx ON customer(upper(name)) CREATE INDEX n_idx ON customer(soundex(name)) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 15 124 Uni Magdeburg, WS 2007/08

8 Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse Oracle9i: Spezielle Features B-Bäume Index Skip Scan: nutzt zusammengesetzte Indexe auch, wenn erstes Attribut nicht in Bedingung enthalten ist Beispiel: Tabelle customer, Index auf (state, registration#) Index nutzbar für Anfrage mit... WHERE registration# = 4245 Durchsuchung des sekundären Index für alle DISTINCT Werte des ersten Attributs Meist nur bei niedriger Kardinalität des ersten Attributes sinnvoll Infos: http://otn.oracle.com/products/oracle9i/daily/apr22.html 8 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 16 Indexstrukturen für Data Warehouse B-Bäume Oracle9i: Spezielle Features /2 Index-organized Tables Tupel werden im B + -Baum mitgespeichert Keine Indirektion über TID notwendig User-defined Indexes Implementierung eigener Indexstrukturen für benutzerdefinierte Datentypen Transparente Nutzung Angabe eigener Kostenabschätzungen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 17 Bitmap-Indexe Indexstrukturen für Data Warehouse Bitmap-Indexe Idee: Bit-Array zur Kodierung der Tupel-Attributwert-Zuordnung Vergleich mit baumbasierten Indexstrukturen: vermeidet degenerierte B-Bäume unempfindlicher gegenüber höherer Zahl von Dimensionen einfachere Unterstützung von Anfragen, in denen nur einige (der indexierten) Dimensionen beschränkt werden dafür aber i.allg. höhere Aktualisierungskosten in Data Warehouses wegen des überwiegend lesenden Zugriffs unproblematisch Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 18 Uni Magdeburg, WS 2007/08 125

8 Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse Bitmap-Index: Realisierung Bitmap-Indexe Prinzip: Ersetzung der TIDs (rowid) für einen Schlüsselwert im B + -Baum durch Bitliste Knotenaufbau: Bestellstatus F : 010010 01 O : 0111010 00 P : 100000 10 Vorteil: geringerer Speicherbedarf Beispiel: 150.000 Tupel, 3 verschiedene Schlüsselwerte, 4 Byte für TID B + -Baum: 600 KB Bitmap: 3 18750 Byte = 56KB Nachteil: Aktualisierungsaufwand Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 19 Indexstrukturen für Data Warehouse Bitmap-Index: Realisierung /2 Definition in Oracle Bitmap-Indexe CREATE BITMAP INDEX bestellstatus_idx ON bestellung(status); Nutzung speziell zur Star-Query-Transformation (Verbund zwischen Dimensions- und Faktentabelle) Speicherung in komprimierter Form Weiterhin: Verbund-Indexe auf Bitmap-Basis Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 20 Indexstrukturen für Data Warehouse Standard-Bitmap-Index Bitmap-Indexe jede Dimension wird getrennt abgespeichert für jede Ausprägung eines Attributs wird ein Bitmap-Vektor angelegt: für jedes Tupel steht ein Bit, dieses wird auf 1 gesetzt, wenn das indexierte Attribut in dem Tupel den Referenzwert dieses Bitmap-Vektors enthält die Anzahl der entstehenden Bitmap-Vektoren pro Dimension entspricht der Anzahl der unterschiedlichen Werte, die für das Attribut vorkommen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 21 126 Uni Magdeburg, WS 2007/08

8 8 Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse Standard-Bitmap-Index /2 Bitmap-Indexe Beispiel: Attribut Geschlecht 2 Wertausprägungen (m/w) 2 Bitmap-Vektoren PersId Name Geschlecht Bitmap-w Bitmap-m 007 James Bond M 0 1 008 Amelie Lux W 1 0 010 Harald Schmidt M 0 1 011 Heike Drechsler W 1 0 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 22 Indexstrukturen für Data Warehouse Standard-Bitmap-Index /3 Bitmap-Indexe Selektion von Tupeln kann nun durch entsprechende Verknüpfung von Bitmap-Vektoren erfolgen Beispiel: Bitmap-Index über Attribute Geschlecht und Geburtsmonat (d.h. 2 Bitmap-Vektoren B-w und B-m für Geschlecht und 12 Bitmap-Vektoren B-1,..., B-12 für die Monate, wenn alle Monate vorkommen) Anfrage: alle im März geborenen Frauen Berechnung: B-w B-3 (bitweise konjunktiv verknüpft) Ergebnis: alle Tupel, an deren Position im Bitmap-Vektor des Ergebnis eine 1 steht Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 23 Indexstrukturen für Data Warehouse Bitmap-Indexe Mehrkomponenten-Bitmap-Index bei Standard-Bitmap-Indexe entstehen für Attribute mit vielen Ausprägungen sehr viele Bitmap-Vektoren < n, m >-Mehrkomponenten-Bitmap-Indexe erlauben es n m mögliche Ausprägungen durch n + m Bitmap-Vektoren zu indexieren jeder Wert x(0 x n m 1) kann durch zwei Werte y und z repräsentiert werden: x = n y + z mit 0 y m 1 und 0 z n 1 dann nur noch maximal m Bitmap-Vektoren für y und n Bitmap-Vektoren für z Speicheraufwand reduziert sich von n m auf n + m Vektoren dafür müssen für eine Punktanfrage aber 2 Bitmap-Vektoren gelesen werden Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 24 Uni Magdeburg, WS 2007/08 127

8 Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse Bitmap-Indexe Mehrkomponenten-Bitmap-Index Beispiel: Zweikomponenten-Bitmap-Index Für M = 0..11 etwa x = 4 y + z y-werte: B-2-1, B-1-1, B-0-1 z-werte: B-3-0, B-2-0, B-1-0, B-0-0 x y z M B-2-1 B-1-1 B-0-1 B-3-0 B-2-0 B-1-0 B-0-0 5 0 1 0 0 0 1 0 3 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 11 1 0 0 1 0 0 0 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 25 Indexstrukturen für Data Warehouse Beispiel: Postleitzahlen Bitmap-Indexe Kodierung von Postleitzahlen Werte 00000 bis 99999 direkte Umsetzung: 100.000 Spalten Zweikomponenten-Bitmap-Index (erste 2 Ziffern + 3 letzte Ziffern): 1.100 Spalten Fünf Komponenten: 50 Spalten geeignet für Bereichsanfragen PLZ 39*** Binärkodiert (bis 2 17 ): 34 Spalten nur für Punktanfragen! Bemerkung: Kodierung zur Basis 3 ergibt sogar nur 33 Spalten... Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 26 Indexstrukturen für Data Warehouse Bitmap-Indexe Bereichskodierter Bitmap-Index Standard- und Mehrkomponenten-Bitmap-Indexe für Punktanfragen sehr gut geeignet für große Bereiche ineffizient, da viele Bitmap-Vektoren verknüpft werden müssen Idee der bereichskodierten Bitmap-Indexe: Im Bitmap-Vektor wird ein Bit auf 1 gesetzt, wenn der Wert des Attributs des zu dieser Position gehörigen Tupels kleiner oder gleich dem gegebenen Wert ist. Bereichsanfrage 2 attr 7 benötigt zur Beantwortung nur 2 Bitmap-Vektoren: B-1 und B-7. Ergebnis-Bitmap-Vektor ist (( B-1) B-7). für Bereichsanfragen müssen max. 2 Bitmap-Vektoren gelesen werden (nur einer bei nur einseitig begrenzten Bereichen) für Punktabfragen müssen genau 2 Bitmap-Vektoren gelesen werden Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 27 128 Uni Magdeburg, WS 2007/08

8 8 Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse Bitmap-Indexe Bereichskodierter Bitmap-Index Monat Dez Nov Okt Sep Aug Jul Jun Mai Apr Mär Feb Jan M B-11 B-10 B-9 B-8 B-7 B-6 B-5 B-4 B-3 B-2 B-1 B-0 Juni - 5 1 1 1 1 1 1 1 0 0 0 0 0 April - 3 1 1 1 1 1 1 1 1 1 0 0 0 Jan. - 0 1 1 1 1 1 1 1 1 1 1 1 1 Feb. - 1 1 1 1 1 1 1 1 1 1 1 1 0 April - 3 1 1 1 1 1 1 1 1 1 0 0 0 Dez. - 11 1 0 0 0 0 0 0 0 0 0 0 0 Aug. - 7 1 1 1 1 1 0 0 0 0 0 0 0 Sept. - 8 1 1 1 1 0 0 0 0 0 0 0 0 Bereichsanfrage Februar Datum August benötigt B-0 und B-7. Ergebnis-Bitmap-Vektor ist (( B-0) B-7) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 28 Indexstrukturen für Data Warehouse Bitmap-Indexe Mehrkomponenten-bereichskodierter Bitmap-Index Kombination der beiden Techniken zunächst wird ein Mehrkomponenten-Bitmap-Index angelegt auf jede entstehende Gruppe von Bitmap-Vektoren wird die Bereichskodierung angewendet aufgrund der Mehrkomponenten-Technik geringer Speicherbedarf (da geringe Anzahl von Bitmap-Vektoren) die Bereichskodierung erlaubt zudem effiziente Unterstützung für Bereichsanfragen durch die Bereichskodierung wird zudem in jeder Gruppe von Bitmap-Vektoren (Komponenten) ein Vektor überflüssig (der den Wert n 1 bzw. m 1 repräsentiert, da dort immer alle Bits auf 1 gesetzt sein müssen); also nur n + m 2 Bitmap-Vektoren benötigt Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 29 Indexstrukturen für Data Warehouse Beispiel MKBKBMI Bitmap-Indexe Beispiel Mehrkomponenten-bereichskodierter Bitmap-Index B-0-1 = B-0-1 B-1-1 = B-1-1 B-0-1 B-2-1 = B-2-1 B-1-1 = B-2-1 B-1-1 B-0-1 = 1 M B-1-1 B-0-1 B-2-0 B-1-0 B-0-0 5 1 0 1 1 0 3 1 1 0 0 0 0 1 1 1 1 1 11 0 0 0 0 0 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 30 Uni Magdeburg, WS 2007/08 129

8 Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse Intervallkodierte Indexierung Bitmap-Indexe Prinzip: jeder Bitmap-Vektor repräsentiert definiertes Intervall Beispiel: Intervalle I-0 = [0, 5], I-1 = [1, 6], I-2 = [2, 7], I-3 = [3, 8], I-4 = [4, 9], I-5 = [5, 10] M I-5 I-4 I-3 I-2 I-1 I-0 5 1 1 1 1 1 1 3 0 0 1 1 1 1 0 0 0 0 0 0 1 11 0 0 0 0 0 0 10 1 0 0 0 0 0 Anfrage: (2 M 8) Auswertung von I-2 I-3 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 31 Indexstrukturen für Data Warehouse Auswahl von Indexstrukturen Bitmap-Indexe in Data Warehouses i.d.r. multidimensionale Bereichsanfragen Auswahl der Indexstruktur abhängig vom Anfrageprofil Wird ein bestimmtes Attribut bevorzugt eingeschränkt? bei asymmetrischen Indexstrukturen Reihenfolge der Indexattribute nach ihrer Vorkommenshäufigkeit im Anfrageprofil wählen Wenn kein Attribut als besonders wichtig ausgezeichnet werden kann bzw. sehr viele Ad-hoc-Anfragen auftreten, sind symmetrische Strukturen (Sekundärindexe, multidimensionale Indexe) sinnvoll Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 32 Indexstrukturen für Data Warehouse Bitmap-Indexe Auswahl von Indexstrukturen /2 Standard-Bitmap-Index Schnelle, effiziente Implementierung großer Speicherplatzbedarf bei großer Anzahl von Ausprägungen Mehrkomponenten-Bitmap-Index Für Punktanfragen wenigste Anzahl von Leseoperationen Bereichskodierter Bitmap-Index Einseitig beschränkte Bereichsanfragen Intervallkodierter Bitmap-Index Zweiseitig beschränkte Bereichsanfragen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 33 130 Uni Magdeburg, WS 2007/08

8 8 Indexstrukturen für Data Warehouse Verbundindex Indexstrukturen für Data Warehouse Bitmap-Indexe Beschleunigung von Verbundberechnungen durch Indexierung von Attributen fremder Relationen Vorberechnung des Verbundes und Speichern als Indexstruktur Verbund/Gruppierung teilweise ohne Zugriff auf fremde Relation (z.b. Dimensionstabelle) möglich Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 34 Indexstrukturen für Data Warehouse Verbundindex: Beispiel Bitmap-Indexe Verkauf V_ROWID GeoID ZeitID Verkäufe... 0x001 101 11 200 0x002 101 11 210 0x003 102 11 190 0x004 102 11 195 0x005 103 11 100 0x006 103 11 95 Geographie G_ROWID GeoID Filiale Stadt... 0x100 101 Allee-Center Magdeburg 0x101 102 Bördepark Magdeburg 0x102 103 Anger Erfurt 0x103 104 Erfurter Str. Ilmenau CREATE INDEX joinidx ON Verkauf(Geographie.GeoID) USING Verkauf.GeoID = Geographie.GeoID 0x100: { 0x001, 0x002,... } 0x101: { 0x003, 0x004,... } 0x103: {... } Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 35 Indexstrukturen für Data Warehouse Bitmap-Verbundindex Bitmap-Indexe Bisher: Prädikate für Bitmap-Indexe nicht auf Fremdschlüssel angewendet Verbund muss weiterhin ausgeführt werden Bitmap-Indexe nur für Star-Join-Optimierung hilfreich Kombination von Bitmap-Index und Verbund-Index Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 36 Uni Magdeburg, WS 2007/08 131

8 Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse Bitmap-Indexe Bitmap-Verbundindex mit Oracle Definition CREATE BITMAP INDEX sr_idx ON sales(region.region_name) FROM sales, region WHERE sales.region_id = region.id Macht Joins überflüssig (kein Zugriff auf region notwendig) Verknüpfung mit anderen Bitmap-Indexen auf Tabelle sales möglich SELECT SUM(sales.amount) FROM sales, region WHERE sales.region_id = region.id AND region.region_name = Thüringen Infos: http://otn.oracle.com/products/oracle9i/daily/apr09.html Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 37 Indexierte Sichten Indexstrukturen für Data Warehouse Bitmap-Indexe SQL Server 2000: Indexierung von Sichten Materialisierung der betroffenen Daten Automatische Aktualisierung bei Änderung der Basisdaten materialisierte Sichten CREATE VIEW Verkäufe2002 AS SELECT Stadt, Verkäufe, V.ZeitID, V.GeographieID FROM Verkauf V, Zeit Z, Geographie G WHERE V.ZeitID = Z.ZeitID AND Z.Jahr = 2002 AND V.GeographieID = G.GeographieID; CREATE UNIQUE CLUSTERED INDEX V2000_IDX ON Verkäufe2002(ZeitID, GeographieID); Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 38 Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen Mehrdimensionale Indexstrukturen Hash-basierte Strukturen Grid-Files Mehrdimensionales dynamisches Hashen Baum-basierte Strukturen KdB-Baum R-Baum [Gutman 1984] UB-Baum [Bayer 1996] Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 39 132 Uni Magdeburg, WS 2007/08

8 8 Indexstrukturen für Data Warehouse Grid-File Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen Mehrdimensionale Dateiorganisationsform Kombination von Elementen der Schlüsseltransformation (Hash-Verfahren) und Indexdateien (Baumverfahren) Idee Dimensionsverfeinerung: gleichmäßige Aufteilung des mehrdimensionalen Raumes in der ausgewählten Dimension durch vollständigen Schnitt (Einziehen einer Hyperebene) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 40 Indexstrukturen für Data Warehouse Grid-File: Prinzipien Mehrdimensionale Indexstrukturen Zerlegung des Datenraums in Quader (Suchregion: k-dimensionale Quader) Nachbarschaftserhaltung: Speicherung ähnlicher Objekte auf gleicher Seite Symmetrische Behandlung aller Raum-Dimensionen: partial-match-anfragen Dynamische Anpassung der Struktur beim Einfügen und Löschen Prinzip der 2 Plattenzugriffe bei exact-match-anfragen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 41 Grid-File: Aufbau Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen Grid: k eindimensionale Felder (Skalen), jede Skala repräsentiert Attribut Skalen: bestehen aus Partition der zugeordneten Wertebereiche in Intervalle Grid-Directory: besteht aus Grid-Zellen, die Datenraum in Quader zerlegen Grid-Zellen: bilden eine Grid-Region, der genau eine Datensatz-Seite zugeordnet ist Grid-Region: k-dimensionales, konvexes Gebilde (paarweise disjunkt) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 42 Uni Magdeburg, WS 2007/08 133

8 Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse Grid-File: Aufbau /2 Mehrdimensionale Indexstrukturen Skalen (Intervalle) Grid-Directory (Zellen) Regionen Seiten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 43 Indexstrukturen für Data Warehouse Grid-File: Operationen Mehrdimensionale Indexstrukturen Ausgangszustand: Zelle = Region = eine Datensatz-Seite Seitenüberlauf Teilen von Seiten Falls zur Seite gehörende Grid-Region nur eine Zelle: Unterteilung des Intervalls auf einer Skala Falls Region aus mehreren Zellen: Zerlegung dieser Zellen in einzelne Regionen Seitenunterlauf Zusammenfassen von zwei Regionen falls Ergebnis eine konvexe Region Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 44 Indexstrukturen für Data Warehouse Mehrdimensionales Hashen MDH Idee: Bit Interleaving Mehrdimensionale Indexstrukturen abwechselnd von verschiedenen Zugriffsattributwerten die Bits der Adresse berechnen Beispiel: zwei Dimensionen *0*0 *0*1 *1*0 *1*1 0*0* 0000 0001 0100 0101 0*1* 0010 0011 0110 0111 1*0* 1000 1001 1100 1101 1*1* 1010 1011 1110 1111 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 45 134 Uni Magdeburg, WS 2007/08

8 Indexstrukturen für Data Warehouse Idee MDH Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen MDH baut auf linearem Hashen auf dynamisches Hash-Verfahren Bitsequenz-Prefixe addressieren Speicherblöcke Hash-Werte sind Bit-Folgen, von denen jeweils ein Anfangsstück als aktueller Hash-Wert dient bei binären Zahlen: oft Invertierung der Bit-Darstellung vor Prefix-Bildung je ein Bit-String pro beteiligtem Attribut berechnen Anfangsstücke nun nach dem Prinzip des Bit-Interleaving zyklisch abarbeiten Hash-Wert reihum aus den Bits der Einzelwerte zusammensetzen Familie von Hash-Funktionen h i für Bitfolgen der Länge i dynamisches Wachstum: gehe von i auf i + 1 8 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 46 Indexstrukturen für Data Warehouse MDH Veranschaulichung Mehrdimensionale Indexstrukturen verdeutlicht Komposition der Hash-Funktion h i für drei Dimensionen und den Wert i = 7 beim Schritt auf i = 8 würde ein weiteres Bit von x 2 verwendet MDH Komplexität Exact-Match-Anfragen: O(1) Partial-Match-Anfragen, bei t von k Attributen festgelegt, Aufwand O(n 1 t k ) ergibt sich aus der Zahl der Seiten, wenn bestimmte Bits unknown Spezialfälle: O(1) für t = k, O(n) für t = 0 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 47 KdB-Baum Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen k-dimensionale Indexbäume kd-baum: binärer Baum für mehrdimensionale Grundstruktur; Hauptspeicheralgorithmen KDB-Baum: Kombination aus kd-baum und B-Baum (höherer Verzweigungsgrad) KdB-Baum: Verbesserung des KDB-Baums Idee des KdB-Baums Auf jeder Indexseite einen Teilbaum darstellen, der nach mehreren Attributen hintereinander verzweigt Aufwand: exact-match O(log n), partial match besser als O(n) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 48 Uni Magdeburg, WS 2007/08 135

8 Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse KdB-Baum: Struktur KdB-Baum vom Typ (b, t) Mehrdimensionale Indexstrukturen Bereichsseiten (innere Knoten): enthalten kd-baum mit max. b internen Knoten kd-baum mit Schnittelementen und zwei Zeigern Schnittelement: Zugriffsattribut und -wert linker Zeiger: kleinere Zugriffsattributwerte rechter Zeiger: größere Zugriffsattributwerte Satzseiten (Blätter): enthalten bis zu t Tupel der gespeicherten Relation Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 49 Indexstrukturen für Data Warehouse KdB-Baum: Beispiel Mehrdimensionale Indexstrukturen I J F C x:40 y A H y:51 y:60 E B D G x:26 x:80 x {E} {A,B} {I,J} {D} {H,G} {F,C} Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 50 Indexstrukturen für Data Warehouse KdB-Baum: Trennattribute Mehrdimensionale Indexstrukturen Reihenfolge Zyklisch festgelegt Einbeziehung der Selektivität: Zugriffsattribut mit hoher Selektivität möglichst früh und häufiger als Schnittelement einsetzen Trennattributwert Ermittlung einer geeigneten Mitte des Wertebereichs aufgrund von Verteilungsinformationen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 51 136 Uni Magdeburg, WS 2007/08

8 8 Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse K[dD](B)-Baum: Fazit Mehrdimensionale Indexstrukturen Speichert auch schlecht verteilte Daten Schwer handhabbar für mehr als 3 Dimensionen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 52 R-Baum Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen jeder Knoten des R-Baums speichert max. m Indexeinträge (m = 2d + 1) jeder Knoten (außer der Wurzel) enthält mindestens n Einträge (n = d + 1) d-dimensionaler R-Baum verwendet d-dimensionale Intervalle (Rechtecke, Quader) zur Indexierung des Datenraums Eintrag auf Blattebene: (I, tid) mit I ein d-dimensionales Intervall und tid Tupelidentifikator, der den entsprechenden Datensatz referenziert Eintrag in inneren Knoten: (I, cp) mit I dem d-dimensionalen Intervall, das alle Intervalle der Einträge des Kindknotens umfasst (minimum bounding box) und cp Zeiger auf diesen Kindknoten (child pointer) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 53 R-Baum /2 Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen Besonderheiten (im Vergleich zum B -Baum) Suchen: falls verschiedene Regionen von Knoten gleicher Ebene sich überlappen, müssen selbst bei Punktanfragen evtl. mehrere Nachfolger traversiert werden Einfügen: es wird versucht, ein Intervall zu finden, das nicht erweitert werden muss; ansonsten das, das am wenigsten erweitert werden muss Löschen von Daten spielt für Data Warehouses i.d.r. keine Rolle; Einfügen nur in größeren Abständen (dann aber oft mit vielen neuen Tupeln) effiziente Möglichkeit des bottom-up-aufbaus der R-Baum-Struktur wichtig Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 54 Uni Magdeburg, WS 2007/08 137

8 Indexstrukturen für Data Warehouse R-Baum Beispiel Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen A F G K D E H J B I N M L A B C C D E F G L M N H I J K Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 55 R-Baum Fazit Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen Bessere Anpassung der Bereiche an Daten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 56 UB-Baum Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen Datenraum wird mittels einer raumfüllenden Kurve in disjunkte Teilräume aufgeteilt (meist die sogenannte Z-Kurve) jeder Punkt des von den zu indizierenden Attributen aufgespannten mehrdimensionalen Raums wird auf einen skalaren Wert, den Z-Wert, abgebildet Z-Werte werden als Schlüssel in einem herkömmlichen B + -Baum verwendet Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 57 138 Uni Magdeburg, WS 2007/08

8 Indexstrukturen für Data Warehouse UB-Baum /2 Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen Aufteilung eines 2-dimensionalen Raums mit der Z-Kurze: 111 110 101 100 011 010 001 000 000 001 010 011 100 101 110 111 8 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 58 UB-Baum /3 Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen Z-Werte lassen sich effizient (in linearer Zeit) berechnen: Je Dimension werden die Basisintervalle binär durchnummeriert; durch Verschränken der Bits (bit interleaving) ergibt sich dann der jeweilige Z-Wert. Z-Region: wird durch ein Intervall [a, b] von Z-Werten bestimmt Z-Regionen eines UB-Baums werden dynamisch so angepasst, dass die innerhalb einer Z-Region liegenden Objekte genau auf eine B + -Baum-Seite passen damit kann ein B + -Baum als Basisstruktur verwendet werden Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 59 UB-Baum /4 Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 60 Uni Magdeburg, WS 2007/08 139

8 Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen UB-Baum: Bereichssuche (RQ-Algorithmus) jede Bereichsanfrage wird durch 2 Datensätze q a und q e bestimmt, die (bildlich) die linke obere und die rechte untere Ecke des Anfragebereichs spezifizieren 1 beginne mit q a und berechne die zugehörige Z-Region 2 lade die entsprechende Seite und wende Anfrageprädikat auf alle Datensätze darin an 3 berechne den nächsten Bereich der Z-Kurze, der innerhalb des Anfragebereichs liegt 4 wiederhole 2. und 3. bis die Endadresse der gerade bearbeiteten Z-Region größer ist als q e (also den Endpunkt des Anfragebereichs enthält) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 61 Indexstrukturen für Data Warehouse UB-Baum: Bereichssuche Mehrdimensionale Indexstrukturen Schritt 3. (Berechnung der Schnittpunkte der Z-Kurve mit dem Anfragebereich) erscheint auf den ersten Blick kritisch; Tatsächlich: effizient durch ein paar Bitoperationen (und ohne Plattenzugriffe) in linearer Zeit lösen (linear in der Länge der Z-Werte) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 62 Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen UB-Baum: Bereichssuche graphisch q a q e Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 63 140 Uni Magdeburg, WS 2007/08

8 8 Indexstrukturen für Data Warehouse Indexstrukturen für Data Warehouse UB-Baum und MHC Mehrdimensionale Indexstrukturen Erweiterungen des UB-Baums für Data Warehouses: Mehrdimensionales Hierarchisches Clustering (MHC) unterstützt hierarchisch organisierte Dimensionen, so daß alle Vorteile des UB-Baums erhalten bleiben Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 64 MHC: Prinzip Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen Totale Ordnung für Hierarchie Zuweisung einer eindeutigen Zahl zu jedem Blattelement der Hierarchie Elemente des gleichen Unterbaums erhalten zusammenliegende Zahlen (Clustering) Berechnung: Jedes Element einer Hierarchiestufe erhalt Zahl (Surrogat) für Blattelement: Aneinanderhängen der Surrogate (Binärdarstellung) Mehrkomponentensurrogat Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 65 MHC Beispiel Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen Top Wein (1) Soft Drinks (2) Rotwein (1) Weißwein (2) Rose (3) Cola (1) Limo (2) Bordeaux (1) Burgunder (2) Rivaner (1) 111 112 121... Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 66 Uni Magdeburg, WS 2007/08 141

8 Indexstrukturen für Data Warehouse MHC Nutzung Indexstrukturen für Data Warehouse Mehrdimensionale Indexstrukturen Mehrkomponentensurrogate als Schlüssel für Tupel der Faktentabelle Indexattribut für UB-Baum Beispiel: Bereichsanfrage Minimales und maximales Mehrkomponentensurrogat als Intervall zur Einschränkung Schallehn Data-Warehouse-Technologien Wintersemester 07/08 9 67 Teil X Anfragen an Data Warehouse 142 Uni Magdeburg, WS 2007/08

9 9 Anfragen an Data Warehouse 9.1 Überblick 9.2 Gruppierung und Aggregation 9.3 CUBE und ROLLUP 9.4 OLAP-Funktionen in SQL:2003 9.5 Multidimensionale Erweiterungen: MDX 143

9 Anfragen an Data Warehouse Anfragen an DW Anfragen an Data Warehouse 1 Überblick 2 Gruppierung und Aggregation 3 CUBE und ROLLUP 4 OLAP-Funktionen in SQL:2003 5 Multidimensionale Erweiterungen: MDX Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 1 Einführung Anfragen an Data Warehouse Überblick Typische Anfragen an Data Warehouses beinhalten Aggregationen, z.b. Welche Umsätze sind in den Jahren 2005 und 2006 in den Warensegmenten Bier und Rotwein in den Bundesländern Hessen und Thüringen angefallen? Charakteristik typischer Data-Warehouse-Anfragen: aus der großen Menge vorhandener Fakten wird nur ein bestimmter, in den meisten Dimensionen beschränkter Datenbereich angefragt Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 2 Einführung /2 Anfragen an Data Warehouse Überblick multidimensionale Anfrage: Restriktion, die sich i.d.r. je Dimension auf einfache Klassifikationsknoten bezieht spezielle Optimierungstechniken sinnvoll! Problem: Aggregationen auf großen Datenmengen Beispiel: 100 GB Verkaufsdaten (die komplett gelesen werden müssen) Leserate 20 MB/s 100000/20 s = 5000 s 83 min inakzeptabel für OLAP-Anwendungen! Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 3 144 Uni Magdeburg, WS 2007/08

9 9 Anfragen an Data Warehouse Anfragen an Data Warehouse Überblick Relationale Umsetzung multidimensionaler Anfragen Grundsätzlich abhängig von Abbildung für Schema Star- vs. Snowflake-Schema Klassifikationshierarchien Häufiges Anfragemuster (n + 1)-Wege-Verbund zwischen n Dimensionstabellen und der Faktentabelle sowie Restriktionen über Dimensionstabellen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 4 Star-Join: Beispiel Anfragen an Data Warehouse Überblick SELECT Geographie.Region, Zeit.Monat, SUM(Verkaeufe) FROM Verkauf, Zeit, Produkte, Geographie WHERE Verkauf.Produkt_ID = Produkt.Produkt_ID AND Verkauf.Zeit_ID = Zeit.Zeit_ID AND Verkauf.Geo_ID = Geographie.Geo_ID AND Produkt.Produktkategorie = Rotwein AND Geographie.Land = Deutschland AND Zeit.Jahr = 2006 GROUP BY Geographie.Region, Zeit.Monat Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 5 Star-Join: Aufbau Anfragen an Data Warehouse Überblick SELECT-Klausel Kenngrößen (evtl. aggregiert) Ergebnisgranularität (z.b. Monat, Region) FROM-Klausel Fakten- und Dimensionstabellen WHERE-Klausel Verbundbedingungen Restriktionen (z.b.: Produkt.Produktkategorie = Rotwein AND Geographie.Land = Deutschland AND Zeit.Jahr = 2006) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 6 Uni Magdeburg, WS 2007/08 145

9 Anfragen an Data Warehouse Anfragen an Data Warehouse Gruppierung und Aggregation Gruppierung und Aggregation Datenanalyse: Aggregation mehrdimensionaler Daten Aggregatfunktion: 0-dimensionale Antwort Standard: SUM, MIN, MAX, COUNT Erweiterungen: statistische, physikalische und Finanzfunktionen Benutzerdefinierte Aggregatfunktionen Gruppierung: 1-dimensionale Antwort Ergebnis: Tabelle mit Aggregatwerten indiziert durch Menge von Attributen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 7 Anfragen an Data Warehouse Gruppierung und Aggregation /2 Gruppierung und Aggregation SQL: GROUP BY attrib_liste [ HAVING bedingung ] Gruppierung bzgl. gleicher Werte der Gruppierungsattribute abschließende Projektion nur über Gruppierungsattribute oder Aggregationen Einschränkungen Berechnung von Histogrammen: Aggregationen über berechnete Kategorien... GROUP BY func(zeit) AS Woche... Berechnung von Zwischen- und Gesamtsummen Berechnung von Kreuztabellen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 8 Anfragen an Data Warehouse Gruppierung und Aggregation Berechnung von Zwischen- und Gesamtsummen Prod. Jahr Region Verk. Verk. Verk. Prod.- Prod. Prod. Jahr- Jahr Region Rotwein 2005 SANH 135 THÜR 120 2006 SANH 140 THÜR 135 255 275 Produkt Jahr Region Verkäufe Rotwein 2005 SANH 135 Rotwein 2005 THÜR 120 Rotwein 2005 120 Rotwein 2006 SANH 140 Rotwein 2006 THÜR 135 Rotwein 2006 275 Rotwein 530 530 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 9 146 Uni Magdeburg, WS 2007/08

9 Anfragen an Data Warehouse Anfragen an Data Warehouse Gruppierung und Aggregation Berechnung von Zwischen- und Gesamtsummen /2 SELECT Produkt, NULL, NULL, SUM(Verkäufe) FROM Verkauf WHERE Produkt = Vita-Cola GROUP BY Produkt UNION SELECT Produkt, Jahr, NULL, SUM(Verkäufe) FROM Verkauf WHERE Produkt = Vita-Cola GROUP BY Produkt, Jahr UNION SELECT Produkt, Jahr, Region, SUM(Verkäufe) FROM Verkauf WHERE Produkt = Vita-Cola GROUP BY Produkt, Jahr, Region 9 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 10 Anfragen an Data Warehouse Nachteile der UNION-Variante Gruppierung und Aggregation Hoher Aufwand: Berechnung aller Teilsummen für n Gruppierungsattribute erfordert 2 n Teilanfragen Eventuelle Verbundoperationen müssen mehrfach wiederholt werden Aufwendige Formulierung: eventuell jedoch Generierung durch OLAP-Werkzeuge Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 11 Anfragen an Data Warehouse Berechnung von Kreuztabellen Symmetrische Aggregation Auch Pivot-Tabellen Gruppierung und Aggregation Verkäufe 2005 2006 Total Thüringen 135 140 275 Sachen-Anhalt 120 135 255 Total 255 275 530 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 12 Uni Magdeburg, WS 2007/08 147

9 Anfragen an Data Warehouse Anfragen an Data Warehouse PIVOT in SQL Server Gruppierung und Aggregation SELECT Jahr, [THÜR] AS Thüringen, [SANH] AS Sachsen-Anhalt FROM Verkauf PIVOT (SUM(Verkäufe) FOR Region IN ([THÜR], [SANH])) AS Pvt Jahr Thüringen Sachsen-Anhalt 2005 135 120 2006 140 135 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 13 Anfragen an Data Warehouse Gruppierung und Aggregation Benutzerdefinierte Aggregatfunktionen Verwendung von UDF zur Aggregation Prinzip: Zustandsbehaftete Funktion 3 Aufrufmodi (Callbacks, Methoden) Init (&handle): Initialisierung der Aggregatberechnung Iter (&handle, value): Aggregieren des nächsten Wertes Value = Final (&handle): Berechnung und Rückgabe des Aggregatwertes Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 14 Anfragen an Data Warehouse Gruppierung und Aggregation Benutzerdefinierte Aggregatfunktionen /2 Beispiel: Average (Durchschnitt) Zustand: Anzahl der Tupel n, Wert w Init: n = 0, w := 0 Iter: n := n + 1, w := w + v Final: return w/n Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 15 148 Uni Magdeburg, WS 2007/08

9 Anfragen an Data Warehouse Anfragen an Data Warehouse Aggregatfunktionen: Klassifikation Gruppierung und Aggregation Geg.: T Menge von Tupeln, {S i i = 1... n} Menge von disjunkten Partitionen von T Distributiv es gibt eine Funktion G, so dass gilt: F(T) = G({F(S i i = 1... n}) Beispiel: MIN, MAX, SUM (G = F), COUNT(G = SUM) Algebraisch M-Tupel-wertige Funktion G und Funktion H, so dass gilt: F(T) = H({G(S i ) i = 1... n}) Beispiel: AVG (G liefert Summe, Anzahl; H führt Division) Holistisch Alle weiteren Beispiel: MEDIAN 9 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 16 Cube-Operator Anfragen an Data Warehouse CUBE und ROLLUP Kurzform für Anfragemuster zur Berechnung von Teil- und Gesamtsummen Generierung aller möglichen Gruppierungs-kombinationen aus gegebener Menge von Gruppierungsattributen Ergebnis: Tabelle mit aggregierten Werten Gesamtaggregat: NULL, NULL,..., NULL, f ( ) Höherdimensionale Ebenen mit weniger NULL-Werten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 17 Anfragen an Data Warehouse Cube-Operator: Beispiel CUBE und ROLLUP Produkt Region Jahr Verkäufe Rotwein SANH 2005 45 Rotwein THÜR 2005 43 Rotwein SANH 2006 47 Rotwein THÜR 2006 42 CUBE Produkt Region Jahr Verkäufe Rotwein SANH 2005 45 Rotwein THÜR 2005 43............ Rowein SANH NULL 92 Rotwein THÜR NULL 85 Rotwein NULL 2005 88 Rotwein NULL 2006 89 Rotwein NULL NULL 177 NULL SANH 2005 45............ NULL NULL 2005 88 NULL NULL 2006 89 NULL NULL NULL 177 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 18 Uni Magdeburg, WS 2007/08 149

9 Anfragen an Data Warehouse Cube: Details Anfragen an Data Warehouse CUBE und ROLLUP Kardinalität N Attribute mit Kardinalität C 1, C 2,..., C N Gesamtkardinalität des CUBE: N (C i + 1) i=1 Anzahl der Super-Aggregatwerte N Attribute in der SELECT-Klausel Super-Aggregate: 2 N 1 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 19 Anfragen an Data Warehouse Cube-Operator: SQL-Syntax CUBE und ROLLUP Implementierung in SQL Server, DB2, Oracle Syntax: SELECT Produktgruppe, Region, Jahr, SUM(Verkäufe) FROM Verkauf GROUP BY CUBE(Produktgruppe, Region, Jahr) Funktion GROUPING(Attribut) Liefert Wert = 1, wenn über Attribut aggregiert wurde Liefert Wert = 0, wenn nach Attribut gruppiert wurde Anwendung: Unterdrückung von Teilsummen, z.b. der Gesamtsumme... HAVING NOT (GROUPING(Produktgruppe) = 1 AND GROUPING(Region) = 1 AND GROUPING(Jahr) = 1) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 20 Rollup-Operator Anfragen an Data Warehouse CUBE und ROLLUP CUBE-Operator: interdimensional anwendbar für Attribute aus unterschiedlichen Dimensionen Für Roll-Up oder Drill-Down-Operationen zu aufwendig ROLLUP-Operator: intradimensional Generierung der Attributkombinationen (A 1,..., A N ), (A 1,..., A N 1 ), (A 1, A 2 ), (A 1 ), () für gegebene Attributliste A 1,..., A N Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 21 150 Uni Magdeburg, WS 2007/08

9 9 Anfragen an Data Warehouse Anfragen an Data Warehouse ROLLUP-Operator: Beispiel Anfrage: CUBE und ROLLUP SELECT Prodkategorie, Prodfamilie, Land, Region, SUM(Verkäufe) AS Verkäufe FROM... GROUP BY ROLLUP(Prodkategorie, Prodfamilie), ROLLUP(Land,Region) Auswertung: 1. Rollup: (Prodkategorie,Prodfamilie), (Prodkategorie),() 2. Rollup: (Land, Region), (Land), () Kreuzprodukt beider Kombination Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 22 Anfragen an Data Warehouse ROLLUP-Operator: Beispiel CUBE und ROLLUP Prodkategorie Prodfamilie Land Region Verkäufe Elektronik Video D SA 102 Elektronik Audio D SA 98 Elektronik NULL D SA 200............... Elektronik Video D NULL 541 Elektronik Audio D NULL 326 Elektronik NULL D NULL 867............... Elektronik NULL NULL NULL 1232............... NULL NULL D NULL 1432............... NULL NULL NULL NULL 3456 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 23 Anfragen an Data Warehouse CUBE und ROLLUP CUBE- vs. ROLLUP-Operator CUBE-Operator: Generiert alle 2 n Kombinationen: z.b. für 4 Gruppierungsattribute 16 Kombinationen ROLLUP-Operator: Generiert nur Kombinationen mit Superaggregaten: (f 1, f 2,..., f n),... (f 1, NULL,..., NULL), (NULL, NULL,..., NULL) n + 1 Kombinationen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 24 Uni Magdeburg, WS 2007/08 151

9 Anfragen an Data Warehouse GROUPING SETS Anfragen an Data Warehouse SQL:2003-Gruppierung CUBE und ROLLUP GROUP BY... GROUPING SETS (gruppierung) gruppierung: Einfache Gruppierungskombination, z.b.: (Land, Region) Komplexe Gruppierungsbedingung mit CUBE oder ROLLUP Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 25 Anfragen an Data Warehouse GROUPING SETS: Beispiel Anfrage CUBE und ROLLUP... GROUP BY ROLLUP(Prodkategorie, Prodfamilie), (1) GROUPING SETS((Stadt), (Region)), (2) GROUPING SETS( ROLLUP(Jahr, Quartal, Monat), (Woche))(3) Bedeutung (1) entlang der Klassifikationshierarchie (2) nur für Städte und Regionen (3) Nutzung der Parallelhierarchie (Jahr Quartal Monat) sowie Woche Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 26 Anfragen an Data Warehouse Iceberg-Cube: Motivation CUBE und ROLLUP Probleme der CUBE-Berechnung (Beispiel) 9-dimensionaler Datensatz (Daten von Wetterstationen) 1.015.367 Tupel (ca. 39MB) CUBE: 210.343.580 Tupel (ca. 8 GB 200 Eingangsdaten) 20% aller GROUP-BYs nahezu ohne Aggregation (Größe: ca. 1) Berechnung der GROUP-BYs mit mind. 2 Eingangstupeln: nur 50 Eingangsdaten! Für mind. 10 Tupel: nur 5 Eingangsdaten!! Idee Iceberg-Cube: Berechne nur Aggregationen, die einen minimalen Support haben Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 27 152 Uni Magdeburg, WS 2007/08

9 9 Anfragen an Data Warehouse Iceberg-Cube Anfragen an Data Warehouse CUBE und ROLLUP Berechnung der Gruppierungen (Partitionen), die Aggregatselektionsbedingung erfüllen SELECT A, B, C, COUNT(*), SUM(X) FROM R GROUP BY CUBE(A, B, C) HAVING COUNT(*) >= N N: minimaler Support einer Partition Spezielle Optimierung möglich Pruning: Abschneiden von Partitionen, die minimalen Support nicht erfüllen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 28 Anfragen an Data Warehouse OLAP-Funktionen in SQL:2003 SQL:2003 Sequenzbasierte Operationen seit SQL:1999 Erweiterung um OLAP-Funktionen zur attributund sequenzbasierten Auswertung Attribut- und tupelbasierte Aggregation Umsetzung u.a. in Oracle und DB2 Unterstützte Anfragetypen Ratio-To-Total Laufende Summen (Kumulation) Gleitender Durchschnitt Ranking-Analyse Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 29 Anfragen an Data Warehouse OLAP-Funktionen: Syntax OLAP-Funktionen in SQL:2003 Funktion(arg) OVER( ) Partitionierungsklausel Ordnungsklausel Partitionierung für jedes Attribut des Ergebnisses ohne Verdichtung: jeder Eingangswert Ergebniswert Ordnung innerhalb einer Dimension Fenster Festlegung des Aggregationsfensters Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 30 Uni Magdeburg, WS 2007/08 153

9 Anfragen an Data Warehouse Anfragen an Data Warehouse OLAP-Funktionen: Motivation OLAP-Funktionen in SQL:2003 Ratio-To-Total-Analyse Berechnung des tägl. Anteils an Gesamtstückzahlen Schema: Lieferung(Lieferdatum, Menge, Preis, Art) Klassische SQL-Anfrage: SELECT Lieferdatum, Menge AS TMenge, GMenge, 100.0*Menge/GMenge AS AMenge FROM Lieferung, ( SELECT SUM(Menge) AS GMenge FROM Lieferung) AS L2 innere Unteranfrage berechnet die Gesamtmenge für die Anteilsberechnung: ( SELECT SUM(Menge) AS GMenge FROM Lieferung) AS L2 umständlich, fehlerträchtig,... Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 31 Anfragen an Data Warehouse OLAP-Funktionen in SQL:2003 Formulierung mittels OLAP-Funktion Anfrage: SELECT Lieferdatum, Menge AS TMenge, SUM(Menge) OVER() AS GMenge, 100.0*Menge/SUM(Menge) OVER() AS AMenge FROM Lieferung OLAP-Funktion SUM(Menge) OVER() Aggregation über gesamten Eingangsbereich Partition für Aggregation wird lokal für jeden Eintrag generiert Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 32 Anfragen an Data Warehouse Attributlokale Partitionierung OLAP-Funktionen in SQL:2003 Partitionierung des Eingabestroms einer OLAP-Funktion (ähnlich Gruppierung) Aber: Partitionierung erfolgt pro Attribut/Anweisung der Aggregrationsoperation ermöglicht Nachgruppierung Beispiel: Ermittlung der Anteile der Tagesstückzahlen im Vergleich zu Monatszahlen SELECT Lieferdatum, Menge AS TMenge SUM(Menge) OVER(PARTITION BY MONTH(Lieferdatum)) AS VMonatMenge, 100.0*Menge/SUM(Menge) OVER(PARTITION BY MONTH(Lieferdatum)) AS AMonatMenge FROM Lieferung; Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 33 154 Uni Magdeburg, WS 2007/08

9 9 Anfragen an Data Warehouse Anfragen an Data Warehouse OLAP-Funktionen in SQL:2003 Attributlokale Partitionierung: Details Prinzip: SUM(Menge) OVER(PARTITION BY MONTH(Lieferdatum)) Spezifikationstext hinter OVER heisst Partitionierungsschema Keine Konflikte durch unterschiedliche Partitionierungsschemata innerhalb einer Anfrage Jeweils alle Einträge einer Partition in Berechnung einbezogen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 34 Anfragen an Data Warehouse Sequenzorientierte Analyse OLAP-Funktionen in SQL:2003 Spezifikation einer attributlokalen Ordnung für Partitionen Anwendung: laufende Summe, gleitender Durchschnitt, etc. Beispiel: kumulative Liefermengen über Gesamtzeitraum und per Monat SELECT Lieferdatum, SUM(Menge) OVER(ORDER BY Lieferdatum) AS SumGes, SUM(Menge) OVER(PARTITION BY MONTH(Lieferdatum) ORDER BY Lieferdatum) AS SumMonat FROM Lieferung; Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 35 Anfragen an Data Warehouse OLAP-Funktionen in SQL:2003 Sequenzorientierte Analyse: Prinzip Anzahl der Tupel, die in ein Ergebnistupel eingehen entspricht Position des Tupels bzgl. gegebener Ordnung Eingangstupel t i, Ergebnistupel s i t 1 SUM({t 1 }) s 1 t 2 SUM({t 1, t 2 }) s 2 t 3 SUM({t 1, t 2, t 3 }) s 3... Schrittweise Vergrößerung des Analysefensters Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 36 Uni Magdeburg, WS 2007/08 155

9 Anfragen an Data Warehouse Anfragen an Data Warehouse Nutzung für Ranking-Analysen OLAP-Funktionen in SQL:2003 Funktionen RANK(): liefert Rang eines Tupels bzgl. vorgegebener Ordnung innerhalb der Partition Bei Duplikaten gleicher Rang (mit Lücken) DENSERANK(): wie RANK(), jedoch ohne Lücken Beispiel: Ranking nach Liefermenge SELECT Lieferdatum, RANK() OVER(ORDER BY Menge) AS Rang FROM Lieferung Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 37 Anfragen an Data Warehouse Ranking-Analyse: Beispiel OLAP-Funktionen in SQL:2003 Beschränkung von Hitlisten Beispiel: Top-10 der Tage mit den höchsten Liefermengen pro Monat Anfrage: SELECT L.Lieferdatum, L.TopMonat FROM ( SELECT Lieferdatum, RANK() OVER( PARTITION BY MONTH(Lieferdatum) ORDER BY Menge DESC) AS TopMonat FROM Lieferung) AS L WHERE L.TopMonat <= 10 ORDER BY L.TopMonat DESC; Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 38 Anfragen an Data Warehouse Bildung dynamischer Fenster OLAP-Funktionen in SQL:2003 Bisher: nur wachsende Fenstergröße für Partition Jetzt: explizite Angabe des Fensters ROWS: Anzahl der Tupel RANGE: Anzahl der wertmäßig verschiedenen Tupel Anwendung: gleitender Durchschnitt Ausgehend von definierten Startpunkt bis zum aktuellen Tupel UNBOUNDED PRECEDING: erstes Tupel der jeweiligen Partition n PRECEDING: n-ter Vorgänger relativ zur aktuellen Position CURRENT ROW: aktuelles Tupel (nur mit RANGE und Duplikaten sinnvoll) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 39 156 Uni Magdeburg, WS 2007/08

9 9 Anfragen an Data Warehouse Anfragen an Data Warehouse Bildung dynamischer Fenster /2 OLAP-Funktionen in SQL:2003 Angabe der unteren und oberen Schranken BETWEEN unteregrenze AND oberegrenze Spezifikation der Grenzen UNBOUNDED PRECEDING UNBOUNDED FOLLOWING n PRECEDING n FOLLOWING CURRENT ROW oberegrenze muss höhere Position als unteregrenze spezifizieren Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 40 Anfragen an Data Warehouse Dynamische Fenster: Beispiel OLAP-Funktionen in SQL:2003 Gleitender Durchschnitt mit 5-Tage-Fenster auf Monatsebene SELECT Lieferdatum, AVG(Menge) OVER( PARTITION BY MONTH(Lieferdatum) ORDER BY Lieferdatum ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING) AS Durch5Tage FROM Lieferung Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 41 Anfragen an Data Warehouse Multidimensionale Erweiterungen: MDX Multidimensionale Erweiterungen: MDX OLE DB for OLAP (Microsoft) OLE DB COM-Objekte und -Schnittstellen für Datenbankzugriff Kommunikation zwischen Datenprovider und -konsumenten (Clients) Treiber -Konzept OLE DB for OLAP Zugriff auf multidimensionale Daten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 42 Uni Magdeburg, WS 2007/08 157

9 Anfragen an Data Warehouse Anfragen an Data Warehouse Multidimensionale Erweiterungen: MDX OLE DB for OLAP: Schema und Sprache Multidimensionales Schema Würfel Dimensionen mit Ebenen Kenngrößen als Dimensionen MDX: Multidimensional Expressions Spezifikation von multidimensionalen Datensätzen mit Hilfe OLAP-typischen Anfragen Makros auf Basis von SQL Provider RDBMS: Abbildung auf SQL Multidimensionale DBMS: Abbildung auf eigene Sprache Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 43 MDX: Statement Anfragen an Data Warehouse Multidimensionale Erweiterungen: MDX Spezifikation von Würfel Anzahl der Achsen Dimensionen, die auf Achsen projiziert werden und deren Schachtelung Dimensionselemente und deren Sortierreihenfolge Dimensionselemente von nicht-projizierten Dimensionen zur Filterung der Daten ( Slicer ) Syntax SELECT achsen-spez [, achsen-spez ] FROM cube-spez WHERE slicer-spez Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 44 Anfragen an Data Warehouse Aufteilung der Dimensionen Multidimensionale Erweiterungen: MDX Achsen-Dimensionen: Daten für mehrere Elemente Slicer-Dimensionen: Daten für ein Element Beispiel: Dimensionen Geographie, Produkt, Zeit (Quartale), Kenngrößen Kenngrößen-Dimension Geographie-Dimension Verkauf in Thüringen Rotwein Bier Soft-Drinks 1. Quartal 123 200 230 2. Quartal 120 190 240 Produkt- Dimension 3. Quartal 140 210 4. Quartal 130 205 260 220 Zeit-Dimension Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 45 158 Uni Magdeburg, WS 2007/08

9 9 Anfragen an Data Warehouse Beispiel CUBE Anfragen an Data Warehouse Multidimensionale Erweiterungen: MDX Verkäufe 2006, Alle Produkte Müller Roth SANH THÜR SANH THÜR MD Halle MD Halle 1. Quart. Jan 14 12 25 12 9 22 Feb 13 10 22 11 9 21 Mär 15 14 23 11 10 22 2. Quart. 42 40 82 39 37 75 3. Quart. 44 42 80 37 35 73 4. Quart. Okt 13 12 23 10 10 22 Nov 14 12 24 9 10 21 Dez 16 14 26 12 11 20 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 46 Anfragen an Data Warehouse Spezifikation der Achsen Multidimensionale Erweiterungen: MDX Achse: Menge von Tupeln 1 Dimension: Tupel aus einem Element n Dimensionen: Tupel aus n Elementen Beispiel: (Müller, SANH), (Roth, THÜR), (Müller, MD), (Müller, Halle), (Roth, Erfurt) Spezifikation Ausdruck zur Erzeugung von Elementen Explizite Angabe der Elemente Kreuzprodukt von Elementen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 47 Anfragen an Data Warehouse Spezifikation der Achsen: Beispiele Aufzählung { Müller, Roth } Multidimensionale Erweiterungen: MDX Mengenausdrücke Sachsen-Anhalt.CHILDREN liefert { MD, Halle } Kreuzprodukt CROSSJOIN( { Müller, Roth }, {Sachsen-Anhalt.CHILDREN, Thüringen } ) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 48 Uni Magdeburg, WS 2007/08 159

9 Anfragen an Data Warehouse Anfragen an Data Warehouse Projektion auf Achsen Multidimensionale Erweiterungen: MDX Zuordnung der Tupelmengen der Dimensionen zu Achsen Notation: set ON achsen-bezeicher achsen-bezeichner ROWS COLUMNS AXIS(index) beliebige Anzahl von Achsen möglich Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 49 Anfragen an Data Warehouse Spezifikation der Slicer Multidimensionale Erweiterungen: MDX Slicer-Dimensionen: Dimensionen, die nicht zu Achsen zugeordnet sind Filterung bezüglich dieser Dimensionen Slicer: Tupel Beispiel: WHERE (Verkäufe, [2006], Produkte.[All]) Auswahl der Kenngröße Verkäufe, der Zahlen aus 2006 und aller Produkte Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 50 Gesamtanfrage Anfragen an Data Warehouse Multidimensionale Erweiterungen: MDX SELECT CROSSJOIN({ Müller, Roth }, { Sachsen-Anhalt.CHILDREN, Thüringen }) ON COLUMNS, { Quart1.CHILDREN, Quart2, Quart3, Quart4.CHILDREN } ON ROWS FROM VerkaufCube WHERE (Verkäufe, [2005], Produkte.[All]) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 51 160 Uni Magdeburg, WS 2007/08

9 9 Anfragen an Data Warehouse Weitere Funktionen Anfragen an Data Warehouse Multidimensionale Erweiterungen: MDX Filterung von Mengen basierend auf Bedingung FILTER(BspMenge, (Verkäufe,[2005]) < (Verkäufe,[2006])) Anwendung: in SELECT-Teil Bsp.: SELECT FILTER(...) ON COLUMNS weitere Mengenoperationen: UNION, EXCEPT, INTERSECT Aggregationen SUM(Sachsen-Anhalt, Thüringen, Verkäufe) Anwendung: WITH MEMBER Geographie.NewMember AS SUM(...) SELECT NewMember ON COLUMNS,... Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 52 Anfragen an Data Warehouse Weitere Funktionen /2 Multidimensionale Erweiterungen: MDX Einschränkung bzgl. Kennzahlen über TOPCOUNT-Operator Top10-Städte nach Verkaufszahlen SELECT..., {TOPCOUNT(Sachsen.CHILDREN, 10, Verkäufe)} ON ROWS FROM... Zeitreihen PERIODSTODATE(Quartal, [22-Nov-06]): liefert Zeitintervall 1.10.06-22.11.06 LASTPERIODS(2, [Nov-06]): liefert {[Sep-06], [Okt-06]} PARALLELPERIOD(Jahr,2, [Nov-06]): liefert [Nov-04] Schallehn Data-Warehouse-Technologien Wintersemester 07/08 10 53 Teil XI Anfrageverarbeitung und -optimierung Uni Magdeburg, WS 2007/08 161

10 Anfrageverarbeitung und -optimierung 10.1 Überblick 10.2 Star-Join 10.3 Optimierung des GROUP BY 10.4 Berechnung des CUBE 162

10 10 Anfrageverarbeitung und -optimierung Anfrageverarbeitung und -optimierung Anfrageverarbeitung und -optimierung 1 Überblick 2 Star-Join 3 Optimierung des GROUP BY 4 Berechnung des CUBE Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 1 Anfrageverarbeitung und -optimierung Überblick Überblick SQL-Anfrage Ergebnis Logische Optimierung Physische Optimierung Kostenbasierte Auswahl Übersetzung & Sichtauflösung Standardisierung & Vereinfachung Optimierung Übersetzungszeit Ausführung Planparametrisierung Code- Erzeugung Code Algebraausdruck Algebraausdruck Zugriffsplan Zugriffsplan Laufzeit Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 2 Anfrageverarbeitung und -optimierung Überblick Phasen der Anfrageverarbeitung 1 Übersetzung und Sichtexpansion in Anfrageplan arithmetische Ausdrücke vereinfachen Unteranfragen auflösen Einsetzen der Sichtdefinition 2 Logische oder auch algebraische Optimierung Anfrageplan unabhängig von der konkreten Speicherungsform umformen; etwa Hineinziehen von Selektionen in andere Operationen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 3 Uni Magdeburg, WS 2007/08 163

10 Anfrageverarbeitung und -optimierung Anfrageverarbeitung und -optimierung Überblick Phasen der Anfrageverarbeitung /2 3 Physische oder Interne Optimierung konkrete Speicherungstechniken (Indexe, Cluster) berücksichtigen Algorithmen auswählen mehrere alternative interne Pläne 4 Kostenbasierte Auswahl Statistikinformationen (Größe von Tabellen, Selektivität von Attributen) für die Auswahl eines konkreten internen Planes nutzen 5 Planparametrisierung bei vorkompilierten Anfragen (etwa Embedded-SQL): Ersetzen der Platzhalter durch Werte 6 Code-Erzeugung Umwandlung des Zugriffsplans in ausführbaren Code Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 4 Anfrageverarbeitung und -optimierung Überblick Phasen der Anfrageverarbeitung /3 Repräsentation von Anfragen während der Verarbeitung Algebraausdrücke Operatorbaum Operatoren als Knoten Kanten repräsentieren Datenfluss spätere Phasen Zugriffs- oder Anfrageplan (query execution plan QEP) konkrete Algorithmen als Operatorknoten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 5 Anfrageverarbeitung und -optimierung Überblick Logische vs. physische Operatoren σ F π A γ G;aggr(A) R R R S R Selektion Projektion Verbund Gruppierung Algebraoperatoren Planoperatoren IndexScan TableScan TableScanProj SortProj NestedLoopsJoin SortMergeJoin HashJoin SortGroupBy HashGroupBy Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 6 164 Uni Magdeburg, WS 2007/08

10 10 Anfrageverarbeitung und -optimierung Anfrageverarbeitung und -optimierung Optimierung von Star-Joins Star-Join Star-Joins stellen typisches Muster für Data-Warehouse-Anfragen dar typische Eigenschaften durch das Star-Schema: sehr große Faktentabelle deutlich kleinere, unabhängige Dimensionstabellen Heuristiken klassischer relationaler Optimierer schlagen hier oft fehl! Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 7 Anfrageverarbeitung und -optimierung Optimierung von Star-Joins /2 Star-Join Beispiel: Join über Faktentabelle Verkauf und die drei Dimensionstabellen Produkt, Zeit und Geographie: 4-Wege Join In RDBMS üblicherweise nur paarweiser Join: Sequenz paarweiser Joins notwendig 4! mögliche Join-Reihenfolgen Heuristik zur Verringerung der zu untersuchenden Möglichkeiten: Joins zwischen Relationen, die nicht durch eine Join-Bedingung in der Anfrage verknüpft sind, werden nicht betrachtet Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 8 Anfrageverarbeitung und -optimierung Star-Join Optimierung von Star-Joins /3 Heuristik liefert z.b. folgenden Ausführungsplan (Plan A): σ Land="BRD" σ Monat="Jan. 2006" Zeit σ Prod.kat.="Bier" Produkt Verkauf Geographie Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 9 Uni Magdeburg, WS 2007/08 165

10 Anfrageverarbeitung und -optimierung Anfrageverarbeitung und -optimierung Optimierung von Star-Joins /4 Star-Join Folgender Ausführungsplan (Plan B) wird üblicherweise nicht betrachtet (mit Kreuzprodukt der Dimensionstabellen): σ Prod.kat.="Bier" Verkauf σ Monat="Jan. 2006" σ Land="BRD" Produkt Zeit Geographie Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 10 Anfrageverarbeitung und -optimierung Star-Join Star-Join: Berechnungsbeispiel Annahmen: Tabelle Verkauf: 10.000.000 Datensätze 10 Geschäfte in Deutschland (von 100) 20 Verkaufstage im Januar 2006 (von 1000 gespeicherten Tagen) 50 Produkte in Produktkategorie Bier (von 1000) Gleichverteilung/gleiche Selektivität der einzelnen Ausprägungen Plan Operation Anzahl Ergebnistupel A 1. Join 1.000.000 2. Join 20.000 3. Joi: 1.000 B 1. Kreuzprodukt 200 2. Kreuzprodukt 10.000 Join 1.000 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 11 Anfrageverarbeitung und -optimierung Star-Join Semi-Join von Dimensionstabellen Berechnung des Kreuzprodukts für die Dimensionstabellen nur bei ausreichend restriktiven Selektionsbedingungen für Dimensionen sinnvoll Vermeidung der vollständigen Berechnung des Kreuzproduktes Einsatz des Semi-Join Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 12 166 Uni Magdeburg, WS 2007/08

10 10 Anfrageverarbeitung und -optimierung Anfrageverarbeitung und -optimierung Star-Join Semi-Join von Dimensionstabellen /2 1 auf Faktentabelle muss für jede Dimension ein einfacher B+-Baum als Index angelegt sein 2 durch Semi-Joins mit den Dimensionstabellen werden zunächst die Mengen der Tupelidentifier (TID) der in Frage kommenden Tupel bestimmt 3 die Schnittmenge dieser TID-Mengen wird berechnet (z.b. durch effiziente Hauptspicherverfahren): enthält alle TIDs der Tupel, die die Bedingungen für alle Dimensionen erfüllen 4 danach Durchführung des normalen paarweisen Joins Nicht die ganze Faktentabelle geht in Join ein, sondern nur noch die tatsächlich relevanten Tupel! (im Beispiel: 1.000 statt 10.000.000 Tupel) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 13 Anfrageverarbeitung und -optimierung Star-Join Semi-Join von Dimensionstabellen /3 TID-Intersect TIDs der Faktentabelle SemiJoin(Geo_ID) SemiJoin(Produkt_ID) SemiJoin(Zeit_ID) TableScan(Geographie) TableScan(Produkt) TableScan(Zeit) IndexScan(Verkauf,Zeit_ID,-) IndexScan(Verkauf,Geo_ID,-) IndexScan(Verkauf,Produkt_ID,-) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 14 Anfrageverarbeitung und -optimierung Optimierung des GROUP BY Optimierung des GROUP BY Besondere Berücksichtigung der Gruppierungs-/Aggregatoperationen im Rahmen der Optimierung Logische/Algebraische Optimierung: Push-down von Gruppierungen Reduzierung der Kardinalität der Zwischenergebnisse Invariantes Gruppieren Frühzeitiges Vorgruppieren Physische/Interne Optimierung Spezielle Implementierungen für GROUP BY, CUBE,... sowie OLAP-Funktionen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 15 Uni Magdeburg, WS 2007/08 167

10 Anfrageverarbeitung und -optimierung Anfrageverarbeitung und -optimierung Invariantes Gruppieren Optimierung des GROUP BY Idee: Verschieben einer Gruppierungsoperation nach unten (Invarianz bzgl. Position) Anwendbar, wenn Verbundpartner nicht direkt zum Ergebnis beiträgt (implizite Selektion) Gruppierungsattribute die Rolle eines Fremdschlüssels im Verbund einnehmen Beispiel: SELECT V.Zeit_ID, V.Geo_ID, SUM(Umsatz) FROM Verkauf V, Zeit, Geographie WHERE Verkauf.Zeit_ID=Zeit.Zeit_ID AND Verkauf.Geo_ID=Geographie.Geo_ID AND Jahr < 2006 AND Bundesland <> THÜR GROUP BY V.Zeit_ID, V.Geo_ID Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 16 Anfrageverarbeitung und -optimierung Invariantes Gruppieren /2 Optimierung des GROUP BY A,Z R B, Y S γ A;F(Z) R.A=S.B γ A;F(Z) R.A=S.B π B σ P(Y) σ P(Y) R S R S Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 17 Anfrageverarbeitung und -optimierung Frühzeitiges Vorgruppieren Optimierung des GROUP BY Invariantes Gruppieren: restriktive Vorbedingung selten anwendbar Idee: Einfügen eines zusätzlichen Gruppierungsoperators vor einen Verbund (ähnlich Projektion) Anwendbar, wenn Gruppierungsbedingung enthält Verbundattribute aggregierte Attribute beziehen sich nicht auf Attribute des Verbundpartners Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 18 168 Uni Magdeburg, WS 2007/08

10 Anfrageverarbeitung und -optimierung Anfrageverarbeitung und -optimierung Optimierung des GROUP BY Frühzeitiges Vorgruppieren /2 Beispiel: SELECT Jahr, Stadt, SUM(Umsatz), COUNT(Umsatz) FROM Verkauf, Zeit, Geographie WHERE Verkauf.Zeit_ID = Zeit.Zeit_ID AND Verkauf.Geo_ID = Geographie.Geo_ID GROUP BY Jahr, Stadt Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 19 10 Anfrageverarbeitung und -optimierung Optimierung des GROUP BY Frühzeitiges Vorgruppieren /3 A,C,Z R B, D S γ C,D;F(Z) R.A=S.B γ C,D;F(Z) R.A=S.B R S γ A,C;F(Z) R S Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 20 Anfrageverarbeitung und -optimierung Optimierung des GROUP BY Frühzeitiges Vorgruppieren /4 Außerdem notwendig: Anpassung der Aggregationsfunktionen γ Jahr,Stadt; γ Jahr,Stadt; SUM(Umsatz),COUNT(Umsatz) SUM($1),SUM($2) Verkauf Zeit Geographie γ Jahr,Geo_ID; $1=SUM(Umsatz), $2=COUNT(Umsatz) Geographie Verkauf Zeit Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 21 Uni Magdeburg, WS 2007/08 169

10 Anfrageverarbeitung und -optimierung Anfrageverarbeitung und -optimierung Optimierung des GROUP BY Implementierung des Gruppierungsoperators Implementierung von GROUP BY Realisierung von OLAP-Funktionen Berechnung von CUBE Iceberg-Cubes Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 22 Anfrageverarbeitung und -optimierung GROUP BY-Implementierungen Optimierung des GROUP BY Sortierungsbasiert Vorsortierung der Relation bzw. sortiertes Lesen (Index-Scan) Ablauf 1 Sortierung 2 Durchlaufen der Tupelliste, Aggregieren der Werte und Ausgabe des Aggregatwertes bei Gruppenwechsel Hashbasiert Hashfunktion über Gruppierungsattribute h(g 1,..., G n ) Ablauf 1 Einordnen der Tupel in Hashtabelle mittels h(g 1,..., G n) 2 Durchlaufen der Hashtabelle und Anwendung der Aggregatfunktionen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 23 Anfrageverarbeitung und -optimierung Optimierung des GROUP BY Realisierung von OLAP-Funktionen Sequenzielle Auswertung Für jede OLAP-Funktion: Eingabedaten entsprechend OVER()-Klausel sortieren Aggregationsfunktion anwenden Sortierung nach Attributen der globalen Gruppierung Attributen der OVER()-Klausel (PARTITION BY und ORDER BY) Bei mehreren OLAP-Funktionen in einer Anfrage Sequenzielle Auswertung, d.h. eventuell wiederholtes Sortieren bei ggf. Nutzung von gemeinsamen Sortierpräfixen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 24 170 Uni Magdeburg, WS 2007/08

10 10 Anfrageverarbeitung und -optimierung Anfrageverarbeitung und -optimierung Optimierung des GROUP BY Realisierung von OLAP-Funktionen /2 globale Gruppierungsattribute G 1... G n, lokale Sortierungsattribute aus OVER(): O 1... O p Aggregatfunktion AGG(), lokale Partitionierungsattribute (opt.) P 1... P m, untere und obere Fenstergrenze (opt.) W u... W o sort(g 1,..., G n, P 1,..., P m, O 1,..., O p); while (t = next_tuple()) { if (t hat gleiche Werte bzgl. G 1... G n, P 1... P m wie letztes Tupel) aggrlist := concat(aggrlist, t); else { // Partitionswechsel for i := 1 to length(aggrlist) { // Berechne absolute Fenstergrenzen low, high aggrval := AGG({aggrlist[low]...aggrlist[high]}); output(g 1,..., G n, P 1,..., P m, O 1,..., O p, aggrval); } aggrlist := (); } } Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 25 Anfrageverarbeitung und -optimierung Berechnung des CUBE Berechnung des CUBE: naiver Ansatz separate Berechnung der einzelnen Gruppierungskombinationen abschließende Vereinigung UNION γ() γ(a) γ(b) γ(c) γ(a,b) γ(a,c) γ(b,c) γ(a,b,c) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 26 Anfrageverarbeitung und -optimierung Berechnung des CUBE CUBE und Aggregationsfunktionen Algebraische Funktionen ermöglichen Berechnung weniger detaillierter Aggregrate aus höher detaillierten Aggregaten (mehr Dimensionen) Partielle Ordnung ( Gitter ) der GROUP BY-Operationen des CUBE Aggregationsgitter GROUP BY ist Kind eines anderen GROUP BY wenn Eltern-Operation zur Berechnung der Kind-Operation genutzt werden kann Ableitbarkeit Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 27 Uni Magdeburg, WS 2007/08 171

10 Anfrageverarbeitung und -optimierung Ableitbarkeit Anfrageverarbeitung und -optimierung Berechnung des CUBE Ableitbarkeit von Gruppierungskombinationen G i Direkte Ableitbarkeit: G 2 ist von G : 1 ableitbar, wenn G 2 hat genau ein Attribut weniger als G 1 : G 2 G 1 und G 2 = G 1 1 oder in G 1 wird genau ein Attribut A i durch B i ersetzt, wobei gilt: A i B i Aggregationsgitter Ableitbarkeit: Gruppierungskombination G 2 ist innerhalb eines Aggregationsgitters von G 1 ableitbar, wenn Pfad von G 1 nach G 2 existiert Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 28 Aggregationsgitter Anfrageverarbeitung und -optimierung Berechnung des CUBE 4 ABCD 3 2 1 0 ABC ABD ACD BCD AB AC AD BC BD CD A B C D all Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 29 Anfrageverarbeitung und -optimierung Berechnung von CUBE Berechnung des CUBE Idee: Nutzung der Gitter-Sicht (Ableitbarkeit) GROUP-BYs mit gemeinsamen Gruppierungsattributen können Partitionen, sortierte Bereiche etc. gemeinsam nutzen Verfahren basierend auf Sortierung: PipeSort basierend auf Hashing: PipeHash Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 30 172 Uni Magdeburg, WS 2007/08

10 10 Anfrageverarbeitung und -optimierung Anfrageverarbeitung und -optimierung Optimierte Berechnung: Prinzip Berechnung des CUBE γ() UNION γ(a) γ(b) γ(c) γ(a,b) γ(a,c) γ(a,b,c) γ(b,c) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 31 Anfrageverarbeitung und -optimierung Optimierungspotenzial Berechnung des CUBE Smallest-parent Berechnung eines GROUP-BY auf Basis des minimalen zuvor berechneten Eltern-GROUP-BY Cache-results Zwischenspeichern (im Hauptspeicher) der Ergebnisse eines GROUP-BY für nachfolgende GROUP-BY (Bsp.: ABC AB) Amortize-scans gemeinsames Berechnen mehrerer GROUP-BY in einem Scan (Bsp.: ABC, ACD, ABD, BCD aus ABCD) Share-sorts für Sortier-basierte Verfahren: Zwischenspeichern und gemeinsames Nutzen von sortiertem Bereichen Share-partitions für Hash-basierte Verfahren: Zwischenspeichern und gemeinsames Nutzen von Partitionen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 32 Anfrageverarbeitung und -optimierung Berechnung des CUBE Bedeutung der Sortierreihenfolge Annahme: Gruppierung auf Basis von Sortierung erfordert u.u. Umsortierung Beispiel: Produkt Jahr Region Verkauf Rotwein 2005 SANH 230 Rotwein 2005 THÜ 210 Rotwein 2006 SANH 200............ Bier 2005 SANH 568 Umsortierung für Gruppierung (Produkt, Region) Berücksichtigung der Sortierkosten in einem Kostenmodell Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 33 Uni Magdeburg, WS 2007/08 173

10 Anfrageverarbeitung und -optimierung Kostenmodell Anfrageverarbeitung und -optimierung Berechnung des CUBE Kostenarten S-Kosten (Still to sort): Berechnung von GROUP-BY j aus GROUP-BY i, wenn i noch nicht sortiert ist A-Kosten (Already sorted): Berechnung von GROUP-BY j aus GROUP-BY i, wenn i bereits sortiert ist Abschätzung auf Basis der Datenverteilung, Systemparameter etc. Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 34 PipeSort Anfrageverarbeitung und -optimierung Berechnung des CUBE Eingabe: Suchgitter Graph mit Knoten zur Repräsentation von GROUP-BY (Aggregationsgitter) Gerichtete Kante verbindet GROUP-BY i mit GROUP-BY j i ist Elternknoten von j j kann generiert werden aus i j hat genau ein Attribut weniger als i Ebene k bezeichnet alle GROUP-BYs mit k Attributen Annotation von Kanten e ij mit A- und S-Kosten Ausgabe: Subgraph des Suchgitters Jeder Knoten ist mit einem einzigen Elternknoten verbunden Bestimmt Sortierreihenfolge bei Erhalt des Pipelining spezieller aufspannender Baum Ziel: derartiger Subgraph mit minimaler Summe der Kantenkosten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 35 Pipesort: Beispiel Anfrageverarbeitung und -optimierung Berechnung des CUBE A B C AB AB AC AC BC BC 2 10 5 12 13 20 Pipeline Sortierung A B C AB AB AC AC BC BC 2 10 5 12 13 20 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 36 174 Uni Magdeburg, WS 2007/08

10 10 Anfrageverarbeitung und -optimierung Anfrageverarbeitung und -optimierung PipeSort: Algorithmus Berechnung des CUBE Zurückführen auf bekannten Graphen-Algorithmus Ebenenweises Vorgehen: k = 0..N 1 (N: Anzahl der Attribute) Transformation der Ebene k + 1 durch k Kopien jedes Knoten Jeder kopierte Knoten hat Verbindungen mit den gleichen Knoten wie Original Kantenkosten für Originalknoten: A(e ij ), sonst: S(e ij ) Graph mit minimalen Kosten suchen Paarbildung und Minimierung der Gesamtkosten ( ungarische Methode weighted bipartite matching problem) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 37 Anfrageverarbeitung und -optimierung PipeSort: Sortierreihenfolge Berechnung des CUBE jeder Knoten h in Ebene k ist verbunden mit einem Knoten g in Ebene k + 1 h g über A()-Kante: h bestimmt Attributreihenfolge für Sortierung von g h g über S()-Kante: g wird neu sortiert für Berechnung von h Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 38 Anfrageverarbeitung und -optimierung Pipesort: Sortierplan Berechnung des CUBE all C B A D CB BA AC DB AD CD CBA BAD ACD DBC CBAD Relation Pipeline Sortierung Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 39 Uni Magdeburg, WS 2007/08 175

10 Anfrageverarbeitung und -optimierung Iceberg-Cubes Anfrageverarbeitung und -optimierung Berechnung des CUBE Idee: Ausnutzung der Monotonie von Aggregationen falls eine Aggregationsgruppe die COUNT-Bedingung nicht erfüllt, dann wird diese auch nicht durch Gruppen mit zusätzlichen Attributen erfüllt Ansatz: Bottom-Up-Konstruktion eines Cubes und Minimal-Support-Pruning (ähnlich Apriori) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 40 Anfrageverarbeitung und -optimierung Iceberg Cube bottom up Berechnung des CUBE ABCD ABC ABD ACD BCD AB AC AD BC BD CD A B C D all Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 41 Anfrageverarbeitung und -optimierung Iceberg-Cube: Berechnung Berechnung des CUBE BottomUpCube(input, dim): aggregate(input); write(outputrec); for (d=dim; d<numdims; d++) { C := cardinality[d]; /* Kardinalität der Dimension */ Partition(input, d, C, datacount[d]); k := 0; for (i=0; i < C; i++) { c := datacount[d][i]; /* Größe der Partition */ if (c >= minsup) { outputrec.dim[d] := input[k].dim[d]; BottomUpCube(input[k...k+c], d+1); } k += c; } outputrec.dim[d] = ALL; } Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 42 176 Uni Magdeburg, WS 2007/08

10 10 Anfrageverarbeitung und -optimierung Anfrageverarbeitung und -optimierung Zusammenfassung Berechnung des CUBE spezielle Charakteristika von DW-Anfragen erfordern spezifische Optimierungsmaßnahmen Rewriting-Techniken: Verbundreihenfolge beim Star-Join Push-down von Gruppierungen Operator-Implementierungen CUBE und Iceberg-CUBE OLAP-Funktionen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 11 43 Teil XII Materialisierte Sichten Uni Magdeburg, WS 2007/08 177

11 Materialisierte Sichten 11.1 Begriff und Motivation 11.2 Anfragebeantwortung mit materialisierten Sichten 11.3 Auswahl materialisierter Sichten 11.4 Aktualisierung materialisierter Sichten 11.5 Materialisierte Sichten in DBMS 178

11 Materialisierte Sichten Materialisierte Sichten Materialisierte Sichten 1 Begriff und Motivation 2 Anfragebeantwortung mit materialisierter Sichten 3 Auswahl materialisierter Sichten 4 Aktualisierung materialisierter Sichten 5 Materialisierte Sichten in DBMS Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 1 Materialisierte Sichten Materialisierte Sichten Begriff und Motivation Vielzahl gleicher oder ähnlicher Anfragen auf immer denselben Relationen Einführung von Sichten zur Anfragevereinfachung überwiegend lesender Zugriff auf weitgehend stabiler Datenbasis Materialisierung der Sichten ggf. sinnvoll seltene Änderungen in der Datenbasis bedeuten geringen Aufwand bei der Aktualisierung der Sichten Materialisierung reduziert Berechnungsaufwand bei wiederkehrenden Anfrageteilen System erkennt automatisch Anfrageteile, deren (Teil-) Ergebnisse durch materialisierte Sichten bereits zur Verfügung stehen Auch: materialized views (MV), summary tables 11 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 2 Materialisierte Sichten Begriff und Motivation Materialisierte Sichten: Problembereiche Auswahl materialisierter Sichten Abwägung zwischen folgenden Kriterien: Speicherbedarf für redundant gehaltene Daten zusätzlicher Verwaltungsaufwand durch Materialisierung (einschl. Analyseaufwand für Auswahl der zu materialisierenden Sichten) erwartete Reduktion von Antwortzeiten Wartung materialisierter Sichten Änderungen im Datenbestand erfordern Neuberechnung der materialisierten Sicht oder Update-Propagation Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 3 Uni Magdeburg, WS 2007/08 179

11 Materialisierte Sichten Problembereiche /2 Materialisierte Sichten Begriff und Motivation Existenz und Konstruktion einer korrekten Anfrageersetzung im allgemeinen Fall bereits ein schwieriges Problem (NP-hart) wenn Restriktionen in der materialisierten Sicht nicht mit der Anfrage übereinstimmen Einfügen geeigneter Kompensationsoperationen hinsichtlich der Restriktionsbedingungen Nachweis der logischen Implikation Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 4 Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten Verwendung materialisierter Sichten Beispiel: Anfrage Q bei vorhandener Sicht M: Anfrage Q: γ ProdGruppe,Region; γ ProdGruppe,Geo_ID; SUM(Verkäufe),SUM(Einkäufe) SUM(Verkäufe) σ P Verkauf Produkt σ V σ P σ G Materialisierte Sicht M Verkauf Produkt Geographie Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 5 Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten Verwendung materialisierter Sichten /2 Einsetzen der vorhandenen Sicht M in Anfrage Q durch Umschreiben ( Rewriting ) Anfrage Q Anfrage Q': γ ProdGruppe,Region; SUM(Verkäufe) σ F σ G M Geographie Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 6 180 Uni Magdeburg, WS 2007/08

11 Materialisierte Sichten Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten Verwendung materialisierter Sichten /3 Voraussetzung für derartige Anfrageumformulierungen unter Verwendung materialisierter Sichten: umformulierte Anfrage ist äquivalent zur ursprünglichen, d.h. sie liefert dasselbe Anfrageergebnis 2 Problemstellungen Existenz einer Anfrageersetzung (Query Containment) eigentliche Anfrageumformung (Query Rewriting) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 7 Query Containment Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten 11 Geg.: Anfragen Q 1 und Q 2 Enthaltensein Q 1 ist in Q 2 enthalten (Q 1 Q 2 ), wenn für alle Datenbankinstanzen D die Ergebnismenge von Q 1 eine Teilmenge des Ergebnisses von Q 2 ist: Q 1 (D) Q 2 (D) Äquivalenz Q 1 und Q 2 sind äquivalent, wenn Q 1 Q 2 und Q 2 Q 1 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 8 Materialisierte Sichten Query Containment-Problem Anfragebeantwortung mit materialisierter Sichten unentscheidbar für beliebige relationale Kalküle bzw. Anfragen in Relationenalgebra für konjunktive Anfragen entscheidbar, aber NP-vollständig durch Beschränkung auf SPJ-Anfragen (Konstantenselektion, natürlicher Verbund, Projektion) auch in polynomialer Zeit Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 9 Uni Magdeburg, WS 2007/08 181

11 Materialisierte Sichten Query Rewriting Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten Geg.: Anfrage Q, Menge von Sichtdefinitionen V 1,..., V n Ges.: Anfrage Q, die nur auf Sichten aus V 1,..., V n zugreift (FROM-Klausel) (Zugriff auf Basisrelationen ist konzeptionell keine Einschränkung!) Äquivalente Umschreibung Q ist äquivalente Umschreibung bzgl. V 1,..., V n, wenn (1) Q verweist nur auf Sichten aus {V 1,..., V n } und (2) Q ist äquivalent zu Q Maximal-enthaltene Umschreibung es existiert keine weitere Umschreibung Q 1, so dass Q Q 1 Q und Q 1 ist nicht äquivalent zu Q Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 10 Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten Query Rewriting mit materialisierten Sichten Rewriting für SPJ-Anfragen, Chaudhuri et al. 1994 Definition von MVs als Regel L(x, y) V(x) mit Sicht V, konjunktiver Anfrage L und Projektionsvariablen x der Sicht Prinzip 1 Anfrage Q in kanonische Form überführen 2 Ersetzungsmöglichkeiten der MVs unter Anwendung der Regeln prüfen alternative (äquivalente) Anfragen 3 Anfrageoptimierung (Plan-Enumeration) zur kostenbasierten Auswahl Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 11 Intuitiver Ansatz Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten Finde Teilausdruck in Q, der zu L einer Regel L(x, y) V(x) korrespondiert und ersetze diesen durch V aber: Verkauf(produkt, stadt, preis, datum), Region(stadt, einw, land) RegVerkauf(produkt, preis, land) Anfrage: Q(produkt) :- Verkauf(produkt, stadt, preis, datum), datum > 1.1.2007, Region(stadt, einw, Thüringen ) umgeschriebene Anfrage: Q(produkt) :- RegVerkauf(produkt, preis, Thüringen ), datum > 1.1.2007 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 12 182 Uni Magdeburg, WS 2007/08

11 Materialisierte Sichten Materialisierte Sichten Problem syntaktischer Ersetzung Anfragebeantwortung mit materialisierter Sichten Verkauf(produkt, stadt, preis, datum), preis > 100 TeureVerkäufe(produkt, stadt, preis) Q(produkt) :- Verkauf(produkt, stadt, preis, datum), preis > 200, Region(stadt, einw, land) keine syntaktische Ersetzung möglich, jedoch Q(produkt) :- TeureVerkäufe(produkt, stadt, preis), preis > 200, Region(stadt, einw, land) erfordert Auswertung der logischen Implikation Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 13 Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten Sichere Ersetzung 11 Erweiterung der Regeln um Ungleichungs-Constraints L(x, y), I(x) V(x) mit I(x) ist Konjunktion von Constraints (inkl. Arithmetik) über Projektionsvariablen Bsp.: I(produkt,stadt,preis) preis > 100 Suche nach ersetzbaren Teilausdrücken erfordert Umbenennung der Variablen in der Regel Geg.: Regel r mit Variablen V r, Anfrage Q mit Variablen V Q und Konstanten C Q gültige Umbenennung σ bzgl. Q ist Symbol-Mapping V r V Q mit (a) wenn v V r ist Projektionsvariable, dann σ(v) V Q C Q (b) wenn v V r keine Projektionsvariable, dann σ(v) V Q σ(v) σ(v ) mit v V r \ {v} auch Containment Mapping Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 14 Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten Sichere Ersetzung /2 Geg. Menge R von Regeln zu Q existiert sicheres Auftreten von R, wenn für Regel r R eine gültige Umbenennung existiert, so dass umbenannte Regel folgende Form hat L(x, y), I(x) V(x) dabei muss gelten (1) Anfrage Q hat Form Q(u) L(x, y), I (x), G(v) x, y, u, v sind Variablenmengen evtl. mit gemeinsamen Variablen, y ist disjunkt zu x, u, v (2) I (x) I(x) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 15 Uni Magdeburg, WS 2007/08 183

11 Materialisierte Sichten Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten Sichere Ersetzung /3 Sichere Ersetzung ist dann Q (u) V(x), I (x), G(v) I (x) I(x) ist nicht trivial; in I (x) bleibt nur Teil der Constraints Anfrageäquivalenz bzgl. Menge von Rewriting-Regeln Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 16 Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten Anfrageplanung 1 Erstellung einer Abbildungstabelle mit allen sicheren Ersetzungen zu einer Anfrage [σ(l), σ(v)] [ deletelist, addliteral ] Region(stadt, einw, land), einw > 100 Großstadt(stadt, land) Verkauf(produkt, stadt, preis, datum), Region(stadt, einw, Thüringen ) ThürVerkauf(produkt, stadt, preis, einw) Q(produkt) :- Verkauf(produkt,stadt,preis,datum), Region(stadt,einw, Thüringen ), einw > 100 Abbildungstabelle: ({ Region(stadt, Thüringen, einw), einw > 100 }, Großstadt(stadt, Thüringen )) ({ Verkauf(produkt, stadt, preis, datum), Region(stadt, einw, Thüringen ) }, ThürVerkauf(produkt, stadt, preis, einw)) 2 kostenbasierte Auswahl als Teil der Plan-Enumeration Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 17 Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten Erweiterung um Aggregationen: Generalized Projections verallgemeinerte Projektionen (Gupta, Harinarayan, Quass, 1995) Idee: SELECT A FROM R GROUP BY A kann äquivalent ersetzt werden durch SELECT DISTINCT A FROM R entspricht Projektion π der Relationenalgebra muss noch für die Behandlung von Aggregationsfunktionen erweitert werden: π A1,...,A n,agg(s)(r) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 18 184 Uni Magdeburg, WS 2007/08

11 Materialisierte Sichten Materialisierte Sichten Generalized Projections Anfragebeantwortung mit materialisierter Sichten damit Reduktion des Umformungsproblem auf die Relationenalgebra (mit erweiterter Projektion GP) ferner: Überführung aller Anfrageausdrücke (einschl. der der materialisierten Sichten) in eine Normalform σ h πσ l χ mit generalisierten Projektionen π, Verbundoperationen χ und konjunktiven Selektionsbedingungen h und l Anwendung von Transformationsregeln Push-down von GPs Pull-up von GPs Verschmelzen bzw. Aufteilen von GPs dabei Berücksichtigung der Duplikatsensitivität (DISTINCT, MAX, MIN vs. SUM, COUNT) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 19 Materialisierte Sichten Rewriting-Algorithmus Anfragebeantwortung mit materialisierter Sichten 11 Geg.: Anfrage Q, Sicht V; Ges.: Q (V) = Q (1) Push-down von σ h zu σ l für Q und V (2) wenn Bedingung in σ l (V) restriktiver als σ l (Q) Abbruch (a) Prüfe ob GP(Q) und GP(V) die gleichen Gruppierungskomponenten haben; falls Komponenten von GP(Q) der Komponenten von GP(V) Abbruch wenn σ h (V) = dann Split von GP((Q) in GP bot (Q) (Gruppierungskomponenten von GP(V)) und GP top (Q) (Berechnungen von GP(Q)) (b) Prüfe ob Aggregate aus GP bot (Q) aus Aggregaten von GP(V) ableitbar sind; anderenfalls Abbruch (3) Bedingungen in σ l (Q), die nicht aus σ l (V) impliziert werden, aus GP bot (Q) herausziehen; falls nicht möglich Abbruch (4) wenn Bedingungen in σ h (V) restriktiver als σ h (Q) Abbruch (5) Ergebnis: transformierte Anfrage Q mit Teilbaum GP bot (Q) ersetzt durch V Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 20 Query Graph Model Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten in DB2 verwendete Lösung Anfrage repräsentiert als DAG mit Basistabellen als Blätter Tabellenoperatoren als interne Knoten Knoten = Box Knotentypen SELECT: Select-Project-Join-Teil einer Anfrage (inkl. WHERE- und HAVING-Bedingungen) GROUP-BY: Gruppierung und Aggregation Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 21 Uni Magdeburg, WS 2007/08 185

11 Materialisierte Sichten QGM: Beispiel Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten Ausgabe Region, Monat, Summe SELECT SELECT G.Region, Z.Monat, SUM(Verkaeufe) FROM Verkauf V, Zeit Z, Geographie G WHERE V.Zeit_ID = Z.Zeit_ID AND V.Geo_ID = G.Geo_ID AND G.Land = D AND Z.Jahr = 2006 GROUP BY G.Region, Z.Monat HAVING SUM(Verkaeufe) > 10000 Prädikat Summe > 10000 Region, Monat, sum(...) as Summe Region, Monat Region, Monat, Verkäufe Land='D',Jahr=2006 GROUP-BY SELECT Verkauf Zeit Geographie Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 22 Query Matching Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten Idee: Übereinstimmung zwischen Paaren von QGM-Box E matches R QGM-Graph G(E, R) kann gebildet werden mit G(E, R) beinhaltet G(R) mit Wurzel R und G(E, R) ist äquivalent zu G(E) G(E, R) G(R) ist Kompensation: Anwendung auf R liefert gleiches Ergebnis wie E G(E) E Subsumee match G(E,R) Kompensationswurzel R Subsumer Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 23 Query Matching /2 Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten Betrachtung von Graphmustern zum Matching Bottom-Up-Durchlauf des Query-Graphen grundsätzlich 1 mind. eines der Kinder eines Subsumee muss mit einem Subsumer-Kind übereinstimmen 2 Subsumer und Subsumee müssen vom selben Typ sein Muster: exact child matches non-exact child matches: Berücksichtigung der Kompensationen bei Nichtübereinstimmungen cube matches Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 24 186 Uni Magdeburg, WS 2007/08

11 Materialisierte Sichten Exact Child Matches Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten SELECT: E (Subsumee) und R (Subsumer) sind SELECT-Boxen mit 1:1-Übereinstimmung der Kinder jedes E-Kind stimmt mit max. einem R-Kind überein keine zwei E-Kinder stimmen mit dem selben R-Kind überein (kein Self-Join!) zusätzliche Verbunde sind verlustlos Ausgabeattribute von E sind aus R ableitbar R-Prädikate, die nicht Extra-Verbundprädikate sind, sind weniger einschränkend als korrespondierende E-Prädikate, z.b. R: x > 10 und E: x > 20 Kompensation: Rejoin der Kinder SELECT-Box mit Rejoin-Prädikat und Anwendung der E-Prädikate, die nicht für R existieren Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 25 Materialisierte Sichten Exact Child Matches: Beispiel Anfragebeantwortung mit materialisierter Sichten 11 SELECT V.Verkäufe, P.Name, G.Stadt FROM Verkauf V, Profukt P, Geographie G WHERE V.Prod_ID=P.Prod_ID AND V.Geo_ID=G.Geo_ID AND G.Land ='THÜR' AND P.Preis>400 SELECT Verkäufe, Name, G.Stadt FROM MV, Geographie G WHERE MV.Geo_ID=G.Geo_ID AND G.Land ='THÜR' AND Preis>400 Verkäufe,Name, SELECT Stadt SELECT Verkäufe,Name, Geographie Stadt Preis>400, Land='THÜR' match Verkauf Produkt Geographie Preis>400, Land='THÜR' Verkäufe,Name, Datum,Geo_ID Preis>100 SELECT SELECT V.Verkäufe, P.Name, Z.Datum, V.Geo_ID FROM Verkauf V, Produkt P, Zeit Z WHERE V.Prod_ID=P.Prod_ID AND V.Zeit_ID=Z.Zeit_ID AND P.Preis>100 Verkauf Produkt Zeit Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 26 Exact Child Matches /2 Materialisierte Sichten Anfragebeantwortung mit materialisierter Sichten GROUP BY: E (Subsumee) und R (Subsumer) sind GROUP-BY-Boxen und exakte Übereinstimmung ihrer Kinder jedes E-Gruppierungsattribut ist äquivalent zu einem R-Gruppierungsattribut wenn Gruppierungsattribute exakt übereinstimmen E-Aggregate stimmen mit R-Aggregaten überein sonst jedes E-Aggregat ist aus einem R-Aggregat ableitbar Kompensation: spezielle Ableitungsregeln für Aggregatfunktionen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 27 Uni Magdeburg, WS 2007/08 187

11 Materialisierte Sichten Materialisierte Sichten Exact Child Matches: Beispiel /2 Anfragebeantwortung mit materialisierter Sichten SELECT year(datum) AS Jahr, SUM(Verkäufe*1.4) AS Gesamt FROM GesamtVerkauf GROUP BY year(datum) SELECT Jahr, SUM(Gesamt) AS Gesamt FROM MV GROUP BY Jahr GROUP-BY Jahr,SUM(v) GROUP BY Jahr,SUM(v) SELECT Jahr year(datum) AS Jahr, Verkäufe*1.4 AS v GROUP BY match SELECT match Jahr,Monat, SUM(v) Jahr,Monat year(datum) AS Jahr, month(datum) AS Monat, Verkäufe*1.4 AS v Jahr SELECT year(datum) AS Jahr, month(datum) AS Monat, SUM(Verkäufe*1.4) AS Gesamt FROM GesamtVerkauf GROUP BY year(datum), month(datum) GesamtVerkauf GesamtVerkauf Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 28 Materialisierte Sichten Auswahl materialisierter Sichten Auswahl materialisierter Sichten erfordert den jeweiligen Auswertekontext für Anfragen mit Aggregationsfunktionen: Eigenschaften der Aggregationsfunktionen: Additivität (z.b. SUM) bzw. Semi-Additivität (z.b. COUNT) Berücksichtigung der Menge der Gruppierungsattribute, da diese eine Partitionierung des Datenbestands festlegen: Aggregationsgitter Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 29 Aggregationsgitter Materialisierte Sichten Auswahl materialisierter Sichten Aggregationsgitter repräsentiert Teilmengenverband über die Gruppierungsattribute (aggregation lattice) Pfeile geben an, welche Aggregationen bzw. Gruppierungen aus welchen anderen berechnet werden können, z.b: Gruppierung nach A 2 kann aus der Gruppierungen nach (A 1, A 2 ), (A 2, A 3 ), (A 1, A 2, A 3 ) berechnet werden Zahl der Knoten im Aggregationsgitter wächst exponentiell mit der Zahl der Gruppierungsattribute (Dimensionen) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 30 188 Uni Magdeburg, WS 2007/08

11 Materialisierte Sichten Materialisierte Sichten Aggregationsgitter: Beispiel Auswahl materialisierter Sichten 3 Gruppierungsattribute A 1, A 2, A 3 (z.b. Monat, Region, Produktgruppe) () (A 1 ) (A 2 ) (A 3 ) (A 1,A 2 ) (A 1,A 3 ) (A 2,A 3 ) (A 1,A 2,A 3 ) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 31 Aggregationsgitter /2 Materialisierte Sichten Auswahl materialisierter Sichten 11 jeder Knoten im Aggregationsgitter entspricht einer Möglichkeit, eine materialisierte Sicht zu bilden aufgrund der exponentiellen Anzahl an potentiell materialisierbaren Sichten muss Auswahl getroffen werden (aus Speicherplatz- sowie Aufwandsgründen) oder: das Aggregationsgitter muss reduziert werden funkt. Abhängigkeiten zwischen Gruppierungsattributen erlauben Reduktion des Aggregationsgitters wenn A 1 A 2, repräsentieren Knoten (A 1 ) und (A 1, A 2 ) sowie (A 1, A 3 ) und (A 1, A 2, A 3 ) jeweils das gleiche funktionale Abhängigkeiten bestehen z.b. zwischen den verschiedenen Ebenen einer Klassifikationshierarchie: Produkt Produktgruppe Produktkategorie Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 32 Materialisierte Sichten Auswahl materialisierter Sichten Statische Auswahl material. Sichten Algorithmus nach Harinarayan, Rajaraman und Ullman; SIGMOD 96 berücksichtigt das historische (aber nicht das aktuelle) Anfrageverhalten im Gegensatz zu dynamischen Verfahren notwendige Vorüberlegungen zu Aufwand und Nutzen materialisierter Sichten: Kosten einer Materialisierungskonfiguration Nutzen einer Materialisierungskonfiguration Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 33 Uni Magdeburg, WS 2007/08 189

11 Materialisierte Sichten Kostenfunktion Materialisierte Sichten Auswahl materialisierter Sichten Kostenfunktion c q (n) liefert Kosten zur Berechnung der Anfrage q aus dem zu n korrespondierenden Gitterpunkt im Aggregationsgitter, falls q aus der zu n gehörenden Aggregationskombination berechenbar ist andernfalls c q (n) = Anfragekostenfunktion c q (n) ist monoton, wenn für zwei beliebige Knoten n i, n j aus einem Aggregationsgitter gilt: (mit n Größe des Gitterpunkts) n i < n j c q (n i ) < c q (n j ) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 34 Kostenfunktion /2 Materialisierte Sichten Auswahl materialisierter Sichten Monotonie besagt: Kosten zur Beantwortung einer Anfrage bzgl. einer Aggregationskombination steigen mit der Größe der zu verarbeitenden Einheiten dieser Kombination an Berechnungskosten einer Anfrage basierend auf einem Knoten n i sind kleiner als die zu n j, falls n j aus n i abgeleitet werden kann Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 35 Materialisierte Sichten Auswahl materialisierter Sichten Kosten einer Materialisierungskonfiguration Menge der materialisierten Gitterpunkte M = {n 1,..., n k}; Menge von Anfragen Q = {q 1,..., q m} (mit f (q i) Häufigkeit von q i) Aufwand zur Beantwortung einer Anfrage q bzgl. M: c q(m) = min n Mc q(n) Gesamtanfragekosten für Q basierend auf M: C(Q, M) = f (q) c q(m) q Q Gesamtaktualisierungskosten bei lokalen Aktualisierungskosten u(n) und Aktualisierungsrate h(n) für einen materialisierten Gitterpunkt n: U(M) = n M h(n) (n) Gesamtkosten einer Gruppierungskombination zur Auswertung einer Menge von Anfragen: C gesamt(q, M) = C(Q, M) + U(M) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 36 190 Uni Magdeburg, WS 2007/08

11 Materialisierte Sichten Materialisierte Sichten Auswahl materialisierter Sichten Nutzen einer Materialisierungskonfiguration Sei M die Menge der bereits materialisierten Gitterknoten und Q eine Menge von Anfragen Nutzen (benefit) eines zusätzlich materialisierten Gitterknotens n { C Q (M) C Q (M {n}) falls C Q (M {n}) < C Q (M) B Q (n, M) = 0 sonst Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 37 Materialisierte Sichten Statisches Auswahlverfahren Auswahlproblem ist NP-vollständig! Auswahl materialisierter Sichten Verfahren von Harinarayan, Rajaraman und Ullman basiert auf dem Greedy-Prinzip Idee: für ein vorgegebenes Aggregationsgitter wird iterativ immer der Knoten bestimmt, dessen Materialisierung den maximalen Nutzen bezgl. der Menge der schon zur Materialisierung ausgewählten Knoten bringt dabei ist zu berücksichtigen, dass der zur Materialisierung zur Verfügung stehende Speicherplatz beschränkt ist 11 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 38 Auswahl-Algorithmus Materialisierte Sichten Auswahl materialisierter Sichten Eingabe: Menge aller Gitterknoten N; erwarteter Speicheraufwand n bei Materialisierung von Knoten n N; maximaler Speichermehraufwand S Ausgabe: Menge der zu materialisierenden Knoten M begin M = {n Detaildaten } // Detaildaten sind bereits materialisiert s = 0 // noch kein zusätzlicher Speicheraufwand while (s < S) and M N // berechne Gitterpunkt mit max. Nutzen n ist der Gitterpunkt mit n (N \ M) : B Q (n, M) = max ni (N\M)(B Q (n i, M)) M = M {n} s = s + n // zusätzlich benötigter Speicher zur Materialisierung end return M endschallehn Data-Warehouse-Technologien Wintersemester 07/08 12 39 Uni Magdeburg, WS 2007/08 191

11 Materialisierte Sichten Materialisierte Sichten Analyse des Verfahrens Auswahl materialisierter Sichten Komplexität O(n 3 ) mit n Anzahl der Gitterknoten Aber Verbesserungen möglich, z.b.: bei Existenz funktionaler Abhängigkeiten zwischen Gruppierungsattributen reduziert sich die Zahl zu betrachtender Knoten Menge der zu betrachtenden Anfragen erlaubt schrittweise Konstruktion des Aggregationsgitters, so dass nur Knoten betrachtet werden, die von Anfragen benötigt werden Knoten, die eine bestimmte Reduktionsrate (bezogen auf das Datenvolumen) gegenüber detaillierteren Knoten nicht erreichen, werden a priori von der Materialisierung ausgeschlossen und im Algorithmus nicht betrachtet Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 40 Materialisierte Sichten Analyse des Verfahrens /2 Auswahl materialisierter Sichten Untere Schranke für Güte der schlechtesten Lösung: 63% gegenüber der optimalen Lösung (Angabe der Autoren; bezogen auf ursprünglichen Vorschlag) Ursprüngliches Verfahren berücksichtigt kein explizites Anfrageprofil; Annahme, dass jeder Knoten gleich häufig angefragt wird Verfahren berücksichtigt Restriktionsbedingungen, die in den Anfragen auftreten, in keiner Weise Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 41 Materialisierte Sichten Auswahl materialisierter Sichten Auswahl von Partitionen materialisierter Sichten Nicht alle Daten eines Aggregationsknoten werden gleich häufig angefragt, z.b. Aktuelle Daten werden zumeist häufiger angefragt, etwa Verkäufe im letzten Monat Wenn der Datenbestand z.b. 24 Monate umfasst und 80% der Anfragen nur den letzten Monat betreffen, würde die vollständige Materialisierung unverhältnismäßig viel Speicher benötigen Bei Partitionierung nach Monaten und nur Materialisierung der Daten des letzten Monats würden mit 4 5% des Speicheraufwands 80% der Anfragen unterstützt Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 42 192 Uni Magdeburg, WS 2007/08

11 Materialisierte Sichten Materialisierte Sichten Auswahl von Partitionen /2 Auswahl materialisierter Sichten Zur Bestimmung, welche Partitionen materialisiert werden sollen, kann der zuvor behandelte Algorithmus erweitert werden Je nach Anfrageprofil können für jeden Aggregationsknoten unterschiedliche Partitionierungen (sowohl horizontal als auch vertikal) mit unterschiedlicher Auswahl zu materialisierender Partitionen bestimmt werden Spezialfall: vollständige Materialisierung einzelner Knoten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 43 Materialisierte Sichten Auswahl materialisierter Sichten Dynamische Auswahl materialisierter Sichten 11 Statische Auswahl nimmt an, dass ein festes, vorher bekanntes Anfrageprofil existiert basiert damit in der Regel auf dem Anfrageverhalten der Vergangenheit interaktive Komponente von OLAP-Anwendungen wird nicht berücksichtigt oft werden in einem iterativen Prozess Anfragen immer weiter konkretisiert, um bestimmte Zusammenhänge näher zu untersuchen Anfrageverhalten kann dadurch spontanen Änderungen unterliegen Änderungen der Daten führen zu einem schnellen Veralten materialisierter Sichten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 44 Materialisierte Sichten Semantisches Caching Auswahl materialisierter Sichten Pufferung (Zwischenspeichern) von Anfrageergebnissen im Hauptspeicher oder auf einer schnellen Platte Beschränkung des dafür verfügbaren Speichers bedingt Verdrängung Entscheidung über Verdrängung kann datenabhängig getroffen werden Wissen über das Anwendungsgebiet (hier: OLAP und dafür typisches Anfrageverhalten) kann ausgenutzt werden Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 45 Uni Magdeburg, WS 2007/08 193

11 Materialisierte Sichten Materialisierte Sichten Auswahl materialisierter Sichten Verdrängung materialisierter Sichten Mögliche Entscheidungskriterien: Zeit des letzten Zugriffs Referenzierungshäufigkeit Größe der materialisierten Sicht Kosten einer Neuberechnung oder Aktualisierung der materialisierten Sicht Anzahl der Anfragen, die in der Vergangenheit mit dieser Sicht hätten beantwortet werden können (oder wurden) Anzahl der Anfragen, die prinzipiell mit dieser Sicht beantwortet werden könnten Gewichtete Kombination dieser Kriterien sinnvoll! Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 46 Beispiel: Watchman Materialisierte Sichten Auswahl materialisierter Sichten DW-Cache Manager [Scheuermann, Shim, Vingralek; VLDB 96] Q i DBS RS i Zulassung RS i1 Basisdaten Benutzung RS i2 RSi4 RS i3 RS i5 Ersetzung Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 47 Watchman: Ablauf Materialisierte Sichten Auswahl materialisierter Sichten 1 Ergebnis RS i zu Anfrage Q i an Nutzer und Cache 2 Aufnahme in Cache anhand LNC-A-Verfahren ( least normalized cost admission ) prüfen 3 Falls zur Materialisierung zugelassen und nicht genug Speicher: zu ersetzende Ergebnisse ermitteln mithilfe von LNC-R ( replacement ) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 48 194 Uni Magdeburg, WS 2007/08

11 Materialisierte Sichten Watchman: Kennzahl Materialisierte Sichten Auswahl materialisierter Sichten Kennzahl für Zulassung/Ersetzung: Gewinn (profit) einer Materialisierung P(RS i ) = λ C(Q i) RS i Mit λ: durchschnittliche Referenzierungsrate von Q i C(Q i ): Kosten von Q i ohne Materialisierungen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 49 Watchman: LNC-A Materialisierte Sichten Auswahl materialisierter Sichten 11 Eingabe: RS i // Ergebnis der Anfrage Q i begin if (Referenzinfo R i noch nicht verfügbar) init_ref_info(r i ) end update_ref_info(r i ) // Zulassung, falls Gewinn von RS i größer als // Gewinn der zu verdrängenden Ergebnisse C := LNC-R( RS i ) if (P(RS i ) > P(C)) remove_from_cache(c) add_to_cache(rs i ) end end Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 50 Watchman: LNC-R Materialisierte Sichten Auswahl materialisierter Sichten Eingabe: S // freizugebender Speicherplatz Ausgabe: C // zu ersetzende Ergebnisse begin C := {} for i = 1 to n // Ergebnisse RS j pro Gruppe mit gleicher // Ref.häufigkeit nach Gewinn P(RS j ) aufsteigend // sortieren rs_list = sort_rs_by_profit(i) foreach RS j in rs_list C := C + {RS j } if ( C > S) return C end end return C end Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 51 Uni Magdeburg, WS 2007/08 195

11 Materialisierte Sichten Materialisierte Sichten Aktualisierung materialisierter Sichten Aktualisierung materialisierter Sichten Effiziente Aktualisierungsverfahren benötigt, die teure Rematerialisierung (Neuberechnung) vermeiden inkrementelle Aktualisierung Konsistenzproblem, da materialisierte Sichten im allgemeinen nicht unabhängig voneinander sind redundante Speicherung von Daten (oder daraus abgeleitete Aggregationen) in mehreren Sichten Aktualisierung einer Sicht führt zur Inkonsistenz Aktualisierung mehrerer Sichten benötigt ggf. viel Zeit, so dass zwischendurch ein inkonsistenter Zustand gesehen werden kann Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 52 Materialisierte Sichten Vollständige Aktualisierung Aktualisierung materialisierter Sichten Ansatz: gemeinsame Aktualisierung mehrerer Sichten (multi-query optimization) Idee: 1 Ableitung eines gemeinsamen Vorgängers (Basisanfrage) mit minimaler Extension 2 Berechnung beider Sichten auf Basis des Vorgängers Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 53 Einschränkungen Materialisierte Sichten Aktualisierung materialisierter Sichten Anpassung der Ergebnisattribute Basisanfrage muss alle Attribute liefern, die in Sichtanfragen referenziert werden (Projektion, Selektion, Gruppierung, Aggregation etc.) Anpassung der referenzierten Basisrelationen Basisanfrage muss gleiche Menge von Basisrelationen beinhalten (Ausnahme: verlustlose 1:n-Joins, Rückwärtsverbund) Anpassung der Prädikate Gemeinsame globale Prädikate in der Basisanfrage auswerten Anpassung der Gruppierungskombinationen aus Gruppierung der Basisanfrage müssen alle Kombinationen der Sichtanfragen ableitbar sein Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 54 196 Uni Magdeburg, WS 2007/08

11 Materialisierte Sichten Beispiel [Lehner02] Materialisierte Sichten Aktualisierung materialisierter Sichten CREATE MATERIALIZED VIEW matview1 AS SELECT p_brand, o_shipprio, SUM(l_quantity), COUNT(*) FROM lineitem, orders, part WHERE l_orderkey = o_orderkey AND l_partkey = p_partkey AND year(l_shipdate) = 2002 AND p_type = spc GROUP BY CUBE(p_brand, o_shipprio) CREATE MATERIALIZED VIEW matview2 AS SELECT p_container, o_shipprio, AVG(l_quantity), COUNT(*) FROM lineitem, orders, part WHERE l_orderkey = o_orderkey AND l_partkey = p_partkey AND year(l_shipdate) = 2002 GROUP BY p_container, o_shipprio Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 55 Materialisierte Sichten Beispiel: Basisanfrage Aktualisierung materialisierter Sichten 11 SELECT p_brand, p_container, p_type /* lokales Prädikat */, o_shipprio, SUM(l_quantity) AS $1, COUNT(*) AS $2 FROM lineitem, orders, part WHERE l_orderkey = o_orderkey AND l_partkey = p_partkey /* globales Prädikat */ AND year(l_shipdate) = 2002 GROUP BY GROUPING SETS((p_container, o_shipprio), /* lokales Prädikat */ (p_type, cube(p_brand, o_shipprio))) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 56 Materialisierte Sichten Beispiel: Aktualisierung für Sichten Aktualisierung materialisierter Sichten INSERT INTO matview1 ( SELECT p_brand, o_shipprio, SUM($1), SUM($2) FROM $basisanfrage WHERE p_type = spc GROUP BY CUBE(p_brand, o_shipprio)) INSERT INTO matview2 ( SELECT p_container, o_shipprio, SUM($1)/SUM($2) /* AVG(l_quantity) */, SUM($2) FROM $basisanfrage GROUP BY p_container, o_shipprio) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 57 Uni Magdeburg, WS 2007/08 197

11 Materialisierte Sichten Materialisierte Sichten Aktualisierung materialisierter Sichten Ebenen gemeinsamer Vorauswertung Bildung gemeinsamer Gruppierungskombinationen Materialisierung von Verbundoperationen Materialisierung von Selektionsoperationen Gemeinsame Nutzung auf physischer Ebene (gemeinsame Datenblöcke etc.) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 58 Materialisierte Sichten Inkrementelle Aktualisierung Aktualisierung materialisierter Sichten Wesentliche Idee: Feststellen, welche Detaildaten sich geändert haben nur diese Änderungen in den materialisierten Sichten nachvollziehen Im einfachsten Fall (ohne Aggregation): Basisrelation R, Sicht V = f (R) + R neu eingefügte Tupel, R: gelöschte Tupel (Updates werden als Löschung und anschließende Einfügung betrachtet) V neu = f ((R R) + R) = (f (R) f ( R)) f ( + R) = (V V) + V Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 59 Beispiel Materialisierte Sichten Aktualisierung materialisierter Sichten Basisrelation: link(s, D) link(a, b) Verbindung zw. Knoten a und b Sicht: hop(x, Y) = π X,Y (link(x, V) V=W link(w, Y)) Menge der eingefügten Tupel in link: (link) Korrespondierende Menge für hop: (hop) (hop) = π X,Y (( (link)(x, V) V=W link(w, Y)) (link(x, V) V=W (link)(w, Y)) ( (link)(x, V) V=W (link)(w, Y))) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 60 198 Uni Magdeburg, WS 2007/08

11 Materialisierte Sichten Materialisierte Sichten Aktualisierung materialisierter Sichten Klassifikation: Einflussfaktoren auf Effizienz Zur Verfügung stehende Information entscheidet über die Anwendbarkeit eines Algorithmus Definition der Sicht sowie ihre Ausprägung müssen zur Verfügung stehen Weitere Informationen? Integritätsbedingungen, Hilfssichten,... Verwendete Anfragekonstrukte zur Definiton der Sicht Selektion und Projektion im allgemeinen unproblematisch Viele Aktualisierungsalgorithmen unterstützen auch Joins Aggregationsfunktionen verlangen bereits aufwendigere Algorithmen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 61 Materialisierte Sichten Aktualisierung materialisierter Sichten Klassifikation: Einflussfaktoren auf Effizienz /2 Unterstützte Modifikationstypen Im einfachsten Fall: Einfügen neuer Tupel, Löschen von Tupeln Updates: Behandeln als Löschen und anschließendes Neueinfügen führt zu Informationsverlust und kann teure Zugriffe auf die Basisrelation erfordern Granularität der Aktualisierung Aktualisierung einzelner Sichten oder (im Extremfall) des ganzen Data Warehouse gemeinsame Aktualisierung verschiedener materialisierter Sichten kann für Konsistenz notwendig sein 11 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 62 Materialisierte Sichten Aktualisierung materialisierter Sichten Klassifikation: Einflussfaktoren auf Effizienz /3 Zeitpunkt der Aktualisierung Sofortige (synchrone) Aktualisierung Sichten sind immer aktuell dafür werden die Modifikationstransaktionen behindert Verzögerte Aktualisierung Entkoppelung der Aktualisierung von Modifikationstransaktion; bei Zugriff auf Sicht wird diese aktualisiert Sicht beim Lesen immer aktuell Lesende Transaktion trägt die Aktualisierungskosten; u.u. müssen viele Modifikationen nachgezogen werden, wenn auf die Sicht lange nicht zugegriffen wurde Snapshot-Aktualisierung asynchron zur Modifikation und zum Lesezugriff nach anwendungsspezifischen Gesichtspunkten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 63 Uni Magdeburg, WS 2007/08 199

11 Materialisierte Sichten Materialisierte Sichten Strategie vs. Zeitpunkt Aktualisierung materialisierter Sichten Aktualisierungsstrategie complete incremental immediate on commit deferred Aktualsierungszeitpunkt Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 64 Beispiele /1 Relation: Materialisierte Sichten Aktualisierung materialisierter Sichten part(part_no, part_cost, contract) Sicht: expensive_parts(part_no) = π part_no (σ part_cost>1000 (part)) Einfügen: part(p 1, 500, c 1 ) keine Änderung der Sicht notwendig Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 65 Beispiele /2 Materialisierte Sichten Aktualisierung materialisierter Sichten Einfügen part(p 2, 5000, c 2 ) (1) nur mat. Sicht verfügbar p 2 in der alten Sicht vorhanden keine Änderung sonst Einfügen (2) Basisrelation verfügbar Überprüfen, ob Basisrelation Tupel mit part_cost 5000 enthält keine Änderung sonst Einfügen (3) part_no als PK bekannt Tupel kann noch nicht in der Sicht sein Einfügen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 66 200 Uni Magdeburg, WS 2007/08

11 Materialisierte Sichten Beispiele /3 Materialisierte Sichten Aktualisierung materialisierter Sichten Relation: supp(supp_no, part_no, price) Sicht: supp_parts(part_no) = π part_no (supp part_no part) Einfügen: (p 2, 5000, c 2 ) nur mat. Sicht verfügbar: supp_parts enthält bereits p 2 keine Änderung sonst kann nicht entschieden werden Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 67 Materialisierte Sichten Aktualisierung materialisierter Sichten Zusatzinformationen für effiziente inkrementelle Aktualisierung 11 Ziel: Vermeidung von Zugriffen auf die Basisrelationen (partielle) autonome Aktualisierbarkeit Verwendung von Zusatzinformationen Schemainformation: vor allem Primärschlüssel- und Fremdschlüsseleigenschaften Zähler: Anzahl der Tupel in der Basisrelation, aus denen ein Tupel in der Sicht abgeleitet wurde ( Counting-Algorithmen) Hilfssichten: Materialisierung weiterer Information, die eine (partielle) autonome Aktualisierbarkeit ermöglicht Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 68 Verfahren zur Aktualisierung Materialisierte Sichten Aktualisierung materialisierter Sichten Vollständige Information verfügbar Counting-Algorithmus Outer-Join-Sichten DRed-Algorithmus Partielle Information verfügbar selbst-aktualisierbare Sichten: MV + Schlüsselbedingungen Chronicle Views : MV + einige Basisrelationen Keine Information verfügbar Irrelevante Updates Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 69 Uni Magdeburg, WS 2007/08 201

11 Materialisierte Sichten Materialisierte Sichten Counting-Algorithmus Aktualisierung materialisierter Sichten Idee: Anzahl der Ableitungen aller Tupel in der Sicht speichern Beispiel: CREATE VIEW hop(s, d) AS SELECT DISTINCT l1.s, l2.d FROM link l1, link l2 WHERE l1.d = l2.s link = {(a, b), (b, c), (b, e), (a, d), (d, c)} hop = {(a, c), (a, e) } } {{ } } {{ } 2 1 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 70 Materialisierte Sichten Counting-Algorithmus /2 Aktualisierung materialisierter Sichten Löschen von link(a, b) hop = {(a, c)} Schlussfolgerung: jeweils eine Ableitung von hop(a, c) und hop(a, e) löschen! Prinzip des Algorithmus zu jedem Tupel t der Sicht count(t) speichern aus Änderungen der Basisrelationen Sichtänderungen ableiten V Einfügen: count++, Löschen: count-- Änderungen V in die Sicht einbringen und count aktualisieren Tupel mit count = 0 werden gelöscht Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 71 Outer-Join-Sichten Materialisierte Sichten Outer Join wichtig für Datenintegration Sicht: Aktualisierung materialisierter Sichten CREATE VIEW V AS SELECT X 1,..., X n FROM R FULL OUTER JOIN S ON g(y 1,..., Y m ) g(y 1,..., Y m ): Konjunktion von Prädikaten Änderungen an R: (R) (Einfügen: + (R); Löschen: (R)) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 72 202 Uni Magdeburg, WS 2007/08

11 Materialisierte Sichten Outer-Join-Sichten Materialisierte Sichten Aktualisierung materialisierter Sichten Algorithmus: Berechnung von (V) durch zwei Anfragen SELECT X 1,..., X n -- Anfrage (a) FROM (R) LEFT OUTER JOIN S ON g(y 1,..., Y m ) SELECT X 1,..., X n -- Anfrage (b) FROM R v RIGHT OUTER JOIN (S) ON g(y 1,..., Y m ) Relation R v : R nach Änderungen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 73 Outer-Join-Sichten Materialisierte Sichten Aktualisierung materialisierter Sichten Anfrage (a) berechnet Effekt der Änderungen an R auf Sicht V dito (b) für S Beispiel: r + (Einfügen in R) wenn kein Verbund mit Tupel s r +.NULL einfügen sonst r +.s einfügen aber: r + : Verbund mit s eventuell NULL.s aus V löschen, wenn bereits in V r : eventuell Einfügen von NULL.s notwendig 11 Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 74 Materialisierte Sichten Selbst-aktualisierbare Sichten Aktualisierung materialisierter Sichten Self-maintenable Views: Aktualisierung nur auf Basis der materialisierten Sicht und Schlüsselbedingungen Beispiel: supp_parts(part_no) = π part_no (supp part_no part) part_no ist PK in part Löschen eines Tupels wenn in der Sicht part_no vorhanden dort löschen selbst-aktualisierbar bzgl. DELETE in part Löschen von supp(s 1, p 2, 100) p 2 kann nicht gelöscht werden, da z.b. supp(s 2, p 2, 200) existieren kann nicht selbst-aktualisierbar bzgl. DELETE in supp generell: Sicht ist nicht selbst-aktualisierbar bzgl. INSERT in supp oder part Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 75 Uni Magdeburg, WS 2007/08 203

11 Materialisierte Sichten Materialisierte Sichten Selbst-aktualisierbare Sichten /2 Aktualisierung materialisierter Sichten Allgemein für Select-Project-Join (SPJ)-Sichten SPJ-Sicht mit Join über zwei oder mehr verschiedene Relationen ist nicht selbst-aktualisierbar bzgl. INSERT SPJ-Sicht ist selbst-aktualisierbar bzgl. DELETE in R, wenn das Schlüsselattribut a der Relation R entweder in der Sicht enthalten ist oder in einer Bedingung a = const der Sichtdefinition erscheint Sicht mit left oder full outer join der Relationen R und S ist selbst-aktualisierbar bzgl. aller Arten von Änderungen in S, wenn alle Attribute von R, die in einem Prädikat vorkommen auch in der Projektion der Sicht auftauchen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 76 Materialisierte Sichten Sichtaktualisierung in DW Aktualisierung materialisierter Sichten Basisrelationen stammen meist aus externen Quellen Quellen besitzen keine Informationen über Sichten Aktualisierung nur über Ereignismeldungen der Quellen an das DW möglich DW muss Quellen in geeigneter Weise abfragen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 77 Materialisierte Sichten Aktualisierung: Beispiel Aktualisierung materialisierter Sichten r 1 (W, X), r 2 (X, Y), r 1 = {(1, 2)}, r 2 = {(2, 4)} MV = π W (r 1 r 2 ), MV = {(1)} 1 Update U 1 = insert(r 2, {(2, 3)}) Benachrichtigung des DW (Event) 2 DW: Empfang von U 1 Algorithmus zur inkrementellen Sichtänderung sendet Anfrage Q 1 = π W (r 1 {(2, 3)}) 3 Quelle von r 1 empfängt Q 1 und liefert Ergebnis A 1 = {(1)} 4 DW empfängt A 1, fügt {(1)} in MV ein und erhält {(1), (1)} Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 78 204 Uni Magdeburg, WS 2007/08

11 Materialisierte Sichten Materialisierte Sichten Aktualisierung: Anomalien Aktualisierung materialisierter Sichten Annahme: r 2 = {}, MV = {} U 1 = insert(r 2, {(2, 3)}), U 2 = insert(r 1, {(4, 2)}) 1 Quelle: U 1 = insert(r 2, {(2, 3)}) U 1 an DW 2 DW empfängt U 1 und sendet Q 1 3 Quelle: U 2 = insert(r 1, {(4, 2)}) U 2 an DW 4 DW empfängt U 2 und sendet Q 2 = π W ({(4, 2)} r 2 ) 5 Quelle empfängt Q 1 und berechnet auf r 1 = {(1, 2), (4, 2)} das Ergebnis A 1 = {(1), (4)} 6 DW empfängt A 1 und aktualisiert MV A 1 = {(1), (4)} 7 Quelle empfängt Q 2 und berechnet auf r 1 und r 2 das Ergebnis A 2 = {(4)} 8 DW empfängt A 2 und aktualisiert MV A 2 = {(1), (4), (4)} korrekt wäre {(1), (4)} Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 79 Lösungsansätze Materialisierte Sichten Aktualisierung materialisierter Sichten 11 vollständige Neuberechnung der Sicht Zeit- und Ressourcenintensiv Kopie aller Basisrelationen im Warehouse und lokale Auswertung der Anfragen zusätzlicher Speicherbedarf Aktualisierung der Basisrelationen notwendig (Replikation) Hinzufügen von Kompensationsanfragen zu Quellanfragen für Ausgleich konkurrierender Änderungen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 80 Materialisierte Sichten Eager-Compensating-Algorithmus Aktualisierung materialisierter Sichten Idee: Kompensationsanfragen für Anfragen, die auf einem inkorrekten Zustand ausgeführt werden Beispiel: U 2 = insert(r 1, {(4, 2)}) mit U 2 kann geschlussfolgert werden, dass Q 1 auf einen inkorrekten Zustand (Quelle DW) ausgeführt wird: Q 1 sieht {(4, 2)}, sonst würde A 1 vor U 2 eintreffen Kompensationsanfrage Q 2 = π W ({(4, 2)} r 2 ) π W ({(4, 2)} {(2, 3)}) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 81 Uni Magdeburg, WS 2007/08 205

11 Materialisierte Sichten Materialisierte Sichten Aktualisierung materialisierter Sichten Konsistenz während der Aktualisierung Problem: Abhängigkeiten zwischen Sichten Aktualisierung einer Sicht führt dann zur Inkonsistenz zwischen Sichten erfordert gemeinsame Aktualisierung, so dass keine Anwendung inkonsistenten Zustand sieht Sperren aller Sichten während der Aktualisierung: bei großer Anzahl zu aktualisierender Sichten führt dies zu inakzeptabel langen Wartezeiten Alternative: Vorberechnung aller Aktualisierungen und abschließende Übernahme der Änderungen in die Sichten (Propagate and Refresh) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 82 Materialisierte Sichten Konsistenz in Data Warehouses Aktualisierung materialisierter Sichten Anwenderdefinierte Aktualitätsforderungen als Zeitlicher Abstand Zeitspanne, um die die Sicht älter sein darf als die Basisrelation Wertemäßiger Abstand Maximale absolute oder relative Abweichung (z.b. bei Aggregationen) zwischen Sicht und Basisdaten Versionsbezogener Abstand Zahl der Versionen die nach dem Aktualitätsstand der Sicht generiert wurden Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 83 Anfragekonsistenz Materialisierte Sichten Aktualisierung materialisierter Sichten Ergebnis einer Anfrage an das DW hätte auch durch eine Anfrage an die Datenquellen berechnet werden können dies verlangt Konsistenz zwischen den Sichten, d.h. eine Anfrage an das DW darf nie durch Sichten mit unterschiedlichem Aktualitätsstand beantwortet werden Beachte: Dies bedeutet nicht notwendigerweise, dass alle zur Beantwortung verwendeten Sichten aktuell sein müssen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 84 206 Uni Magdeburg, WS 2007/08

11 Materialisierte Sichten Sitzungskonsistenz Materialisierte Sichten Aktualisierung materialisierter Sichten Sitzung: Folge von Anfragen, insbesondere Folgen von Drill-Down- und Roll-Up-Operationen Ergebnisse solcher nacheinander gestellten Anfragen sollten untereinander konsistent sein wenn alle Anfragen innerhalb einer Sitzung durch Daten (aus Basisrelationen und Sichten) gleicher Aktualität beantwortet werden, ist Sitzungskonsistenz gewährleistet Sitzungskonsistenz ist damit mehr als Anfragekonsistenz! Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 85 Materialisierte Sichten Aktualisierungsgranulate Aktualisierung materialisierter Sichten 11 Welche Objekte des Data Warehouse können unabhängig voneinander aktualisiert werden? Aktualisierung des ganzen Data Warehouses Konzeptionell die einfachste Lösung zur Vermeidung von Inkonsistenzen während der Aktualisierung wird das gesamte Data Warehouse gesperrt (keine Nebenläufigkeit; ggf. lange Wartezeit) Aktualisierung einzelner Sichten Flexible Lösung Abhängigkeiten zwischen den Sichten müssen berücksichtigt werden; dies kann Aktualisierung anderer Sichten erzwingen Gemeinsame Aktualisierung mehrerer Sichten Zusammenfassen von Sichten zu einem Aktualisierungsgranulat als praktikabler Kompromiss ( Viewgroups) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 86 Materialisierte Sichten Materialisierte Sichten in Oracle Syntax Materialisierte Sichten in DBMS CREATE MATERIALIZED VIEW matview BUILD IMMEDIATE REFRESH COMPLETE ENABLE QUERY REWRITE AS SELECT...FROM...WHERE...GROUP BY... Füllen der Sicht BUILD IMMEDIATE (sofort) BUILD DEFERRED (explizit zum späteren Zeitpunkt) Aktualisierungszeitpunkte: REFRESH ON COMMIT (Änderung der Basisrelation), REFRESH ON DEMAND (explizite Aktualisierung, z.b. über dbms_mview.refresh) Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 87 Uni Magdeburg, WS 2007/08 207

11 Materialisierte Sichten Materialisierte Sichten Materialisierte Sichten in Oracle /2 Materialisierte Sichten in DBMS Aktualisierungsstrategie COMPLETE: vollständig FAST: Deltas über View-Log NEVER: keine Aktualisierung FORCE: wenn möglich FAST, sonst COMPLETE View-Logs: Log-Tabellen mit Änderungsoperationen (über Trigger auf Basisrelationen) CREATE MATERIALIZED VIEW LOG ON base-table WITH SEQUENCE, ROWID (attributes) INCLUDING NEW VALUES Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 88 Materialisierte Sichten Materialisierte Sichten in Oracle /3 Materialisierte Sichten in DBMS Restriktionen für FAST (u.a.) Alle Basisrelationen mit View-Logs Zu jedem Aufruf AGG(expr) korrespondierendes COUNT(expr) alle Gruppierungsattribute in SELECT-Klausel Einschränkungen bei OUTER JOIN sowie komplexeren Gruppierungen Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 89 Materialisierte Sichten Materialisierte Sichten in Oracle /4 Materialisierte Sichten in DBMS Verwendung existierender Tabellen als materialisierte Sicht CREATE MATERIALIZED VIEW matview ON PREBUILT TABLE sum_table... Summary Advisor als Administrator-Werkzeug für Auswahl von materialisierten Sichten Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 90 208 Uni Magdeburg, WS 2007/08

11 Materialisierte Sichten Oracle: Rewriting Materialisierte Sichten Materialisierte Sichten in DBMS Oracle versucht Rewriting auf mehrere Arten Text Match Full Text Match und Partial Text Match Rein syntaktischer Match Groß-/ Kleinschreibung Leerzeichen Reihenfolge von Bedingungen Keine logische Implikation, kein Mapping, etc. General Query Rewrite Nicht anwendbar bei Complex materialized views Unterschiedliche Methoden ja nach Art des MV Viele Einschränkungen Dokumentation Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 91 Materialisierte Sichten Materialisierte Sichten in IBM DB2 Syntax Materialisierte Sichten in DBMS CREATE SUMMARY TABLE matview AS ( SELECT...FROM...WHERE...GROUP BY... ) DATA INITIALLY DEFERRED REFRESH DEFERRED 11 Explizites Füllen der mat. Sicht REFRESH TABLE matview Weitere Aktualisierungsstrategien möglich Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 92 SQL Server Materialisierte Sichten Materialisierte Sichten in DBMS Indexierung von Sichten Materialisierung der betroffenen Daten Automatische Aktualisierung bei Änderung der Basisdaten CREATE VIEW Verkäufe2002 AS SELECT Stadt, Verkäufe, V.ZeitID, V.GeographieID FROM Verkauf V, Zeit Z, Geographie G WHERE V.ZeitID = Z.ZeitID AND Z.Jahr = 2002 AND V.GeographieID = G.GeographieID; CREATE UNIQUE CLUSTERED INDEX V2000_IDX ON Verkäufe2002(ZeitID, GeographieID); Schallehn Data-Warehouse-Technologien Wintersemester 07/08 12 93 Uni Magdeburg, WS 2007/08 209