25
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 Praxis TDWI Schweiz, 6. November 2018 Dani Schnider, Trivadis AG

Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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

Page 2: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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

Page 3: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

Datenmodelllierung mit Data Vault - TDWI Schweiz3 06.11.2018

Der richtige Schlüssel

Page 4: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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

Page 5: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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?

Page 6: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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

Page 7: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

Datenmodelllierung mit Data Vault - TDWI Schweiz7 06.11.2018

Ping-Pong-Effekt

Page 8: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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

Page 9: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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 [email protected]

200 Dani [email protected]

300 Peter [email protected]

500 Irina [email protected]

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 [email protected] B

2 t2 [email protected] B

3 t2 [email protected] B

5 t2 [email protected] B

Page 10: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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 [email protected]

200 Dani [email protected]

300 Peter [email protected]

500 Irina [email protected]

SID TS City RS

1 t1 Bern A

2 t1 Zürich A

3 t1 Stuttgart A

SID TS E-Mail RS

4 t2 [email protected] B

2 t2 [email protected] B

3 t2 [email protected] B

5 t2 [email protected] 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

Page 11: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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 [email protected]

200 Dani [email protected]

300 Peter [email protected]

500 Irina [email protected]

600 Beat [email protected]

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 [email protected] B

2 t2 [email protected] B

3 t2 [email protected] B

5 t2 [email protected] 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 [email protected] B

2 t2 [email protected] B

3 t2 [email protected] B

5 t2 [email protected] B

5 t4 [email protected] B

6 t4 [email protected] B

Page 12: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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 [email protected]

200 Dani [email protected]

300 Peter [email protected]

500 Irina [email protected]

600 Beat [email protected]

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 [email protected] B

2 t2 [email protected] B

3 t2 [email protected] B

5 t2 [email protected] 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 [email protected] B

2 t2 [email protected] B

3 t2 [email protected] B

5 t2 [email protected] B

5 t4 [email protected] B

6 t4 [email protected] B

Page 13: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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)

Page 14: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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 [email protected]

200 Dani [email protected]

300 Peter [email protected]

500 Irina [email protected]

600 Beat [email protected]

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 [email protected] B

2 t2 [email protected] B

3 t2 [email protected] B

5 t2 [email protected] 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 [email protected] B

2 t2 [email protected] B

3 t2 [email protected] B

5 t2 [email protected] B

5 t4 [email protected] B

6 t4 [email protected] B

Page 15: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

Datenmodelllierung mit Data Vault - TDWI Schweiz15 06.11.2018

Multi-Active Satellites

Page 16: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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

Page 17: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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

Page 18: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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?

Page 19: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

Alternative 3: Zusätzlicher Hub und spezifische Links

Datenmodelllierung mit Data Vault - TDWI Schweiz19 06.11.2018

Was ist der fachliche

Schlüssel einerAdresse?

Page 20: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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

Page 21: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

Datenmodelllierung mit Data Vault - TDWI Schweiz21 06.11.2018

Generische Datenmodelle

Page 22: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

Fall 1: Bewegungsdaten “dynamisch konfigurierbar”

Datenmodelllierung mit Data Vault - TDWI Schweiz22 06.11.2018

“Calculated Values Table”(~ Key-Value)

Page 23: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

Fall 2: Herleitung aus ”generischem” logischen Modell

Datenmodelllierung mit Data Vault - TDWI Schweiz23 06.11.2018

Page 24: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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

Page 25: Herausforderungen mit Data Vault...A-456 Dani Schnider B-0815 Dani Schnider B-4711 Peter Welker A-789 Lothar Reisinger B-9876 Gregor Zeiler 23489724 90346262 98437098 Lothar Reisinger

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