Data Warehouse Blueprints - Business Intelligence in der Praxis

Dani Schnider, Claus Jordan, Peter Welker, Joachim Wehner

Data Warehouse Blueprints

Business Intelligence in der Praxis

2016

281 Seiten

Format: PDF, ePUB, Online Lesen

E-Book: €  41,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446451117

 

Inhalt

5

Geleitwort

14

Über dieses Buch

16

Die Autoren

18

1 Einleitung

20

1.1 Ziele dieses Buches

21

1.2 Struktur dieses Buches

22

1.3 Hinweis zur Anwendung dieses Buches

23

2 Architektur

24

2.1 Data Warehouse-Architektur

24

2.1.1 Aufbau eines Data Warehouse

25

2.1.2 Transformationsschritte

28

2.1.3 Architekturgrundsätze

29

2.2 Architektur BI-Anwendungen

32

2.2.1 Die BI-Plattform zur Integration von Datenquellen

34

2.2.2 Die BI-Plattform zur Vereinheitlichung der Frontends

36

2.3 Datenhaltung

37

2.3.1 Grenzen gängiger DWH/BI-Technologien

38

2.3.2 Datenhaltung im Hadoop-Ecosystem

39

2.3.3 In-Memory-Datenbanken

42

3 Datenmodellierung

46

3.1 Vorgehensweise

46

3.1.1 Anforderungsgetriebene Modellierung

46

3.1.2 Quellsystemgetriebene Modellierung

48

3.1.3 Kombination der Ansätze

49

3.2 Relationale Modellierung

49

3.2.1 Darstellung von relationalen Datenmodellen

50

3.2.2 Normalisierung

50

3.2.3 Stammdaten und Bewegungsdaten

51

3.2.4 Historisierung

51

3.2.5 Relationales Core

53

3.2.6 Corporate Information Factory

54

3.2.7 Data Vault Modeling

54

3.3 Dimensionale Modellierung

56

3.3.1 Implementierung von dimensionalen Modellen

57

3.3.1.1 Relationale Implementierung

58

3.3.1.2 Multidimensionale Implementierung

59

3.3.2 Dimensionen

60

3.3.2.1 Fachliche Attribute

60

3.3.2.2 Technische Attribute

60

3.3.2.3 Hierarchien

61

3.3.2.4 Conformed Dimensions

62

3.3.2.5 Slowly Changing Dimensions

63

3.3.2.6 Zeitdimension

66

3.3.2.7 Bridge Tables

67

3.3.2.8 Spezielle Dimensionen

69

3.3.3 Fakten

70

3.3.3.1 Kennzahlen

70

3.3.3.2 Typen von Fakten

70

3.3.4 Modellierung spezieller Problemstellungen

72

3.3.4.1 Fakten unterschiedlicher Granularität und Rollen

72

3.3.4.2 Gemeinsame Hierarchiestufen in verschiedenen Dimensionen

73

3.3.4.3 Modellierungsgrundsätze für Dimensionen und Fakten

74

3.3.5 Darstellung von dimensionalen Modellen

75

3.3.5.1 ADAPT-Notation

75

3.3.5.2 Entity-Relationship-Diagramme

77

3.3.5.3 Data-Warehouse-Bus-Matrix

77

3.3.6 Dimensionales Core

78

3.4 Tools zur Datenmodellierung

79

3.4.1 Tools für relationale Datenmodellierung

79

3.4.2 Tools für dimensionale Datenmodellierung

80

4 Datenintegration

82

4.1 Data Profiling

83

4.1.1 Probleme mangelnder Datenqualität

83

4.1.2 Einsatz von Data Profiling

84

4.2 ETL

85

4.2.1 Aufgaben der ETL-Prozesse

86

4.2.1.1 Extraktion aus Quellsystemen

86

4.2.1.2 Transformationen

86

4.2.1.3 Laden in die Zieltabellen

87

4.2.2 ETL-Tools

87

4.2.2.1 Funktionalität von ETL-Tools

89

4.2.2.2 ETL oder ELT?

89

4.2.2.3 Positionierung von ETL-Tools

91

4.2.3 Performance-Aspekte

91

4.2.3.1 Mengenbasierte statt datensatzbasierte Verarbeitung

91

4.2.3.2 ELT-Tool statt ETL-Tool

92

4.2.3.3 Reduktion der Komplexität

93

4.2.3.4 Frühzeitige Mengeneinschränkung

94

4.2.3.5 Parallelisierung

95

4.2.4 Steuerung der ETL-Prozesse

97

4.2.4.1 Protokollierung des ETL-Ablaufs

97

4.2.4.2 Restartfähigkeit und Wiederaufsetzpunkte

98

4.3 Extraktion und Delta-Ermittlung

99

4.3.1 Delta-Extraktion im Quellsystem

100

4.3.1.1 Änderungsmarker und Journaltabellen

100

4.3.1.2 Delta-Ermittlung und Pending Commits

101

4.3.1.3 Change Data Capture

102

