Upload
dmitri-apassov
View
508
Download
3
Embed Size (px)
Citation preview
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 vaultThere 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 setYou do not need an enterprise viewYou 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
EnterpriseData
Warehouse: inget
raderas, allt historiseras
övrigt
T.ex. DV
DV i ekosystemet av 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ändareTotalbelop
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ändaretotalbelopp
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 SATHUBAR OCH ALLA SAT EV LÄNKAR TILLFÖ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_SourceOptional 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 utforskadanlinstedt.comtwitter.com/dlinstedt
hanshultgren.wordpress.comtwitter.com/gohansgo
twitter.com/DM_Unseendm-unseen.blogspot.nl