Indexierungsstrategie im Data Warehouse

Werbung
INDEXIERUNGSSTRATEGIE IM
DATA WAREHOUSE
ZWISCHEN ALBTRAUM UND
OPTIMALER PERFORMANCE
BASEL
1
BERN
LAUSANNE
ZÜRICH
DÜSSELDORF
FRANKFURT A.M.
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
DOAG Konferenz 2011
Dani Schnider
Trivadis AG
Nürnberg, 15. November 2011
FREIBURG I.BR.
HAMBURG
MÜNCHEN
STUTTGART
WIEN
Dani Schnider
  Principal Consultant und
DWH/BI Lead Architect
bei Trivadis in Zürich
  Kursleiter für Trivadis-Kurse
über Data Warehousing, SQL
Optimierung und Oracle
Warehouse Builder
  Co-Autor des Buches «Data
Warehousing mit Oracle»
2
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
Trivadis Facts & Figures
11 Trivadis Niederlassungen mit über 550
Mitarbeitern
Hamburg
Finanziell unabhängig und nachhaltig
profitabel
Kennzahlen 2010
  Umsatz CHF 101 / EUR 73 Mio.
~180 MA
Düsseldorf
  Dienstleistungen für über 700
Kunden in mehr als 1‘800 Projekten
Frankfurt
  Über 170 Service Level Agreements
Stuttgart
Wien
Freiburg
Basel
Bern
Lausanne
3
Zürich
München
~20 MA
~350 MA
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
  Mehr als 5'000 Trainingsteilnehmer
  Forschungs- und Entwicklungsbudget: CHF 5.0 / EUR 3.6 Mio.
Das Besondere
Kundenindividuelle
Lösungskompetenz und
Herstellerunabhängigkeit
Technologiekompetenz
  bietet fundierte Methodenkenntnisse und eigenentwickelte
Vorgehensweisen   garantiert wiederholbare Qualität und Realisierungssicherheit   hat über 17 Jahre Expertise in Oracle und Microsoft   verfügt über ein eigenes Technology Center und setzt auf
technologische Exzellenz Lösungs- und IntegrationsKnow-how
  hat eine breite, branchenübergreifende Kundenbasis und jährlich über
1800 Projekte   verbindet technologisches Spezialistenwissen mit dem Verständnis für
die Business-Spezifika des Kunden Begleitung über den
gesamten IT-ProjektLifecycle
4
  begleitet den gesamten IT-Projekt-Lifecycle mit einem modularen
Dienstleistungsportfolio   bietet für jeden „Reifegrad“ die passende Dienstleistungs- und
Lösungskombination
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
Wie soll ich mein
Data Warehouse
indexieren?
5
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
Es gibt verschiedene Meinungen...
  Ein DWH-System hat mehr Indizes als ein OLTP-System
  Indizes machen die Abfragen schneller
  Fall Table Scans sind langsam
  Ein Data Warehouse sollte keine Indizes haben
  Indizes verlangsamen die ETL-Prozesse
  Jede Tabelle muss einen Primary Key haben
  Indizes sind für ein effizientes Laden der Daten notwendig
  Eine OLTP-Tabelle hat 2-3 Indizes, eine DWH-Tabelle 5-6
  Bitmap Indizes sind für Attribute mit wenigen Werten sinnvoll
6
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
DWH ≠OLTP
«It depends...»
7
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
Data Warehouse Architektur
Data Warehouse
Quellsysteme
Staging Area
Cleansing Area
ETL
Core
Marts
BI Plattform
Metadaten
  Wie sollen die verschiedenen Schichten im DWH indexiert werden?
8
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
Staging Area / Cleansing Area
Staging Area
  Keine Indizes
Cleansing Area
  Primary Key / Unique Key Constraints für Datenvalidierung
  Oracle erstellt automatisch einen Unique Index pro PK/UK
  Eventuell Index erst nach dem Laden berechnen
(DISABLE / ENABLE CONSTRAINT)
  Keine weitere Indizes
9
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
Selektivität und Zugriffsmethode
  Selektivität = Prozentualer Anteil der Datensätze aus einer Tabelle
  Indexzugriffe sind effizient für selektive
Abfragen (< 1-2% der Daten)
  Gilt sowohl für B-Tree Index als auch
Bitmap Index
  Full Table Scans sind für nicht-selektive
Abfragen effizienter
  In Staging Area und Cleansing Area
werden immer 100% der Daten gelesen
10
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
Core
  Zweck von Core
  Datenintegration von verschiedenen Quellsystemen
  Historisierung und Versionierung
  Datenbasis für Data Marts
  Indexierung abhängig von verschiedenen Faktoren
  Logischem Datenmodell (dimensional / relational)
  Physischem Design (z.B. Partitionierung)
  Ladefrequenz der Data Marts
11
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
Indexierung von Core
Dimensionales Core
  Primary Key Constraints auf Dimensionstabellen
  Oracle erstellt automatisch einen Unique Index pro PK/UK
  Alternativer Ansatz: PK/UK disablen, um Index zu vermeiden
  Keine Indizes auf Faktentabellen