4.3.2 Voll-Extraktion und Delta-Abgleich im Data Warehouse

103

4.3.2.1 Zwei Versionen des Vollabzugs in der Staging Area

104

4.3.2.2 Vorteil einer Voll-Extraktion für die Delta-Ermittlung

106

4.3.3 Wann verwende ich was?

106

4.4 Fehlerbehandlung

107

4.4.1 Fehlende Attribute

108

4.4.1.1 Filtern von fehlerhaften Datensätzen

108

4.4.1.2 Fehlerhafte Datensätze in Fehlertabelle schreiben

108

4.4.1.3 Singletons auf Attributebene

109

4.4.2 Unbekannte Codewerte

109

4.4.2.1 Filtern von fehlerhaften Datensätzen

110

4.4.2.2 Singletons auf Datensatzebene

110

4.4.2.3 Generierung von Embryo-Einträgen

110

4.4.3 Fehlende Dimensionseinträge

111

4.4.3.1 Filtern von unvollständigen Fakten

112

4.4.3.2 Referenz auf Singleton-Einträge

113

4.4.3.3 Generieren von Embryo-Einträgen

114

4.4.4 Doppelte Datensätze

115

4.4.4.1 Verwendung von DISTINCT

116

4.4.4.2 Nur ersten Datensatz übernehmen

116

4.5 Qualitätschecks

116

4.5.1 Qualitätschecks vor und während des Ladens

117

4.5.2 Qualitätschecks nach dem Laden

118

4.5.3 Qualitätschecks mithilfe von Test-Tools

118

4.6 Real-Time BI

119

4.6.1 Begriffsbestimmung

120

4.6.2 Garantierte Verfügbarkeit von Informationen zu gegebenem Zeitpunkt

120

4.6.3 Verfügbarkeit von Informationen simultan zur Entstehung

121

4.6.4 Verfügbarkeit von Informationen kurz nach ihrer Entstehung

123

4.6.4.1 Events und Batchverarbeitung

124

4.6.4.2 Real-Time-Partitionen

125

4.6.5 Zusammenfassung

126

5 Design der DWH-Schichten

128

5.1 Staging Area

129

5.1.1 Gründe für eine Staging Area

130

5.1.2 Struktur der Stage-Tabellen

131

5.1.3 ETL-Logik für Stage-Tabellen

132

5.1.3.1 Einschränkungen bei der Extraktion

133

5.1.3.2 Transformation

133

5.1.3.3 Sonstige Informationen

134

5.2 Cleansing Area

134

5.2.1 Gründe für eine Cleansing Area

134

5.2.2 Struktur der Cleanse-Tabellen

135

5.2.3 Beziehungen in der Cleansing Area

137

5.2.4 ETL-Logik für Cleanse-Tabellen

139

5.2.4.1 Einschränkungen bei der Extraktion

140

5.2.4.2 Transformation

140

5.2.4.3 Sonstige Informationen

141

5.3 Core-Datenmodell allgemein

141

5.3.1 Aufgaben und Anforderungen an das Core

142

5.3.2 Stammdaten im Core

143

5.3.3 Bewegungsdaten im Core

143

5.3.4 Beziehungen im Core

143

5.3.5 Datenmodellierungsmethoden für das Core

144

5.4 Core-Datenmodell relational mit Kopf- und Versionstabellen

145

5.4.1 Historisierung von Stammdaten mit Kopf- und Versionstabellen

146

5.4.2 Struktur der Stammdatentabellen

147

5.4.2.1 Tabellenspalten und Schlüssel

148

5.4.2.2 Beziehungen (1:n) zwischen Stammdaten

151

5.4.2.3 Beziehungen (m:n) zwischen Stammdaten

152

5.4.3 ETL-Logik für Stammdatentabellen

154

5.4.3.1 Lookups (Schritt 1)

155

5.4.3.2 Outer Join (Schritt 2)

156

5.4.3.3 Neue Datensätze (Schritt 3)

160

5.4.3.4 Schließen einer Version/Fall 1 (Schritt 4)

161

5.4.3.5 Aktualisieren/Fall 2 (Schritt 5)

161

5.4.3.6 Versionieren/Fall 3 und 4 (Schritt 6)

161

5.4.3.7 Singletons

161

5.4.4 Typen von Bewegungsdaten

162

5.4.4.1 Transaction Tables

163

5.4.4.2 Snapshot Tables

163

5.4.4.3 Snapshot Tables versioniert

164

5.4.5 Struktur der Bewegungstabellen

165

5.4.5.1 Tabellenspalten und Schlüssel

166

5.4.5.2 Beziehungen zu Stammdaten

169

5.4.6 ETL-Logik für Bewegungstabellen

172

5.4.6.1 Lookups

173

5.4.6.2 Sonstige Informationen

174

5.4.7 Views für externen Core-Zugriff

174

5.4.7.1 Views für Stammdaten

175

5.4.7.2 Views für Bewegungsdaten

179

5.5 Core-Datenmodell relational mit Data Vault

180

5.5.1 Stammdaten

