Business Intelligence in der Praxis
E-Book, Deutsch, 281 Seiten
ISBN: 978-3-446-45111-7
Verlag: Carl Hanser
Format: PDF
Kopierschutz: 1 - PDF Watermark
Dieses Buch gibt Ihnen einen Überblick über eine typische Data-Warehouse-Architektur und zeigt anhand von zahlreichen Best Practice-Beispielen, wie Sie die einzelnen Komponenten eines Data Warehouses realisieren und betreiben können. Skalierbarkeit, Performance und Integration sind dabei die wichtigsten Erfolgsfaktoren.
Der kompakte und kompetente Leitfaden für Ihr Projekt
Warum benötigt man eine Staging Area? Wie sollen fehlende oder fehlerhafte Daten beim Ladeprozess behandelt werden? Ist es zweckmäßiger, einen oder mehrere Data Marts zu erstellen? Wo werden die Daten aus verschiedenen Datenquellen integriert und wie sollen sie historisiert werden? Zu diesen und vielen weiteren Fragen erhalten Sie Antworten sowie Tipps und Tricks aus der Praxis.
Wertvolles Know-how aus der Praxis
Profitieren Sie von der langjährigen Erfahrung der Autoren. Die vorgestellten Konzepte und Vorgehensweisen haben sich bereits in zahlreichen Projekten bewährt.
AUS DEM INHALT
• Einleitung
• Architektur
• Datenmodellierung
• Datenintegration
• Design der DWH-Schichten
• Physisches Datenbankdesign
• BI-Anwendungen
• Betrieb
Autoren/Hrsg.
Weitere Infos & Material
1;Inhalt;5
2;Geleitwort;14
3;Über dieses Buch;16
4;Die Autoren;18
5;1 Einleitung;20
5.1;1.1 Ziele dieses Buches;21
5.2;1.2 Struktur dieses Buches;22
5.3;1.3 Hinweis zur Anwendung dieses Buches;23
6;2 Architektur;24
6.1;2.1 Data Warehouse-Architektur;24
6.1.1;2.1.1 Aufbau eines Data Warehouse;25
6.1.2;2.1.2 Transformationsschritte;28
6.1.3;2.1.3 Architekturgrundsätze;29
6.2;2.2 Architektur BI-Anwendungen;32
6.2.1;2.2.1 Die BI-Plattform zur Integration von Datenquellen;34
6.2.2;2.2.2 Die BI-Plattform zur Vereinheitlichung der Frontends;36
6.3;2.3 Datenhaltung;37
6.3.1;2.3.1 Grenzen gängiger DWH/BI-Technologien;38
6.3.2;2.3.2 Datenhaltung im Hadoop-Ecosystem;39
6.3.3;2.3.3 In-Memory-Datenbanken;42
7;3 Datenmodellierung;46
7.1;3.1 Vorgehensweise;46
7.1.1;3.1.1 Anforderungsgetriebene Modellierung;46
7.1.2;3.1.2 Quellsystemgetriebene Modellierung;48
7.1.3;3.1.3 Kombination der Ansätze;49
7.2;3.2 Relationale Modellierung;49
7.2.1;3.2.1 Darstellung von relationalen Datenmodellen;50
7.2.2;3.2.2 Normalisierung;50
7.2.3;3.2.3 Stammdaten und Bewegungsdaten;51
7.2.4;3.2.4 Historisierung;51
7.2.5;3.2.5 Relationales Core;53
7.2.6;3.2.6 Corporate Information Factory;54
7.2.7;3.2.7 Data Vault Modeling;54
7.3;3.3 Dimensionale Modellierung;56
7.3.1;3.3.1 Implementierung von dimensionalen Modellen;57
7.3.1.1;3.3.1.1 Relationale Implementierung;58
7.3.1.2;3.3.1.2 Multidimensionale Implementierung;59
7.3.2;3.3.2 Dimensionen;60
7.3.2.1;3.3.2.1 Fachliche Attribute;60
7.3.2.2;3.3.2.2 Technische Attribute;60
7.3.2.3;3.3.2.3 Hierarchien;61
7.3.2.4;3.3.2.4 Conformed Dimensions;62
7.3.2.5;3.3.2.5 Slowly Changing Dimensions;63
7.3.2.6;3.3.2.6 Zeitdimension;66
7.3.2.7;3.3.2.7 Bridge Tables;67
7.3.2.8;3.3.2.8 Spezielle Dimensionen;69
7.3.3;3.3.3 Fakten;70
7.3.3.1;3.3.3.1 Kennzahlen;70
7.3.3.2;3.3.3.2 Typen von Fakten;70
7.3.4;3.3.4 Modellierung spezieller Problemstellungen;72
7.3.4.1;3.3.4.1 Fakten unterschiedlicher Granularität und Rollen;72
7.3.4.2;3.3.4.2 Gemeinsame Hierarchiestufen in verschiedenen Dimensionen;73
7.3.4.3;3.3.4.3 Modellierungsgrundsätze für Dimensionen und Fakten;74
7.3.5;3.3.5 Darstellung von dimensionalen Modellen;75
7.3.5.1;3.3.5.1 ADAPT-Notation;75
7.3.5.2;3.3.5.2 Entity-Relationship-Diagramme;77
7.3.5.3;3.3.5.3 Data-Warehouse-Bus-Matrix;77
7.3.6;3.3.6 Dimensionales Core;78
7.4;3.4 Tools zur Datenmodellierung;79
7.4.1;3.4.1 Tools für relationale Datenmodellierung;79
7.4.2;3.4.2 Tools für dimensionale Datenmodellierung;80
8;4 Datenintegration;82
8.1;4.1 Data Profiling;83
8.1.1;4.1.1 Probleme mangelnder Datenqualität;83
8.1.2;4.1.2 Einsatz von Data Profiling;84
8.2;4.2 ETL;85
8.2.1;4.2.1 Aufgaben der ETL-Prozesse;86
8.2.1.1;4.2.1.1 Extraktion aus Quellsystemen;86
8.2.1.2;4.2.1.2 Transformationen;86
8.2.1.3;4.2.1.3 Laden in die Zieltabellen;87
8.2.2;4.2.2 ETL-Tools;87
8.2.2.1;4.2.2.1 Funktionalität von ETL-Tools;89
8.2.2.2;4.2.2.2 ETL oder ELT?;89
8.2.2.3;4.2.2.3 Positionierung von ETL-Tools;91
8.2.3;4.2.3 Performance-Aspekte;91
8.2.3.1;4.2.3.1 Mengenbasierte statt datensatzbasierte Verarbeitung;91
8.2.3.2;4.2.3.2 ELT-Tool statt ETL-Tool;92
8.2.3.3;4.2.3.3 Reduktion der Komplexität;93
8.2.3.4;4.2.3.4 Frühzeitige Mengeneinschränkung;94
8.2.3.5;4.2.3.5 Parallelisierung;95
8.2.4;4.2.4 Steuerung der ETL-Prozesse;97
8.2.4.1;4.2.4.1 Protokollierung des ETL-Ablaufs;97
8.2.4.2;4.2.4.2 Restartfähigkeit und Wiederaufsetzpunkte;98
8.3;4.3 Extraktion und Delta-Ermittlung;99
8.3.1;4.3.1 Delta-Extraktion im Quellsystem;100
8.3.1.1;4.3.1.1 Änderungsmarker und Journaltabellen;100
8.3.1.2;4.3.1.2 Delta-Ermittlung und Pending Commits;101
8.3.1.3;4.3.1.3 Change Data Capture;102
8.3.2;4.3.2 Voll-Extraktion und Delta-Abgleich im Data Warehouse;103
8.3.2.1;4.3.2.1 Zwei Versionen des Vollabzugs in der Staging Area;104
8.3.2.2;4.3.2.2 Vorteil einer Voll-Extraktion für die Delta-Ermittlung;106
8.3.3;4.3.3 Wann verwende ich was?;106
8.4;4.4 Fehlerbehandlung;107
8.4.1;4.4.1 Fehlende Attribute;108
8.4.1.1;4.4.1.1 Filtern von fehlerhaften Datensätzen;108
8.4.1.2;4.4.1.2 Fehlerhafte Datensätze in Fehlertabelle schreiben;108
8.4.1.3;4.4.1.3 Singletons auf Attributebene;109
8.4.2;4.4.2 Unbekannte Codewerte;109
8.4.2.1;4.4.2.1 Filtern von fehlerhaften Datensätzen;110
8.4.2.2;4.4.2.2 Singletons auf Datensatzebene;110
8.4.2.3;4.4.2.3 Generierung von Embryo-Einträgen;110
8.4.3;4.4.3 Fehlende Dimensionseinträge;111
8.4.3.1;4.4.3.1 Filtern von unvollständigen Fakten;112
8.4.3.2;4.4.3.2 Referenz auf Singleton-Einträge;113
8.4.3.3;4.4.3.3 Generieren von Embryo-Einträgen;114
8.4.4;4.4.4 Doppelte Datensätze;115
8.4.4.1;4.4.4.1 Verwendung von DISTINCT;116
8.4.4.2;4.4.4.2 Nur ersten Datensatz übernehmen;116
8.5;4.5 Qualitätschecks;116
8.5.1;4.5.1 Qualitätschecks vor und während des Ladens;117
8.5.2;4.5.2 Qualitätschecks nach dem Laden;118
8.5.3;4.5.3 Qualitätschecks mithilfe von Test-Tools;118
8.6;4.6 Real-Time BI;119
8.6.1;4.6.1 Begriffsbestimmung;120
8.6.2;4.6.2 Garantierte Verfügbarkeit von Informationen zu gegebenem Zeitpunkt;120
8.6.3;4.6.3 Verfügbarkeit von Informationen simultan zur Entstehung;121
8.6.4;4.6.4 Verfügbarkeit von Informationen kurz nach ihrer Entstehung;123
8.6.4.1;4.6.4.1 Events und Batchverarbeitung;124
8.6.4.2;4.6.4.2 Real-Time-Partitionen;125
8.6.5;4.6.5 Zusammenfassung;126
9;5 Design der DWH-Schichten;128
9.1;5.1 Staging Area;129
9.1.1;5.1.1 Gründe für eine Staging Area;130
9.1.2;5.1.2 Struktur der Stage-Tabellen;131
9.1.3;5.1.3 ETL-Logik für Stage-Tabellen;132
9.1.3.1;5.1.3.1 Einschränkungen bei der Extraktion;133
9.1.3.2;5.1.3.2 Transformation;133
9.1.3.3;5.1.3.3 Sonstige Informationen;134
9.2;5.2 Cleansing Area;134
9.2.1;5.2.1 Gründe für eine Cleansing Area;134
9.2.2;5.2.2 Struktur der Cleanse-Tabellen;135
9.2.3;5.2.3 Beziehungen in der Cleansing Area;137
9.2.4;5.2.4 ETL-Logik für Cleanse-Tabellen;139
9.2.4.1;5.2.4.1 Einschränkungen bei der Extraktion;140
9.2.4.2;5.2.4.2 Transformation;140
9.2.4.3;5.2.4.3 Sonstige Informationen;141
9.3;5.3 Core-Datenmodell allgemein;141
9.3.1;5.3.1 Aufgaben und Anforderungen an das Core;142
9.3.2;5.3.2 Stammdaten im Core;143
9.3.3;5.3.3 Bewegungsdaten im Core;143
9.3.4;5.3.4 Beziehungen im Core;143
9.3.5;5.3.5 Datenmodellierungsmethoden für das Core;144
9.4;5.4 Core-Datenmodell relational mit Kopf- und Versionstabellen;145
9.4.1;5.4.1 Historisierung von Stammdaten mit Kopf- und Versionstabellen;146
9.4.2;5.4.2 Struktur der Stammdatentabellen;147
9.4.2.1;5.4.2.1 Tabellenspalten und Schlüssel;148
9.4.2.2;5.4.2.2 Beziehungen (1:n) zwischen Stammdaten;151
9.4.2.3;5.4.2.3 Beziehungen (m:n) zwischen Stammdaten;152
9.4.3;5.4.3 ETL-Logik für Stammdatentabellen;154
9.4.3.1;5.4.3.1 Lookups (Schritt 1);155
9.4.3.2;5.4.3.2 Outer Join (Schritt 2);156
9.4.3.3;5.4.3.3 Neue Datensätze (Schritt 3);160
9.4.3.4;5.4.3.4 Schließen einer Version/Fall 1 (Schritt 4);161
9.4.3.5;5.4.3.5 Aktualisieren/Fall 2 (Schritt 5);161
9.4.3.6;5.4.3.6 Versionieren/Fall 3 und 4 (Schritt 6);161
9.4.3.7;5.4.3.7 Singletons;161
9.4.4;5.4.4 Typen von Bewegungsdaten;162
9.4.4.1;5.4.4.1 Transaction Tables;163
9.4.4.2;5.4.4.2 Snapshot Tables;163
9.4.4.3;5.4.4.3 Snapshot Tables versioniert;164
9.4.5;5.4.5 Struktur der Bewegungstabellen;165
9.4.5.1;5.4.5.1 Tabellenspalten und Schlüssel;166
9.4.5.2;5.4.5.2 Beziehungen zu Stammdaten;169
9.4.6;5.4.6 ETL-Logik für Bewegungstabellen;172
9.4.6.1;5.4.6.1 Lookups;173
9.4.6.2;5.4.6.2 Sonstige Informationen;174
9.4.7;5.4.7 Views für externen Core-Zugriff;174
9.4.7.1;5.4.7.1 Views für Stammdaten;175
9.4.7.2;5.4.7.2 Views für Bewegungsdaten;179
9.5;5.5 Core-Datenmodell relational mit Data Vault;180
9.5.1;5.5.1 Stammdaten;180
9.5.2;5.5.2 Beziehungen;181
9.5.3;5.5.3 Bewegungsdaten;181
9.5.4;5.5.4 Historisierung;182
9.5.5;5.5.5 Struktur der Tabellen;182
9.5.5.1;5.5.5.1 Hubtabellen – Tabellenspalten und Schlüssel;182
9.5.5.2;5.5.5.2 Satellitentabellen – Tabellenspalten und Schlüssel;183
9.5.5.3;5.5.5.3 Linktabellen – Tabellenspalten und Schlüssel;184
9.5.6;5.5.6 ETL-Logik;185
9.5.7;5.5.7 Views für externen Core-Zugriff auf das Data-Vault-Datenmodell;186
9.5.7.1;5.5.7.1 Views für Stammdaten (ein Satellite pro Hub bzw. Link);186
9.5.7.2;5.5.7.2 Views für Stammdaten (mehrere Satellites pro Hub bzw. Link);189
9.6;5.6 Core-Datenmodell dimensional;192
9.6.1;5.6.1 Star- oder Snowflake-Schema;193
9.6.1.1;5.6.1.1 Star-Schema;193
9.6.1.2;5.6.1.2 Snowflake-Schema;194
9.6.2;5.6.2 Historisierung von Stammdaten mit SCD;196
9.6.3;5.6.3 Struktur der Dimensionstabellen (Snowflake);199
9.6.3.1;5.6.3.1 Tabellenspalten und Schlüssel;200
9.6.3.2;5.6.3.2 Beziehungen zwischen Hierarchiestufen;203
9.6.4;5.6.4 ETL-Logik für Dimensionstabellen (Snowflake);204
9.6.4.1;5.6.4.1 Lookup;204
9.6.4.2;5.6.4.2 Weitere Schritte;205
9.6.5;5.6.5 Struktur der Faktentabellen (Snowflake);205
9.6.6;5.6.6 ETL-Logik für Faktentabellen (Snowflake);207
9.6.7;5.6.7 n:m-Beziehungen im dimensionalen Core;207
9.7;5.7 Marts;209
9.7.1;5.7.1 ROLAP oder MOLAP?;210
9.7.2;5.7.2 Historisierung von Data Marts;211
9.7.3;5.7.3 Star- oder Snowflake-Schema (ROLAP);212
9.7.4;5.7.4 Struktur der Dimensionstabellen (Star);213
9.7.4.1;5.7.4.1 Tabellenspalten und Schlüssel;213
9.7.4.2;5.7.4.2 Beispiel für Conformed Rollup;216
9.7.4.3;5.7.4.3 Beispiel für Dimension mit mehreren Hierarchien;217
9.7.5;5.7.5 ETL-Logik für Dimensionstabellen (Star);218
9.7.5.1;5.7.5.1 Extraktion aus dem relationalen Core;219
9.7.5.2;5.7.5.2 Extraktion aus dem dimensionalen Core;226
9.7.6;5.7.6 Struktur der Faktentabellen (Star-Schema);228
9.7.7;5.7.7 ETL-Logik für Faktentabellen (Star);229
9.7.8;5.7.8 Multidimensionale Data Marts;229
9.7.8.1;5.7.8.1 Dimensionen (Cube);230
9.7.8.2;5.7.8.2 Fakten (Cube);231
10;6 Physisches Datenbankdesign;234
10.1;6.1 Indexierung;235
10.1.1;6.1.1 Staging Area;236
10.1.2;6.1.2 Cleansing Area;236
10.1.3;6.1.3 Core;236
10.1.4;6.1.4 Data Marts;237
10.2;6.2 Constraints;238
10.2.1;6.2.1 Primary Key Constraints;238
10.2.2;6.2.2 Foreign Key Constraints;239
10.2.3;6.2.3 Unique Constraints;240
10.2.4;6.2.4 Check Constraints;240
10.2.5;6.2.5 NOT NULL Constraints;241
10.3;6.3 Partitionierung;241
10.3.1;6.3.1 Grundprinzip von Partitionierung;242
10.3.2;6.3.2 Gründe für Partitionierung;242
10.3.3;6.3.3 Partitionierung in Staging und Cleansing Area;243
10.3.4;6.3.4 Partitionierung im Core;244
10.3.5;6.3.5 Partitionierung in den Data Marts;244
10.4;6.4 Datenkomprimierung;245
10.4.1;6.4.1 Redundanz;246
10.4.2;6.4.2 Wörterbuchmethode/Tokenbasierte Reduktion;246
10.4.3;6.4.3 Entropiekodierung;246
10.4.4;6.4.4 Deduplikation;247
10.4.5;6.4.5 Komprimierung bei spaltenorientierter Datenhaltung;247
10.5;6.5 Aggregationen;248
10.5.1;6.5.1 Vorberechnete Aggregationen;249
10.5.2;6.5.2 Query Rewrite;249
10.5.3;6.5.3 Einsatz im Data Warehouse;250
11;7 BI-Anwendungen;252
11.1;7.1 Überblick;252
11.2;7.2 Standardberichte;255
11.3;7.3 Ad-hoc-Analyse;257
11.4;7.4 BI-Portale;258
12;8 Betrieb;260
12.1;8.1 Release-Management;260
12.1.1;8.1.1 Kategorisierung der Anforderungen;261
12.1.2;8.1.2 Schnittstellen zu Quellsystemen;262
12.1.3;8.1.3 Umgang mit historischen Daten;264
12.1.4;8.1.4 Datenbankumgebungen;265
12.2;8.2 Deployment;267
12.2.1;8.2.1 Manuelles Deployment;267
12.2.2;8.2.2 Filebasiertes Deployment;268
12.2.3;8.2.3 Repository-basiertes Deployment;269
12.2.4;8.2.4 Kombiniertes Deployment;269
12.3;8.3 Monitoring;271
12.3.1;8.3.1 Betriebsmonitoring;271
12.3.2;8.3.2 System und DB-Monitoring;271
12.3.3;8.3.3 ETL-Monitoring;271
12.3.4;8.3.4 Performance-Monitoring;272
12.4;8.4 Migration;274
12.4.1;8.4.1 Datenbank;275
12.4.2;8.4.2 ETL-Tool;276
12.4.3;8.4.3 BI-Tools;277
13;Literatur;278
14;Index;280