Vad är dimensionsmodellering i Data Warehouse? Lär dig typer

⚡ Smart sammanfattning

Dimensionella modeller i datalagerdesign organiserar information i fakta- och dimensionstabeller så att analytiker snabbt kan hämta och sammanfatta numeriska mått, enligt Kimball-metoden i fem steg som identifierar affärsprocessen, kornigheten, dimensionerna, fakta och det slutliga schemat.

  • 🎯 Kärnsyfte: En dimensionell modell justerar ett datalager för snabba läsningar och rapportering, till skillnad från relationsmodeller byggda för realtidstransaktioner.
  • 🧱 Byggklossar: Fakta innehåller numeriska mått, medan dimensioner och deras attribut ger sammanhanget kring varje faktum för vem, vad och var.
  • 🔑 Fakta- och dimensionstabeller: En faktatabell lagrar mått plus främmande nycklar; avnormaliserade dimensionstabeller lagrar beskrivande attribut och hierarkier.
  • 🪜 Femstegsmetod: Identifiera affärsprocessen, ange strukturen, välj dimensionerna, välj fakta och bygg sedan schemat.
  • Schemaval: Stjärnscheman håller dimensionerna avnormaliserade för hastighet, medan snöflingescheman normaliserar dem för att spara lagringsutrymme.
  • 🚀 Viktiga fördelar: Standardiserade, affärsvänliga dimensioner förbättrar frågeprestanda och gör att nya dimensioner kan läggas till med minimal störning.

Dimensionell modell i ett datalager som visar fakta- och dimensionstabeller

Vad är dimensionsmodellering?

Dimensionell modellering (DM) är en datastrukturteknik optimerad för datalagring i ett datalager. Dess syfte är att finjustera databasen för snabbare hämtning av data. Konceptet utvecklades av Ralph Kimball och är uppbyggt kring två tabelltyper: "fakta"- och "dimensionstabeller".

En dimensionell modell i ett datalager är utformad för att läsa, sammanfatta och analysera numerisk information såsom värden, saldon, antal och vikter. Relationsmodeller är däremot optimerade för att lägga till, uppdatera och ta bort data i ett realtidsbaserat online-transaktionssystem.

Var och en av dessa metoder lagrar data på sitt eget sätt, och var och en erbjuder tydliga fördelar.

I en relationsmodell minskar normalisering och ER-modeller dataredundans. En dimensionsmodell arrangerar istället data så att information är lättare att hämta och rapporter är lättare att generera.

Av denna anledning passar dimensionella modeller datalagring system snarare än transaktionstunga relationella system. Eftersom modellen ligger till grund för det bredare datalagerarkitektur, avsnitten nedan bryter ner dess element, typer och designsteg.

Element i dimensionsdatamodellen

Faktum

Fakta är de mätvärden eller mätvärden som hämtas från en affärsprocess. I en försäljningsprocess är till exempel kvartalsförsäljningssiffran ett faktum – det numeriska värde som företaget vill analysera.

Dimensionera

En dimension ger sammanhanget kring en affärsprocesshändelse. Enkelt uttryckt ger dimensioner information om vem, vad och var för ett faktum. För faktumet "kvartalsförsäljningssiffra" skulle dimensionerna vara:

  • Vem – Kundnamn
  • Var – Plats
  • Vad – Produktnamn

Med andra ord är en dimension ett fönster genom vilket du ser informationen som finns i fakta.

attribut

Attribut är de olika egenskaperna hos en dimension inom en dimensionell datamodell.

I en platsdimension kan attributen vara:

  • Ange
  • Land
  • Postnummer

Attribut används för att söka, filtrera och klassificera fakta, och dimensionstabeller är där dessa attribut finns.

Faktatabell

En faktatabell är den primära tabellen i en dimensionell modell.

En faktatabell innehåller:

  1. Mätningar eller fakta
  2. Främmande nycklar till dimensionstabeller

Måttbord

En dimensionstabell innehåller dimensionerna för ett faktum och kopplas till faktatabellen via en främmande nyckel. Dess huvudsakliga egenskaper listas nedan:

  • Dimensionstabeller är avnormaliserade tabeller.
  • Dimensionsattributen bildar tabellens kolumner.
  • Dimensioner erbjuder beskrivande egenskaper hos fakta genom deras attribut.
  • Det finns ingen fast gräns för antalet dimensioner.
  • En dimension kan innehålla en eller flera hierarkiska relationer.

