View
6
Download
0
Category
Preview:
Citation preview
BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH
Datenmodellierung mit Data Vault:Herausforderungen in der PraxisTDWI Schweiz, 6. November 2018Dani Schnider, Trivadis AG
Dani Schnider
2
Working for Trivadis in Glattbrugg/Zurich– Senior Principal Consultant– Data Warehouse Lead Architect– Trainer of several CoursesCo-Author of the Books– Data Warehousing mit Oracle– Data Warehouse BlueprintsCertified Data Vault Data ModelerOracle ACE
06.11.2018 Datenmodelllierung mit Data Vault - TDWI Schweiz
@dani_schnider danischnider.wordpress.com
Datenmodelllierung mit Data Vault - TDWI Schweiz3 06.11.2018
Der richtige Schlüssel
Der richtige fachliche Schlüssel
4 06.11.2018
CustomerDatabase
(A)
Web ShopDatabase
(B)
Quellsysteme
Customer
Online User
✗✔
Customer_BK Customer_Name
A-123 Gregor Zeiler
A-456 Dani Schnider
B-0815 Dani Schnider
B-4711 Peter Welker
A-789 Lothar Reisinger
B-9876 Gregor Zeiler
✗
Customer_BK Customer_Name
23489724 Gregor Zeiler
90346262 Dani Schnider
98437098 Lothar Reisinger
82365405 Peter Welker
✔Datenmodelllierung mit Data Vault - TDWI Schweiz
EindeutigeKundennummer
Der richtige fachliche Schlüssel
Datenmodelllierung mit Data Vault - TDWI Schweiz5 06.11.2018
Und wenn keine eindeutige Kundennummer existiert?
Eigenen fachlichen Schlüssel definieren!
– E-Mail-Adresse?
– Vorname, Nachname, Geburtstag?
– Vorname, Nachname, Geburtstag, PLZ?
– Vorname, Nachname, Geburtstag, E-Mail-Adresse?
Guten fachlichen Schlüssel finden ist schwierigste Aufgabe von DV-Modellierung
– Primary Key von Quellsystem ist Notlösung
– Verhindert Integration von mehreren Quellsystemen
Nicht alle Kundenhaben eine
E-Mail-Adresse
Was wenn zweiKunden mit
gleichem Namenam gleichen Tag geboren sind?
Was wenn einKunde in eineandere Stadt
umzieht?
Was wenn einKunde mehrereE-Mail-Adressen
hat?
Der richtige fachliche Schlüssel
6 06.11.2018
CustomerDatabase
(A)
Web ShopDatabase
(B)
Quellsysteme
Customer
Online User
Datenmodelllierung mit Data Vault - TDWI Schweiz
IntegratedCustomer
Same-AsLink (SAL)
Business Key:• Source PK
Business Key:• Source PK
Business Key:• First Name• Last Name• [Birthdate]• [E-Mail]
Raw Data Vault Business Data Vault
Datenmodelllierung mit Data Vault - TDWI Schweiz7 06.11.2018
Ping-Pong-Effekt
Ping-Pong-Effekt
Datenmodelllierung mit Data Vault - TDWI Schweiz8 06.11.2018
BK Name City
100 Thomas Bern
200 Daniel Zürich
300 Peter Stuttgart
SID TS Name RS
BK Name E-Mail
SID TS City RS
SID TS E-Mail RS
SID BK RSSID BK RS
1 100 A
2 200 A
3 300 A
SID TS Name RS
1 t1 Thomas A
2 t1 Daniel A
3 t1 Peter A
SID TS City RS
1 t1 Bern A
2 t1 Zürich A
3 t1 Stuttgart A
Ping-Pong-Effekt
Datenmodelllierung mit Data Vault - TDWI Schweiz9 06.11.2018
BK Name City
100 Thomas Bern
200 Daniel Zürich
300 Peter Stuttgart
SID TS Name RS
1 t1 Thomas A
2 t1 Daniel A
3 t1 Peter A
BK Name E-Mail
400 Martin martin@bds.com
200 Dani dani@techevent.ch
300 Peter peter@welker.de
500 Irina irina@was-here.at
SID TS City RS
1 t1 Bern A
2 t1 Zürich A
3 t1 Stuttgart A
SID TS E-Mail RS
SID BK RS
1 100 A
2 200 A
3 300 A
SID BK RS
1 100 A
2 200 A
3 300 A
4 400 B
5 500 B
SID TS Name RS
1 t1 Thomas A
2 t1 Daniel A
3 t1 Peter A
4 t2 Martin B
2 t2 Dani B
5 t2 Irina B
SID TS E-Mail RS
4 t2 martin@bds.com B
2 t2 dani@techevent.ch B
3 t2 peter@welker.de B
5 t2 irina@was-here.at B
Ping-Pong-Effekt
Datenmodelllierung mit Data Vault - TDWI Schweiz10 06.11.2018
BK Name City
100 Thomas Basel
200 Daniel Zürich
300 Peter Stuttgart
500 Irina Wien
SID TS Name RS
1 t1 Thomas A
2 t1 Daniel A
3 t1 Peter A
4 t2 Martin B
2 t2 Dani B
5 t2 Irina B
BK Name E-Mail
400 Martin martin@bds.com
200 Dani dani@techevent.ch
300 Peter peter@welker.de
500 Irina irina@was-here.at
SID TS City RS
1 t1 Bern A
2 t1 Zürich A
3 t1 Stuttgart A
SID TS E-Mail RS
4 t2 martin@bds.com B
2 t2 dani@techevent.ch B
3 t2 peter@welker.de B
5 t2 irina@was-here.at B
SID BK RS
1 100 A
2 200 A
3 300 A
4 400 B
5 500 B
SID TS Name RS
1 t1 Thomas A
2 t1 Daniel A
3 t1 Peter A
4 t2 Martin B
2 t2 Dani B
5 t2 Irina B
2 t3 Daniel A
SID TS City RS
1 t1 Bern A
2 t1 Zürich A
3 t1 Stuttgart A
1 t3 Basel A
5 t3 Wien A
Ping-Pong-Effekt
Datenmodelllierung mit Data Vault - TDWI Schweiz11 06.11.2018
BK Name City
100 Thomas Basel
200 Daniel Zürich
300 Peter Stuttgart
500 Irina Wien
SID TS Name RS
1 t1 Thomas A
2 t1 Daniel A
3 t1 Peter A
4 t2 Martin B
2 t2 Dani B
5 t2 Irina B
2 t3 Daniel A
BK Name E-Mail
400 Martin martin@bds.com
200 Dani dani@techevent.ch
300 Peter peter@welker.de
500 Irina irina@is-there.com
600 Beat beat@techevent.ch
SID TS City RS
1 t1 Bern A
2 t1 Zürich A
3 t1 Stuttgart A
1 t3 Basel A
5 t3 Wien A
SID TS E-Mail RS
4 t2 martin@bds.com B
2 t2 dani@techevent.ch B
3 t2 peter@welker.de B
5 t2 irina@was-here.at B
SID BK RS
1 100 A
2 200 A
3 300 A
4 400 B
5 500 B
SID BK RS
1 100 A
2 200 A
3 300 A
4 400 B
5 500 B
6 600 B
SID TS Name RS
1 t1 Thomas A
2 t1 Daniel A
3 t1 Peter A
4 t2 Martin B
2 t2 Dani B
5 t2 Irina B
2 t3 Daniel A
2 t4 Dani B
6 t4 Beat B
SID TS E-Mail RS
4 t2 martin@bds.com B
2 t2 dani@techevent.ch B
3 t2 peter@welker.de B
5 t2 irina@was-here.at B
5 t4 irina@is-there.com B
6 t4 beat@techevent.ch B
Ping-Pong-Effekt
Datenmodelllierung mit Data Vault - TDWI Schweiz12 06.11.2018
BK Name City
100 Thomas Basel
200 Daniel Zürich
300 Peter Stuttgart
500 Irina Wien
SID TS Name RS
1 t1 Thomas A
2 t1 Daniel A
3 t1 Peter A
4 t2 Martin B
2 t2 Dani B
5 t2 Dani B
2 t3 Daniel A
BK Name E-Mail
400 Martin martin@bds.com
200 Dani dani@techevent.ch
300 Peter peter@welker.de
500 Irina irina@is-there.com
600 Beat beat@techevent.ch
SID TS City RS
1 t1 Bern A
2 t1 Zürich A
3 t1 Stuttgart A
1 t3 Basel A
5 t3 Wien A
SID TS E-Mail RS
4 t2 martin@bds.com B
2 t2 dani@techevent.ch B
3 t2 peter@welker.de B
5 t2 irina@was-here.at B
SID BK RS
1 100 A
2 200 A
3 300 A
4 400 B
5 500 B
SID BK RS
1 100 A
2 200 A
3 300 A
4 400 B
5 500 B
6 600 B
SID TS Name RS
1 t1 Thomas A
2 t1 Daniel A
3 t1 Peter A
4 t2 Martin B
2 t2 Dani B
5 t2 Irina B
2 t3 Daniel A
2 t4 Dani B
6 t4 Beat B
SID TS E-Mail RS
4 t2 martin@bds.com B
2 t2 dani@techevent.ch B
3 t2 peter@welker.de B
5 t2 irina@was-here.at B
5 t4 irina@is-there.com B
6 t4 beat@techevent.ch B
Ping-Pong-Effekt
Datenmodelllierung mit Data Vault - TDWI Schweiz13 06.11.2018
Laden von Daten aus mehreren Quellsystemen in einen Satelliten
– Kann zu zusätzlichen Versionen führen (“Ping-Pong-Effekt”)
– Aktuelle Version hängt von Ladereihenfolge ab (“der Letzte gewinnt”)
– Inkonsistenzen werden nicht erkannt
Laden von Daten aus mehreren Quellsystemen in separate Satelliten
– Pro Quellsystem wird ein Satellit erstellt
– Jeder Satellit hat eine unabhängige Historisierung
– Inkonsistenzen können über Transformationsregeln erkannt und korrigiert werden(z.B. Nimm Name aus Quellsystem A, falls nicht vorhanden aus Quellsystem B)
Ping-Pong-Effekt
Datenmodelllierung mit Data Vault - TDWI Schweiz14 06.11.2018
BK Name City
100 Thomas Basel
200 Daniel Zürich
300 Peter Stuttgart
500 Dani Wien
SID TS Name RS
1 t1 Thomas A
2 t1 Daniel A
3 t1 Peter A
5 t3 Irina A
BK Name E-Mail
400 Martin martin@bds.com
200 Dani dani@techevent.ch
300 Peter peter@welker.de
500 Irina irina@is-there.com
600 Beat beat@techevent.ch
SID TS City RS
1 t1 Bern A
2 t1 Zürich A
3 t1 Stuttgart A
1 t3 Basel A
5 t3 Wien A
SID TS E-Mail RS
4 t2 martin@bds.com B
2 t2 dani@techevent.ch B
3 t2 peter@welker.de B
5 t2 irina@was-here.at B
SID BK RS
1 100 A
2 200 A
3 300 A
4 400 B
5 500 B
SID BK RS
1 100 A
2 200 A
3 300 A
4 400 B
5 500 B
6 600 B
SID TS Name RS
4 t2 Martin B
2 t2 Dani B
3 t2 Peter B
5 t2 Irina B
6 t4 Beat BSID TS E-Mail RS
4 t2 martin@bds.com B
2 t2 dani@techevent.ch B
3 t2 peter@welker.de B
5 t2 irina@was-here.at B
5 t4 irina@is-there.com B
6 t4 beat@techevent.ch B
Datenmodelllierung mit Data Vault - TDWI Schweiz15 06.11.2018
Multi-Active Satellites
Multi-Active Satellite
Datenmodelllierung mit Data Vault - TDWI Schweiz16 06.11.2018
Key TS Addr_Type Name City
1 t1 Billing Thomas Bern
2 t1 Billing Peter Zürich
2 t1 Shipping Peter Stuttgart
3 t1 Billing Martin Zürich
3 t1 Shipping Martin Bern
Key TS Addr_Type Name City
1 t1 Billing Thomas Bern
2 t1 Billing Peter Zürich
2 t1 Shipping Peter Stuttgart
3 t1 Billing Martin Zürich
3 t1 Shipping Martin Bern
1 t2 Billing Thomas Basel
1 t2 Shipping Thomas Bern
Key TS Addr_Type Name City
1 t1 Billing Thomas Bern
2 t1 Billing Peter Zürich
2 t1 Shipping Peter Stuttgart
3 t1 Billing Martin Zürich
3 t1 Shipping Martin Bern
1 t2 Billing Thomas Basel
1 t2 Shipping Thomas Bern
2 t3 Shipping Peter Zürich
3 t3 Billing Martin Basel
Key TS Addr_Type Name City
1 t1 Billing Thomas Bern
2 t1 Billing Peter Zürich
2 t1 Shipping Peter Stuttgart
3 t1 Billing Martin Zürich
3 t1 Shipping Martin Bern
1 t2 Billing Thomas Basel
1 t2 Shipping Thomas Bern
2 t3 Shipping Peter Zürich
3 t3 Billing Martin Basel
Alternative 1: Separate Satelliten
Datenmodelllierung mit Data Vault - TDWI Schweiz17 06.11.2018
Key TS Addr_Type Name City
1 t1 Billing Thomas Bern
2 t1 Billing Peter Zürich
3 t1 Billing Martin Zürich
1 t2 Billing Thomas Basel
3 t3 Billing Martin Basel
Key TS Addr_Type Name City
2 t1 Shipping Peter Stuttgart
3 t1 Shipping Martin Bern
1 t2 Shipping Thomas Bern
2 t3 Shipping Peter Zürich
Alternative 2: Zusätzlicher Hub und generischer Link
Datenmodelllierung mit Data Vault - TDWI Schweiz18 06.11.2018
Problem wurde in “Multi-Active Link”
verschoben
Was ist der fachliche
Schlüssel einerAdresse?
Alternative 3: Zusätzlicher Hub und spezifische Links
Datenmodelllierung mit Data Vault - TDWI Schweiz19 06.11.2018
Was ist der fachliche
Schlüssel einerAdresse?
Multi-Active Satellites
Datenmodelllierung mit Data Vault - TDWI Schweiz20 06.11.2018
Vorteile:
Klassifizierung von gleichartigen Satelliten mit unterschiedlichen Typen
Vermeidung von mehreren Satelliten mit gleicher Struktur
Nachteile:
Abweichung von Standard-Patterns, separate ETL-/Abfragelogik notwendig
Fachliche Zusammenhänge im Modell nicht sichtbar
(Meine) Empfehlungen:
Wenn möglich vermeiden
Alternativen 1 oder 2 verwenden
Blog Post von Roelant Vos:Schools of thought on implementing Multi-Active Satellites, http://roelantvos.com/blog/?p=2175
Datenmodelllierung mit Data Vault - TDWI Schweiz21 06.11.2018
Generische Datenmodelle
Fall 1: Bewegungsdaten “dynamisch konfigurierbar”
Datenmodelllierung mit Data Vault - TDWI Schweiz22 06.11.2018
“Calculated Values Table”(~ Key-Value)
Fall 2: Herleitung aus ”generischem” logischen Modell
Datenmodelllierung mit Data Vault - TDWI Schweiz23 06.11.2018
Generische Datenmodelle
Datenmodelllierung mit Data Vault - TDWI Schweiz24 06.11.2018
Grundidee:
Erweiterungen ohne Modellanpassungen möglich
Datenmodell soll möglichst allgemein gehalten werden
Konfigurierbar über Metadaten (z.B. Rolle, Objekttyp, etc.)
Einsatzgebiet:
Agile DWH-Projekte mit vielenErweiterungen und Change Requests
Empfehlung:
Nicht verwenden!
Widerspruch zumGrundprinzip von
Data Vault
Partner
ObjectRole
Type
Weitere Informationen
Datenmodelllierung mit Data Vault - TDWI Schweiz25 06.11.2018
How to Build Hash Keys in Oraclehttps://danischnider.wordpress.com/2017/01/24/how-to-build-hash-keys-in-oracle/
biGENiUS Generates Data Vaulthttps://danischnider.wordpress.com/2016/12/22/bigenius-generates-data-vault/
Delta Detection in Oracle SQLhttps://danischnider.wordpress.com/2016/10/08/delta-detection-in-oracle-sql/
Foreign Key Constraints in an Oracle Data Warehousehttps://danischnider.wordpress.com/2015/12/01/foreign-key-constraints-in-an-oracle-data-warehouse/
Loading Dimensions from a Data Vault Modelhttps://danischnider.wordpress.com/2015/11/12/loading-dimensions-from-a-data-vault-model/
Join Elimination: Difference in Oracle 11g and 12chttps://danischnider.wordpress.com/2015/06/29/join-elimination-difference-in-oracle-11g-and-12c/
Data Vault Challenge Workshophttps://danischnider.wordpress.com/2013/10/06/data-vault-challenge-workshop/
Data Vault Modeling – My first attempt to walkhttps://danischnider.wordpress.com/2013/04/30/data-vault-modeling-my-first-attempt-to-walk-2/
danischnider.wordpress.com
Recommended