Rough guide to data
vault modelling
En kortfattad beskrivning
Data vault, vad är det?
• Modelleringsparadigm (open source)
• Warehousing-metodologi (Dan Lindsted ©)
The Data Vault is a...
När behöver vi INTE data vault
There are times when a Data Vault is not necessary, nor even warranted for building. Those ...
Varför behöver vi DV (eller liknande)
Alternativ: designa i 3NF eller som stjärnor direkt.
Uppenbara problem:
• 3NF har ko...
Kort sagt behandlar Data vault ett datalagers
tre kärnfrågor:
• förmåga att stödja spårbarhet och revisioner i
enlighet me...
EDW
Bild © TopOfMinds
Var passar Data Vault i en DW-miljö
filer
DB staging
Enterprise
Data
Warehouse:
inget
raderas, allt
historiseras
övrigt
T....
DVi ekosystemetav modelleringstekniker
3NF, bra för operativa
databaser
DV, bra för enterprise
data warehouse.
Alternativ:...
Inte en slideshow utan Dilbert
Hur ser det ut då?
3 typer av tabeller:
• Hub, lista på unika verksamhetsnycklar
• Link, associationer eller relationer
• ...
Hur man ska tänka visuellt
3NF och Star Schema: Data Vault
Data Vault uniquely separates the Business Keys (Hubs) from the...
Färgerna fick jag lära mig på kursen
(© Hans Hultgren)
The process of ”vaulting”
Bild © Copyright Hans Hultgren, 2012
Unified decomposition
kund produkt
beställning
adress
pris
Avsändare
totalbelopp
LNK
Identifiera business
keys, create hubs
Hitta
attribut till
...
Hub Customer
SEQ_ID (PK) CUSTNR LOAD_DATE RCRD_SRC
1 200001 2012-03-11 WEBSALES
2 X23451 2012-04-22 POSTORDERS
Hub Product...
Sat Customer (PK = SEQ_ID+LOAD_DATE)
Sat Produkt (PK = SEQ_ID+LOAD_DATE)
Sat Orders (PK = SEQ_ID+LOAD_DATE)
SEQ_ID address...
LNK Orders
Sat Lnk Orders (PK = LNK_SEQ_ID+LOAD_DATE)
SEQ_ID (PK) ORDER_SEQ_ID
(FK)
PROD_SEQ_ID
(FK)
CUST_SEQ_ID
(FK)
LOAD...
Repetition
© Nicolas Gerard,
http://gerardnico.com/wiki/data_modeling/data_model_colours
ETL blir lätt och snabb!
Stora nyheten här är att laddningarna kan käras parallellt;
Också rätt så simpel ETL kod för varj...
Laddningsmönster HUB
Hubkolumner
• Hubens löpnummer-id, genererars vid laddning
• “Business Key”-värde, från källsystemet....
Laddningsmönster SAT
Satellitkolumner
• Hub eller Link löpnummer-id
• Load_Date
• End_date
• Record_Source
Optional Column...
Laddningsmönster LÄNK
Länkkolumner
• Löpnummer-id
• Load_Date
• Record_Source (generally a string)
• Minst två löpnummer-i...
Se DV som ett modelleringsperspektiv
(av många)
Shu – ”embrace the rule”. Följ DV-reglerna slaviskt. Var fundamentalist!
H...
Webbresurser att utforska
danlinstedt.com
twitter.com/dlinstedt
hanshultgren.wordpress.com
twitter.com/gohansgo
twitter.co...
Upcoming SlideShare
Loading in …5
×

Rough guide to data vault modelling

