- Hvorfor har du brug for dimensionel datamodellering, og hvordan implementerer du den?
- Hvad er målene med datawarehouse-modellering?
- Hvorfor modellering?
- Ting, som du ikke ønsker, at dine analytikere skal gøre:
- Ting du kan og bør forvente af dine analytikere:
- Omdannelse fra transaktionsdatabaser til fakta
- Hvad er foranstaltninger, og hvorfor skal du fylde dine faktatabeller med dem?
- Hvorfor skal du opretholde et konsistent korn?
- Periodiske snapshot-faktatabeller
- Akkumulerende øjebliksbillede-faktatabeller
- Lokalisering af fakta via dimensioner
- Tegning af dimensioner fra reference- og råmetadata
- Hierarki i dimensioner
- Slowly Changing Dimensions
- Integrer dine Big Data i dit ETL-system
- Summary
- Fodnoter
Hvorfor har du brug for dimensionel datamodellering, og hvordan implementerer du den?
Dimensionel modellering (DM) er en del af Business Dimensional Lifecycle-metodologien, der er udviklet af Ralph Kimball, og som omfatter et sæt metoder, teknikker og koncepter til brug i design af datawarehouse. Tilgangen fokuserer på at identificere de vigtigste forretningsprocesser inden for en virksomhed og modellering og implementering af disse først, før der tilføjes yderligere forretningsprocesser, en bottom-up tilgang.
Hvad er målene med datawarehouse-modellering?
De mål, som Ross og Kimball har opstillet, er ligetil:
- Make information easily accessible
- present information consistently
- presentable and receptive to change
- present information in a timely way
- protect information assets
- fungere som et autoritativt og troværdigt grundlag for forbedret beslutningstagning (single source of truth i Data Engineering-sprog)
- VIP’erne skal acceptere dit system
Hvis du har arbejdet på eller brugt et ETL-system, ville du have bemærket, at informationskonsistens opnås ved hjælp af overensstemmende foranstaltninger, at rettidighed opnås ved hjælp af ETL-cyklusser, og at tilpasningsevnen også i høj grad afhænger af ETL-designet.
Hvorfor modellering?
Som datatekniker kender du SQL meget godt og kan sandsynligvis skrive SQL-forespørgsler til hele dagen lang. Men du kan ikke antage, at den typiske slutbruger vil være ekspert i at skrive SQL-forespørgsler. Så vores mål er at bygge et DW så nemt for analytikere at skrive analyseforespørgsler hurtigt og effektivt.
Ting, som du ikke ønsker, at dine analytikere skal gøre:
- Søgninger baseret på ID
- Kaskaderende outer joins(selv du ville ikke ønske at gøre det)
- Grupperede eller joinede flere underspørgsmål
- Recursive underspørgsmål(besøg blot Hackerrank SQL, og du ville forstå smerten)
- Subquery korrelation: Hentning af data på tværs af flere kolonner i forskellige subqueries
- Joins uden PK/FK: selv for mig(1.5 års DE-erfaring), er det svært at visualisere.
Ting du kan og bør forvente af dine analytikere:
- simple joins
- kolonner med navne og omfattende tekst
- simpel aggregering
- analytiske vinduesfunktioner
- DISTINCT
Bemærk, at ovenstående punkter ikke er de nemme, og at dit system skal være skalerbart nok til alle disse typer forespørgsler.
OLTP-databaser omdannes til fakta og dimensioner på grund af ovennævnte mål.
Omdannelse fra transaktionsdatabaser til fakta
De fleste virksomheder måler deres succes og effektivitet ved at måle visse typer af data. Disse data indfanger reelle forretningsaktiviteter og fremskridt. Disse data kaldes fakta.
De OLTP-orienterede databaser registrerer transaktioner ad gangen, lidt ligesom event streaming, men centraliseret omkring transaktioner. DW er anderledes. DW behøver ikke at registrere detaljer på transaktionsniveau. DW har brug for at have fakta på tværs af forskellige kriterier i din virksomhed. DW skal aggregere (eller lade analytikere aggregere) de oplysninger, der er nødvendige for at forbedre forretningen. Og derfor er redundans en utilgivelig synd i DW.
Hvad er foranstaltninger, og hvorfor skal du fylde dine faktatabeller med dem?
I et datawarehouse er en foranstaltning en egenskab, som der kan foretages beregninger på.
De fakta, som vi udleder fra de operationelle datalagre, kommer med nogle ekstra data, som typisk summeres i vores analyse. Det er de aspekter af en kendsgerning, der gør det muligt for analytikeren eller lederen, der ser analysen, at se værdien i kendsgerningen.
Hvorfor skal du opretholde et konsistent korn?
Så du kan sikre, at dit system legitimt kan korrelere og aggregere på tværs af kendsgerninger.
Men det er ikke altid muligt at have data på atomart niveau. Så for at bygge bro over denne kløft er der to metoder:
- Periodiske snapshot-faktatabeller
- Akkumulerende snapshot-faktatabeller
Periodiske snapshot-faktatabeller
Som navnet antyder, indsamles de med regelmæssige tidsintervaller. Forbrug af gas, revision og inspektioner er nogle eksempler på dataindsamling, som har periodiske øjebliksbilleder aktiveret for dem.
Akkumulerende øjebliksbillede-faktatabeller
Når en indikator for forretningsresultater er en hastighed for færdiggørelse af en forretningsproces i flere trin, vil du måske gerne opsamle på kornet af hele processen og registrere starten, færdiggørelsen og de mellemliggende trin. Dette kan være transaktionskornede, men det har en masse foranstaltninger i mellem. Så du bruger akkumulerende snapshot-faktatabeller til at besvare komplekse spørgsmål i business intelligence, hvor der går tid mellem fakta. Et godt eksempel kunne være en række i faktabellen om din bestilling af en kyllingesandwich og en række i faktabellen om posen, der bliver udleveret gennem bilens vindue i McDonald’s drive-thru.
Lokalisering af fakta via dimensioner
Du og dine analytikere skal vide, hvordan de skal forespørge og filtrere fakta for at udlede business intelligence fra dem. Dette formål tjener dimensioner.
Tegning af dimensioner fra reference- og råmetadata
Dimensioner oprettes næsten altid med en surrogatnøgle; surrogatnøglen refereres naturligvis af den fremmede nøgle (eller nøgler) i faktabellen. Vi søger i tabellen ved at søge i de dimensioner, som vi er interesseret i. Alle de andre data, der beskriver vores fakta, f.eks. tidsstempler, kundeagenter, butikkens placering, produkt og kunde, er det, vi omdanner til dimensioner.
Det smukke ved dimensionel modellering er, at fakta ikke defineres af primærnøgler eller nogen form for unik identifikator, men i stedet defineres de af kombinationen af dimensioner. Dette giver anledning til Star Schema.