180

5.5.2 Beziehungen

181

5.5.3 Bewegungsdaten

181

5.5.4 Historisierung

182

5.5.5 Struktur der Tabellen

182

5.5.5.1 Hubtabellen – Tabellenspalten und Schlüssel

182

5.5.5.2 Satellitentabellen – Tabellenspalten und Schlüssel

183

5.5.5.3 Linktabellen – Tabellenspalten und Schlüssel

184

5.5.6 ETL-Logik

185

5.5.7 Views für externen Core-Zugriff auf das Data-Vault-Datenmodell

186

5.5.7.1 Views für Stammdaten (ein Satellite pro Hub bzw. Link)

186

5.5.7.2 Views für Stammdaten (mehrere Satellites pro Hub bzw. Link)

189

5.6 Core-Datenmodell dimensional

192

5.6.1 Star- oder Snowflake-Schema

193

5.6.1.1 Star-Schema

193

5.6.1.2 Snowflake-Schema

194

5.6.2 Historisierung von Stammdaten mit SCD

196

5.6.3 Struktur der Dimensionstabellen (Snowflake)

199

5.6.3.1 Tabellenspalten und Schlüssel

200

5.6.3.2 Beziehungen zwischen Hierarchiestufen

203

5.6.4 ETL-Logik für Dimensionstabellen (Snowflake)

204

5.6.4.1 Lookup

204

5.6.4.2 Weitere Schritte

205

5.6.5 Struktur der Faktentabellen (Snowflake)

205

5.6.6 ETL-Logik für Faktentabellen (Snowflake)

207

5.6.7 n:m-Beziehungen im dimensionalen Core

207

5.7 Marts

209

5.7.1 ROLAP oder MOLAP?

210

5.7.2 Historisierung von Data Marts

211

5.7.3 Star- oder Snowflake-Schema (ROLAP)

212

5.7.4 Struktur der Dimensionstabellen (Star)

213

5.7.4.1 Tabellenspalten und Schlüssel

213

5.7.4.2 Beispiel für Conformed Rollup

216

5.7.4.3 Beispiel für Dimension mit mehreren Hierarchien

217

5.7.5 ETL-Logik für Dimensionstabellen (Star)

218

5.7.5.1 Extraktion aus dem relationalen Core

219

5.7.5.2 Extraktion aus dem dimensionalen Core

226

5.7.6 Struktur der Faktentabellen (Star-Schema)

228

5.7.7 ETL-Logik für Faktentabellen (Star)

229

5.7.8 Multidimensionale Data Marts

229

5.7.8.1 Dimensionen (Cube)

230

5.7.8.2 Fakten (Cube)

231

6 Physisches Datenbankdesign

234

6.1 Indexierung

235

6.1.1 Staging Area

236

6.1.2 Cleansing Area

236

6.1.3 Core

236

6.1.4 Data Marts

237

6.2 Constraints

238

6.2.1 Primary Key Constraints

238

6.2.2 Foreign Key Constraints

239

6.2.3 Unique Constraints

240

6.2.4 Check Constraints

240

6.2.5 NOT NULL Constraints

241

6.3 Partitionierung

241

6.3.1 Grundprinzip von Partitionierung

242

6.3.2 Gründe für Partitionierung

242

6.3.3 Partitionierung in Staging und Cleansing Area

243

6.3.4 Partitionierung im Core

244

6.3.5 Partitionierung in den Data Marts

244

6.4 Datenkomprimierung

245

6.4.1 Redundanz

246

6.4.2 Wörterbuchmethode/Tokenbasierte Reduktion

246

6.4.3 Entropiekodierung

246

6.4.4 Deduplikation

247

6.4.5 Komprimierung bei spaltenorientierter Datenhaltung

247

6.5 Aggregationen

248

6.5.1 Vorberechnete Aggregationen

249

6.5.2 Query Rewrite

249

6.5.3 Einsatz im Data Warehouse

250

7 BI-Anwendungen

252

7.1 Überblick

252

7.2 Standardberichte

255

7.3 Ad-hoc-Analyse

257

7.4 BI-Portale

258

8 Betrieb

260

8.1 Release-Management

260

8.1.1 Kategorisierung der Anforderungen

261

8.1.2 Schnittstellen zu Quellsystemen

262

8.1.3 Umgang mit historischen Daten

264

8.1.4 Datenbankumgebungen

265

8.2 Deployment

267

8.2.1 Manuelles Deployment

267

8.2.2 Filebasiertes Deployment

268

8.2.3 Repository-basiertes Deployment

269

8.2.4 Kombiniertes Deployment

269

8.3 Monitoring

271

8.3.1 Betriebsmonitoring

271

8.3.2 System und DB-Monitoring

271

8.3.3 ETL-Monitoring

271

8.3.4 Performance-Monitoring

272

8.4 Migration

274

8.4.1 Datenbank

275

8.4.2 ETL-Tool

276

8.4.3 BI-Tools

277

Literatur

278

Index

280

 

© 2009-2024 ciando GmbH