SlideShare uma empresa Scribd logo
1 de 24
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 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.
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)
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.
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:
EDW
Bild © TopOfMinds
Var passar Data Vault i en DW-miljö
filer
DB staging
Enterprise
Data
Warehouse:
inget
raderas, allt
historiseras
övrigt
T.ex. DV
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.
Inte en slideshow utan Dilbert
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
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
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
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
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
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
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
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 varje steg.
ALLA ALLA LÄNKAR LÄNKARS SAT
HUBAR OCH ALLA SAT EV LÄNKAR TILL
FÖRST TILL HUBAR ANDRA LÄNKAR
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
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)
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
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
Webbresurser att utforska
danlinstedt.com
twitter.com/dlinstedt
hanshultgren.wordpress.com
twitter.com/gohansgo
twitter.com/DM_Unseen
dm-unseen.blogspot.nl

Mais conteúdo relacionado

Semelhante a Rough guide to data vault modelling

VT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTMLVT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTMLAnton Tibblin
 
Hur man kan testa sin HTTPS-server
Hur man kan testa sin HTTPS-serverHur man kan testa sin HTTPS-server
Hur man kan testa sin HTTPS-serverMichael Boman
 
LODify - länkade data i molnet
LODify - länkade data i molnetLODify - länkade data i molnet
LODify - länkade data i molnetMetaSolutions AB
 
Alfresco administration stockholm meetup
Alfresco administration stockholm meetupAlfresco administration stockholm meetup
Alfresco administration stockholm meetupCarl Nordenfelt
 
VT18 - DA355A/DA344A - Introduktion till HTML
VT18 - DA355A/DA344A - Introduktion till HTMLVT18 - DA355A/DA344A - Introduktion till HTML
VT18 - DA355A/DA344A - Introduktion till HTMLAnton Tibblin
 
VT2019 - DA355A - Intro HTML & CSS
VT2019 - DA355A - Intro HTML & CSSVT2019 - DA355A - Intro HTML & CSS
VT2019 - DA355A - Intro HTML & CSSAnton Tibblin
 
Webbens Arkitektur
Webbens ArkitekturWebbens Arkitektur
Webbens Arkitekturniklal
 
HT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenHT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenAnton Tibblin
 
Integration mule
Integration muleIntegration mule
Integration mulehedenberg
 
Länkad Data
Länkad DataLänkad Data
Länkad Dataniklal
 
Datalistor i alfresco
Datalistor i alfrescoDatalistor i alfresco
Datalistor i alfrescoLoftux
 
Masterdata produktbeskrivning
Masterdata produktbeskrivningMasterdata produktbeskrivning
Masterdata produktbeskrivningIRISslideshare
 
VT2018 - DA355A - LocalStorage & Bootstrap
VT2018 - DA355A - LocalStorage & BootstrapVT2018 - DA355A - LocalStorage & Bootstrap
VT2018 - DA355A - LocalStorage & BootstrapAnton Tibblin
 
HT17 - DA156A - Tabeller & Formulär
HT17 - DA156A - Tabeller & FormulärHT17 - DA156A - Tabeller & Formulär
HT17 - DA156A - Tabeller & FormulärAnton Tibblin
 
Varje resa börjar med ett litet steg (internetdagarna 2011)
Varje resa börjar med ett litet steg (internetdagarna 2011)Varje resa börjar med ett litet steg (internetdagarna 2011)
Varje resa börjar med ett litet steg (internetdagarna 2011)Per Åström
 
HT19 - DA156A - Tabeller & formulär
HT19 - DA156A - Tabeller & formulärHT19 - DA156A - Tabeller & formulär
HT19 - DA156A - Tabeller & formulärAnton Tibblin
 
HT18 - DA156A - Tabeller & Formulär
HT18 - DA156A - Tabeller & FormulärHT18 - DA156A - Tabeller & Formulär
HT18 - DA156A - Tabeller & FormulärAnton Tibblin
 

Semelhante a Rough guide to data vault modelling (20)

VT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTMLVT17 - DA355A - Introduktion HTML
VT17 - DA355A - Introduktion HTML
 
Hur man kan testa sin HTTPS-server
Hur man kan testa sin HTTPS-serverHur man kan testa sin HTTPS-server
Hur man kan testa sin HTTPS-server
 
Introduktion till LODify
Introduktion till LODifyIntroduktion till LODify
Introduktion till LODify
 
LODify - länkade data i molnet
LODify - länkade data i molnetLODify - länkade data i molnet
LODify - länkade data i molnet
 
Alfresco administration stockholm meetup
Alfresco administration stockholm meetupAlfresco administration stockholm meetup
Alfresco administration stockholm meetup
 
VT18 - DA355A/DA344A - Introduktion till HTML
VT18 - DA355A/DA344A - Introduktion till HTMLVT18 - DA355A/DA344A - Introduktion till HTML
VT18 - DA355A/DA344A - Introduktion till HTML
 
VT2019 - DA355A - Intro HTML & CSS
VT2019 - DA355A - Intro HTML & CSSVT2019 - DA355A - Intro HTML & CSS
VT2019 - DA355A - Intro HTML & CSS
 
Webbens Arkitektur
Webbens ArkitekturWebbens Arkitektur
Webbens Arkitektur
 
HT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenHT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursen
 
Kortfattat om nosql
Kortfattat om nosqlKortfattat om nosql
Kortfattat om nosql
 
Integration mule
Integration muleIntegration mule
Integration mule
 
Länkad Data
Länkad DataLänkad Data
Länkad Data
 
Datalistor i alfresco
Datalistor i alfrescoDatalistor i alfresco
Datalistor i alfresco
 
Masterdata produktbeskrivning
Masterdata produktbeskrivningMasterdata produktbeskrivning
Masterdata produktbeskrivning
 
VT2018 - DA355A - LocalStorage & Bootstrap
VT2018 - DA355A - LocalStorage & BootstrapVT2018 - DA355A - LocalStorage & Bootstrap
VT2018 - DA355A - LocalStorage & Bootstrap
 
HT17 - DA156A - Tabeller & Formulär
HT17 - DA156A - Tabeller & FormulärHT17 - DA156A - Tabeller & Formulär
HT17 - DA156A - Tabeller & Formulär
 
Sympathy for data
Sympathy for dataSympathy for data
Sympathy for data
 
Varje resa börjar med ett litet steg (internetdagarna 2011)
Varje resa börjar med ett litet steg (internetdagarna 2011)Varje resa börjar med ett litet steg (internetdagarna 2011)
Varje resa börjar med ett litet steg (internetdagarna 2011)
 
HT19 - DA156A - Tabeller & formulär
HT19 - DA156A - Tabeller & formulärHT19 - DA156A - Tabeller & formulär
HT19 - DA156A - Tabeller & formulär
 
HT18 - DA156A - Tabeller & Formulär
HT18 - DA156A - Tabeller & FormulärHT18 - DA156A - Tabeller & Formulär
HT18 - DA156A - Tabeller & Formulär
 

Rough guide to data vault modelling

  • 1. Rough guide to data vault modelling En kortfattad beskrivning
  • 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. 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. 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. 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:
  • 7. Var passar Data Vault i en DW-miljö filer DB staging Enterprise Data Warehouse: inget raderas, allt historiseras övrigt T.ex. DV
  • 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. Inte en slideshow utan Dilbert
  • 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. 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. Färgerna fick jag lära mig på kursen (© Hans Hultgren) The process of ”vaulting”
  • 13. Bild © Copyright Hans Hultgren, 2012 Unified decomposition
  • 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. 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. 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. 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
  • 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. 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. 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. 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. 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