Relationales Core
  Primary Key / Unique Key Constraints auf Stammdaten
  Oracle erstellt automatisch einen Unique Index pro PK/UK
  Alternativer Ansatz: PK/UK disablen, um Index zu vermeiden
  Möglichst wenige oder keine Indizes auf Bewegungsdaten
  Indexierung von Foreign Keys nicht notwendig
12
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
Zeitliche Extraktion aus Core
Core dient als Basis zum Laden der Data Marts
Initiales Laden von Data Marts
  Keine Datumeinschränkung
  Eventuell Filter auf aktuelle Version der Stammdaten
  Bitmap Index auf VALID_TO
Inkrementelles Laden der Data Marts
  Filter auf Gültigkeitsintervall der Stammdaten/Dimensionen
  Bitmap Index auf VALID_FROM
  Filter auf Ereignisdatum der Bewegungsdaten/Fakten
  Bitmap Index auf Ereignisdatum
13
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
Zeitliche Extraktion aus Core: Beispiel
  Core enthält Daten der letzten 3 Jahre
  Data Mart wird monatlich geladen
  Selektivität = 1/12/3 ≈ 2.8%  Full Table Scan
  Data Mart wird täglich geladen
  Selektivität = 1/365/3 ≈ 0.09%  Index Scan
  Besserer Ansatz: Core-Tabelle partitioniert pro Monat
  Selektivitätmonatlich = 1 = 100%  Full Partition Scan
  Selektivitättäglich= 1/31 ≈ 3.2%  Full Partition Scan
14
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
Benutzerzugriff auf Core
  Endbenutzer haben keinen
Lesezugriff auf Core
  Ausnahme: „Virtueller Data Mart“
Virtueller Data Mart
  View Layer für Benutzerzugriff auf Core
  Zusätzliche Bitmap Indizes auf Filterkriterien notwendig
15
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
B-Tree Index oder Bitmap Index?
B-Tree Index
(✗)
Geeignet für selektive Abfragen
✗
Bitmap Index
Mehrere Indizes können kombiniert
werden
Geeignet für selektive Abfragen
Geeignet für Kombinationen von
unselektiven Filterkriterien
=, <, <=, >=, BETWEEN, LIKE, IN
=, <, <=, >=, BETWEEN, LIKE, IN
(IS NULL)
!=, NOT IN, IS NULL, (IS NOT NULL)
Unique Index möglich
✗
Row Locking
✗
Standard Edition, Enterprise Edition
16
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
Nur Enterprise Edition
B-Tree Index oder Bitmap Index?
  Platzbedarf von Bitmap Index ist meistens kleiner
  Auch für Attribute mit vielen verschiedenen Werten
350
300
250
200
150
100
50
0
10
100
Bitmap (scattered)
17
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
1000
Bitmap (sorted)
10000
B-tree index
100000
In Data Warehouse
generell Bitmap
Indizes verwenden
  B-Tree Indizes werden nur für Primary / Unique Keys verwendet
18
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
Data Marts
Dimensionstabellen
  Primary Key (Unique Index)
  Bitmap Indizes auf zusätzlichen Filter-Spalten (optional)
Faktentabellen
  Bitmap Indizes auf Dimensionsattributen (Foreign Keys)
  Bitmap Join Indizes auf oft verwendete Filter-Spalten (optional)
  Typischerweise kein Primary Key
19
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
Abfrageoptimierung auf Star Schemas
  Typische Abfragen:
1
  Filterkriterien auf (mehreren)
Dimensionstabellen
  Fakten werden durch Join mit
Dimensionen selektiert
  Problem:
  Tabellen mit Restriktionen sollten
zuerst gelesen werden
  Es können jeweils nur zwei Tabellen
gejoined werden
  Keine Beziehungen zwischen
Dimensionstabellen
20
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
2
3
3
2
1
Star Transformation
Bitmap Index
SALES_PROD_BIX
Products
AND
Customers
Bitmap Index
SALES_CUST_BIX
21
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
Sales
(Fact Table)
Bitmap Join Index
  Bitmap Index definiert auf
Faktentabelle
  Indexiertes Attribut gehört zu
Dimensionstabelle
  Möglich für Star Schemas und
Snowflake Schemas
22
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
Fazit
  Staging Area, Cleansing Area,
Core: Weniger ist mehr!
  Data Marts: Einheitliche
Indexierungsstrategie
  Generell Bitmap Indexes
verwenden, B-Tree Indexes
nur für Primary/Unique Keys
  Es gibt immer begründbare
Ausnahmen
23
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
VIELEN DANK.
Trivadis AG
Dani Schnider
Europa-Strasse 5
CH-8152 Glattbrugg/Zürich
Schweiz
Tel. +
41 44 808 70 20
Fax +
41 44 808 70 21
[email protected]
www.trivadis.com
BASEL
24
BERN
LAUSANNE
ZÜRICH
DÜSSELDORF
FRANKFURT A.M.
2011 © Trivadis
Indexierungsstrategie im Data Warehouse
15. November 2011
FREIBURG I.BR.
HAMBURG
MÜNCHEN
STUTTGART
WIEN
Herunterladen