Typer av dimensioner i Data Warehouse

Dimensionell modellering använder flera typer av dimensioner, var och en anpassad till ett specifikt designbehov. Det viktigaste typer av dimensioner i ett datalager är:

  • Anpassad dimension
  • Stödbensdimension
  • Krympt dimension
  • Rollspelsdimension
  • Dimension till dimensionstabell
  • Skräpdimension
  • Degenererad dimension
  • Bytbar dimension
  • Steg Dimension

Steg för dimensionsmodellering

Noggrannheten i din dimensionella modellering avgör hur framgångsrik implementeringen av datalagret blir. Det finns fem steg för att bygga en dimensionell modell:

  1. Identifiera affärsprocessen
  2. Identifiera kornigheten (detaljnivå)
  3. Identifiera dimensionerna
  4. Identifiera fakta
  5. Bygg schemat

Sammantaget bör den färdiga modellen beskriva varför, hur mycket, när, var, vem och vad i er affärsprocess.

De fem stegen i dimensionell modellering i ett datalager

Steg 1) Identifiera affärsprocessen

Den första uppgiften är att identifiera den affärsprocess som lagret ska omfatta – marknadsföring, försäljning, HR och så vidare – baserat på organisationens dataanalys behov och kvaliteten på tillgängliga data. Detta är det viktigaste steget, eftersom ett misstag här skapar kaskadliknande, svåråtgärdade fel.

För att beskriva affärsprocessen kan du använda vanlig text, Business Process Modelling Notation (BPMN) eller Unified Modelling Language (UML).

Steg 2) Identifiera säden

Kornigheten definierar detaljnivån för affärsproblemet – den lägsta informationsnivån som lagras i en tabell.

Om en tabell innehåller försäljning för varje dag har den daglig granularitet; om den innehåller månatliga totalsummor har den månatlig granularitet.

Under detta skede svarar du på frågor som:

  1. Ska lagret lagra alla tillgängliga produkter eller bara ett fåtal produkttyper? Detta beror på vilka affärsprocesser som valts.
  2. Ska produktförsäljning lagras månadsvis, veckovis, dagligen eller timvis? Detta beror på vad cheferna begär i rapporterna.
  3. Hur påverkar dessa två val databasens storlek?

Exempel på spannmål: Tänk dig att VD:n för ett multinationellt företag vill se försäljningen av specifika produkter på olika platser, mätt varje dag.

I det scenariot blir spannmålen ”information om produktförsäljning per plats och dag”.

Steg 3) Identifiera måtten

Dimensioner är substantiv som datum, butik och lager, och de innehåller beskrivande data.

Till exempel kan en datumdimension innehålla ett år, en månad och en veckodag.

Exempel på dimensioner: Samma dagliga försäljningskrav styr valet av dimensioner.

För det här scenariot är dimensionerna Produkt, Plats och Tid.

Produktdimensionen innehåller attribut som produktnyckel (en främmande nyckel), namn, typ och specifikationer.

Platsdimensionen är organiserad som en hierarki: land, delstat, stad, gatuadress och namn.

Steg 4) Identifiera fakta

Detta steg är nära kopplat till systemets affärsanvändare, eftersom det definierar de siffror de förbrukar från datalagret.

De flesta faktatabellrader är numeriska värden som pris eller kostnad per enhet.

Exempel på fakta: Det dagliga försäljningskravet sätter återigen sammanhanget.

Här är faktum summan av försäljningen per produkt, per plats och per tid.

Steg 5) Bygg schema

I detta sista steg implementerar du den dimensionella modellen. Ett schema är helt enkelt databasstrukturen – arrangemanget av tabeller – och två scheman är särskilt vanliga.

Den första är stjärnschema, som är enkel att designa och namngiven efter sin form: en central faktatabell med dimensionstabeller som strålar utåt likt spetsarna på en stjärna.

I ett stjärnschema är faktatabellen i tredje normalform medan dimensionstabellerna är avnormaliserade; detta stjärnschema i datalagermodellering guiden fungerar genom ett komplett exempel.

Den andra är snöflingaschema, en utvidgning av stjärnschemat där varje dimension är normaliserad och länkad till ytterligare dimensionstabeller, vilket förklaras i detta snöflingeschema i datalagermodell guide.

Regler för dimensionsmodellering