756 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
756
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
15
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Rough guide to data vault modelling

  1. 1. Rough guide to data vault modelling En kortfattad beskrivning
  2. 2. Data vault, vad är det? • Modelleringsparadigm (open source) • Warehousing-metodologi (Dan Lindsted ©) The Data Vault is a detail oriented, historical tracking and uniquely linked set of normalized tables that support one or more functional areas of business. It is a hybrid approach encompassing the best of breed between 3rd normal form (3NF) and star schema. The design is flexible, scalable, consistent and adaptable to the needs of the enterprise.
  3. 3. När behöver vi INTE data vault There are times when a Data Vault is not necessary, nor even warranted for building. Those times might include some of the following reasons: You are building a single-business-unit focused answer set You do not need an enterprise view You do not need an auditable historical data store (as you have all the data in a single source system, backed up forever) You do not have a number of external systems to integrate (3 or more?) You are running a columnar data store, Key=Value store, NoSQL store, or denormalized store (like Netezza)
  4. 4. Varför behöver vi DV (eller liknande) Alternativ: designa i 3NF eller som stjärnor direkt. Uppenbara problem: • 3NF har komplicerade ”kaskader” av PK/FK som är svårhanterliga när man försöker historisera • Stjärnor är ett helvete att bygga om när granularitetsändringar krävs.
  5. 5. Kort sagt behandlar Data vault ett datalagers tre kärnfrågor: • förmåga att stödja spårbarhet och revisioner i enlighet med organisationens och myndigheters krav. • förmåga att lätt anpassas till nya affärsmodeller, nya datakällor och nya regler. • förmåga att stödja integrerad företagsinformation och undvika att skapa informationssilos. Ett stockholmskt företag som specialiserar sig i implementering av DV samt kurser i ämnet:
  6. 6. EDW Bild © TopOfMinds
  7. 7. Var passar Data Vault i en DW-miljö filer DB staging Enterprise Data Warehouse: inget raderas, allt historiseras övrigt T.ex. DV
  8. 8. DVi ekosystemetav modelleringstekniker 3NF, bra för operativa databaser DV, bra för enterprise data warehouse. Alternativ: anchor (6NF), IIW… Dimensionell (stjärna), bra för OLAP Observera att DV är bara en av många olika möjligheter.
  9. 9. Inte en slideshow utan Dilbert
  10. 10. Hur ser det ut då? 3 typer av tabeller: • Hub, lista på unika verksamhetsnycklar • Link, associationer eller relationer • Satellit, deskriptiva attribut kund adress produkt pris order Avsändare Totalbelop link Order status
  11. 11. Hur man ska tänka visuellt 3NF och Star Schema: Data Vault Data Vault uniquely separates the Business Keys (Hubs) from the Associations (Links) and both of these from the Details that describe them and provide context (Satellites). hub hub lnk sat Primär nyckel FK attribut
  12. 12. Färgerna fick jag lära mig på kursen (© Hans Hultgren) The process of ”vaulting”
  13. 13. Bild © Copyright Hans Hultgren, 2012 Unified decomposition
  14. 14. kund produkt beställning adress pris Avsändare totalbelopp LNK Identifiera business keys, create hubs Hitta attribut till hubs och fördela dem i satelliter Identifiera UOW, ”transaktion”, granularitet. Detta är en länk.Order status BK produktnummer BK kund-id BK ordernummer
  15. 15. Hub Customer SEQ_ID (PK) CUSTNR LOAD_DATE RCRD_SRC 1 200001 2012-03-11 WEBSALES 2 X23451 2012-04-22 POSTORDERS Hub Product SEQ_ID (PK) PRODID LOAD_DATE RCRD_SRC 1 300-151 2012-08-16 WEBSALES 2 KD3232 2011-11-11 LAGER Hub Orders SEQ_ID (PK) ORDERNR LOAD_DATE RCRD_SRC 32 W3311 2012-10-08 WEBSALES 33 O2215 2012-10-09 POSTORDERS
  16. 16. Sat Customer (PK = SEQ_ID+LOAD_DATE) Sat Produkt (PK = SEQ_ID+LOAD_DATE) Sat Orders (PK = SEQ_ID+LOAD_DATE) SEQ_ID address LOAD_DATE END_DATE RCRD_SRC 1 Solna, källaren 2012-03-11 2012-04-22 WEBSALES 1 Lund, skyskrapan 2012-04-22 NULL WEBSALES 2 Måne, kratern 2012-04-22 NULL POSTORDERS SEQ_ID Pris, kronor LOAD_DATE END_DATE RCRD_SRC 2 100 2011-11-11 2012-09-01 LAGER 2 200 2012-09-01 NULL LAGER 1 56.60 2012-08-16 NULL WEBSALES SEQ_ID avsändare totalbelopp Load_date RCRD_SRC 32 Ulla 1230 2012-10-08 WEBSALES 33 Sandra 331 2012-10-09 POSTORDERS
  17. 17. LNK Orders Sat Lnk Orders (PK = LNK_SEQ_ID+LOAD_DATE) SEQ_ID (PK) ORDER_SEQ_ID (FK) PROD_SEQ_ID (FK) CUST_SEQ_ID (FK) LOAD_DATE RCRD_SRC 16 32 2 1 2012-10-08 WEBSALES 17 33 1 2 2012-10-09 POSTORDERS LNK_SEQ_ID Order status LOAD_DATE END_DATE RCRD_SRC 16 open 2012-10-08 2012-10-09 Websales 16 shipped 2012-10-09 NULL Websales 17 cancelled 2012-10-09 2012-10-10 Postorders
  18. 18. Repetition © Nicolas Gerard, http://gerardnico.com/wiki/data_modeling/data_model_colours
  19. 19. ETL blir lätt och snabb! Stora nyheten här är att laddningarna kan käras parallellt; Också rätt så simpel ETL kod för varje steg. ALLA ALLA LÄNKAR LÄNKARS SAT HUBAR OCH ALLA SAT EV LÄNKAR TILL FÖRST TILL HUBAR ANDRA LÄNKAR
  20. 20. Laddningsmönster HUB Hubkolumner • Hubens löpnummer-id, genererars vid laddning • “Business Key”-värde, från källsystemet. Normalt en sträng. • Load_Date (datum och tid) • Record_Source (namn på källsystemet, också sträng) Laddning • Select Distinct <list of business Keys> • Add timestamp and record_source • Insert into Hub if the value does not exist
  21. 21. Laddningsmönster SAT Satellitkolumner • Hub eller Link löpnummer-id • Load_Date • End_date • Record_Source Optional Columns • Attribut (minst en, oftast fler – mätetal, strängar och datum) Laddning • Select <list of attributes> from the source • Add timestamp and record_source • Lookup för att ta fram HUB_id eller LNK_id • Jämför med poster som redan finns i SAT. Vid förändring, skapa ny post (samt evt pensionera den gamla)
  22. 22. Laddningsmönster LÄNK Länkkolumner • Löpnummer-id • Load_Date • Record_Source (generally a string) • Minst två löpnummer-id:n från hubar eller andra länkar. Dessa kan modelleras som FK. Laddning • Select <Distinct list of business Key combinations> from source • Add timestamp and record_source • Lookup löpnummer-id:n från relaterade Hubar eller Länkar • Insert into Link if the value does not exist
  23. 23. Se DV som ett modelleringsperspektiv (av många) Shu – ”embrace the rule”. Följ DV-reglerna slaviskt. Var fundamentalist! Ha – ”break the rule”. Var flexibel och lyhörd. Verksamhetskrav leder dig kanske till briljanta lösningar där vissa delar är ej DV-konforma Ri – ”be the rule”. Du är mästare. DV för dig är ett språk som du talar flytande, och kan tom skämta på. Källa: Roland Damhofs Blogg
  24. 24. Webbresurser att utforska danlinstedt.com twitter.com/dlinstedt hanshultgren.wordpress.com twitter.com/gohansgo twitter.com/DM_Unseen dm-unseen.blogspot.nl

×