rough guide to data vault modelling

24
Rough guide to data vault modelling En kortfattad beskrivning

Upload: dmitri-apassov

Post on 26-Jun-2015

514 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Rough guide to data vault modelling

Rough guide to data vault modelling

En kortfattad beskrivning

Page 2: Rough guide to data vault modelling

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.

Page 3: Rough guide to data vault modelling

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)

Page 4: Rough guide to data vault modelling

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.

Page 5: Rough guide to data vault modelling

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:

Page 6: Rough guide to data vault modelling

EDW

Bild © TopOfMinds

Page 7: Rough guide to data vault modelling

Var passar Data Vault i en DW-miljö

filer

DB staging

EnterpriseData

Warehouse: inget

raderas, allt historiseras

övrigt

T.ex. DV

Page 8: Rough guide to data vault modelling

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.

Page 9: Rough guide to data vault modelling

Inte en slideshow utan Dilbert

Page 10: Rough guide to data vault modelling

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

Page 11: Rough guide to data vault modelling

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

Page 12: Rough guide to data vault modelling

Färgerna fick jag lära mig på kursen (© Hans Hultgren)

The process of ”vaulting”

Page 13: Rough guide to data vault modelling

Bild © Copyright Hans Hultgren, 2012

Unified decomposition

Page 14: Rough guide to data vault modelling

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

Page 15: Rough guide to data vault modelling

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

Page 16: Rough guide to data vault modelling

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

Page 17: Rough guide to data vault modelling

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

Page 18: Rough guide to data vault modelling

Repetition

© Nicolas Gerard, http://gerardnico.com/wiki/data_modeling/data_model_colours

Page 19: Rough guide to data vault modelling

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

Page 20: Rough guide to data vault modelling

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

Page 21: Rough guide to data vault modelling

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)

Page 22: Rough guide to data vault modelling

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

Page 23: Rough guide to data vault modelling

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

Page 24: Rough guide to data vault modelling

Webbresurser att utforskadanlinstedt.comtwitter.com/dlinstedt

hanshultgren.wordpress.comtwitter.com/gohansgo

twitter.com/DM_Unseendm-unseen.blogspot.nl