Följande regler och principer vägleder effektiv dimensionsmodellering:

  • Ladda in atomära data i dimensionsstrukturerna.
  • Bygg dimensionella modeller kring affärsprocesser.
  • Se till att varje faktatabell har en tillhörande datumdimensionstabell.
  • Håll alla fakta i en enda faktatabell med samma kornighet eller detaljnivå.
  • Lagra rapportetiketter och filtrera domänvärden i dimensionstabellerna.
  • Ge varje dimensionstabell en surrogatnyckel.
  • Balansera ständigt krav med verklighet för att leverera en lösning som stödjer affärsbeslutsfattandet.

Fördelar med dimensionsmodellering

Dimensionell modellering erbjuder ett antal praktiska fördelar:

  • Standardiserade dimensioner möjliggör enkel och konsekvent rapportering över olika delar av verksamheten.
  • Dimensionstabeller lagrar historiken för dimensionsinformationen.
  • Nya dimensioner kan introduceras utan större störningar i faktatabellen.
  • Data lagras så att den är lättare att hämta när den väl finns i databasen.
  • Jämfört med den normaliserade modellen är dimensionstabeller lättare att förstå eftersom informationen är grupperad i tydliga affärskategorier.
  • Modellen är baserad på affärstermer, så företaget vet vad varje faktum, dimension eller attribut betyder.
  • Eftersom modellen är avnormaliserad är den optimerad för snabba frågor, och många relationsplattformar optimerar sina exekveringsplaner för den.
  • Schemat levererar hög prestanda med färre kopplingar och minimerad dataredundans.
  • Dimensionsmodeller hanterar enkelt ändringar, eftersom kolumner kan läggas till i dimensionstabeller utan att påverka befintliga Business Intelligence-applikationer.

Vad är multidimensionell datamodell i Data Warehouse?

A flerdimensionell datamodell representerar data som datakuber, vilket låter dig modellera och visa data över flera dimensioner definierade av dimensioner och fakta. En sådan modell är vanligtvis organiserad kring ett centralt tema och representeras av en faktatabell, och den utgör grunden för OLAP analys.

Vanliga frågor

En faktatabell lagrar numeriska mått för en affärsprocess tillsammans med främmande nycklar till dimensioner. En dimensionstabell lagrar beskrivande, avnormaliserade attribut – såsom produkt, plats eller datum – som ger dessa mått det sammanhang som behövs för filtrering och gruppering.ping.

Fakta är additiva, semi-additiva eller icke-additiva. Additiva fakta, såsom ett försäljningsbelopp, summerar över varje dimension. Semi-additiva fakta, såsom kontosaldon, summerar över vissa dimensioner men inte över tid. Icke-additiva fakta, såsom förhållanden eller procenttal, kan inte summeras meningsfullt.

A stjärnschema behåller varje dimension i en avnormaliserad tabell, vilket ger enklare kopplingar och snabbare frågor. Ett snöflingeschema normaliserar dimensioner till relaterade undertabeller, vilket sparar lagring men lägger till kopplingar och komplexitet. Stjärnscheman är det vanligaste analytiska valet.

En surrogatnyckel är ett systemgenererat heltal som används som en dimensions primärnyckel istället för en naturlig affärsnyckel. Den håller lagret oberoende av källsystemändringar, snabbar upp kopplingar och gör det möjligt att track historiska förändringar inom en dimension.

En långsamt föränderlig dimension är en dimension vars attributvärden ändras över tid, till exempel en kundadress. Vanliga strategier skriver över det gamla värdet (typ 1), lägger till en ny rad för att behålla historiken (typ 2) eller lagrar det föregående värdet i en separat kolumn (typ 3).

Ralph Kimballs dimensionella modellering bygger lagret bottom-up från stjärnschema-datamarts optimerade för rapportering. Bill Inmons tillvägagångssätt bygger först ett top-down, normaliserat företagslager och härleder sedan marts. Kimball levererar snabbare, medan Inmon betonar företagsomfattande konsekvens.

AI-verktyg kan profilera källdata, föreslå fakta och dimensioner, rekommendera struktur och flagga redundanta attribut. De snabbar upp design och dokumentation, men en dataingenjör bör validera varje fakta, dimension och hierarki innan modellen når produktion.

Ja. ChatGPT kan utarbeta stjärnschemadesigner och förklara avvägningar, samtidigt som GitHub Copilot autokompletterar SQL för fakta- och dimensionstabeller. RevVisa deras utdata för korrekt fiberriktning, nycklar och kopplingar innan du kör den.

Sammanfatta detta inlägg med: