Hva er dimensjonsmodellering i datavarehus? Lær typer

⚡ Smart oppsummering

Dimensjonsmodeller i datavarehusdesign organiserer informasjon i fakta- og dimensjonstabeller, slik at analytikere raskt kan hente og oppsummere numeriske målinger. De følger Kimball-metoden i fem trinn, som identifiserer forretningsprosessen, kornet, dimensjonene, faktaene og det endelige skjemaet.

  • 🎯 Kjerneformål: En dimensjonsmodell finjusterer et datalager for rask lesing og rapportering, i motsetning til relasjonsmodeller bygget for sanntidstransaksjoner.
  • 🧱 Byggeklosser: Fakta inneholder numeriske målinger, mens dimensjoner og deres attributter gir konteksten for hvem, hva og hvor rundt hvert faktum.
  • 🔑 Fakta- og dimensjonstabeller: En faktatabell lagrer målinger pluss fremmednøkler; denormaliserte dimensjonstabeller lagrer beskrivende attributter og hierarkier.
  • 🪜 Fem-trinns metode: Identifiser forretningsprosessen, angi retningen, velg dimensjonene, velg faktaene, og bygg deretter skjemaet.
  • Valg av skjema: Stjerneskjemaer holder dimensjoner denormaliserte for hastighet, mens snøfnuggskjemaer normaliserer dem for å spare lagringsplass.
  • 🚀 Hovedfordel: Standardiserte, forretningsvennlige dimensjoner forbedrer spørreytelsen og lar nye dimensjoner legges til med minimal forstyrrelse.

Dimensjonsmodell i et datavarehus som viser fakta- og dimensjonstabeller

Hva er dimensjonsmodellering?

Dimensjonsmodellering (DM) er en datastrukturteknikk optimalisert for datalagring i et datavarehus. Hensikten er å finjustere databasen for raskere henting av data. Konseptet ble utviklet av Ralph Kimball og er bygget rundt to tabelltyper: «fakta»- og «dimensjonstabeller».

En dimensjonsmodell i et datavarehus er utformet for å lese, oppsummere og analysere numerisk informasjon som verdier, saldoer, antall og vekter. Relasjonsmodeller er derimot optimalisert for å legge til, oppdatere og slette data i et sanntids online transaksjonsbehandlingssystem.

Hver av disse tilnærmingene lagrer data på sin egen måte, og hver av dem tilbyr forskjellige fordeler.

I en relasjonsmodell reduserer normalisering og ER-modeller dataredundans. En dimensjonsmodell arrangerer i stedet data slik at informasjon er enklere å hente og rapporter er enklere å generere.

Av denne grunn passer dimensjonsmodeller datavarehus systemer snarere enn transaksjonstunge relasjonssystemer. Fordi modellen underbygger den bredere datavarehusarkitektur, avsnittene nedenfor bryter ned elementene, typene og designtrinnene.

Elementer i dimensjonsdatamodellen

Faktum

Fakta er målinger eller beregninger hentet fra en forretningsprosess. I en salgsprosess er for eksempel kvartalsvise salgstall et faktum – den numeriske verdien bedriften ønsker å analysere.

Dimensjon

En dimensjon gir konteksten rundt en forretningsprosesshendelse. Enkelt sagt gir dimensjoner hvem, hva og hvor et faktum er. For faktumet «kvartalsvis salgstall» ville dimensjonene være:

  • Hvem – Kundenavn
  • Hvor – Plassering
  • Hva – Produktnavn

Med andre ord er en dimensjon et vindu der du ser informasjonen som finnes i fakta.

attributter

Attributter er de ulike egenskapene til en dimensjon innenfor en dimensjonal datamodell.

I en lokasjonsdimensjon kan attributtene være:

  • Tilstand
  • Land
  • Post kode

Attributter brukes til å søke, filtrere og klassifisere fakta, og dimensjonstabeller er der disse attributtene finnes.

Faktatabell

En faktatabell er den primære tabellen i en dimensjonsmodell.

En faktatabell inneholder:

  1. Målinger eller fakta
  2. Fremmednøkler til dimensjonstabeller

Dimensjonstabell

En dimensjonstabell inneholder dimensjonene til et faktum og kobles til faktatabellen via en fremmednøkkel. Hovedkarakteristikkene er listet opp nedenfor:

  • Dimensjonstabeller er de-normaliserte tabeller.
  • Dimensjonsattributtene danner kolonnene i tabellen.
  • Dimensjoner tilbyr beskrivende egenskaper ved fakta gjennom deres attributter.
  • Det er ingen fast grense for antall dimensjoner.
  • En dimensjon kan inneholde ett eller flere hierarkiske forhold.

Typer dimensjoner i datavarehus

Dimensjonsmodellering bruker flere typer dimensjoner, som hver er egnet for et bestemt designbehov. Hoveddelen typer dimensjoner i et datavarehus er:

  • Tilpasset dimensjon
  • Utrigger dimensjon
  • Krympet dimensjon
  • Rollespilldimensjon
  • Dimensjon til dimensjonstabell
  • Søppeldimensjon
  • Degenerert dimensjon
  • Byttbar dimensjon
  • Trinndimensjon

Trinn for dimensjonsmodellering

Nøyaktigheten til dimensjonsmodelleringen din avgjør hvor vellykket implementeringen av datalageret blir. Det er fem trinn for å bygge en dimensjonsmodell:

  1. Identifiser forretningsprosessen
  2. Identifiser kornet (detaljnivå)
  3. Identifiser dimensjonene
  4. Identifiser faktaene
  5. Bygg skjemaet

Alt i alt bør den ferdige modellen beskrive hvorfor, hvor mye, når, hvor, hvem og hva i forretningsprosessen din.

De fem trinnene i dimensjonal modellering i et datavarehus

Trinn 1) Identifiser forretningsprosessen

Den første oppgaven er å identifisere forretningsprosessen lageret skal dekke – markedsføring, salg, HR og så videre – basert på organisasjonens dataanalyse behov og kvaliteten på tilgjengelige data. Dette er det viktigste trinnet, fordi en feil her produserer kaskader av feil som er vanskelige å fikse.

For å beskrive forretningsprosessen kan du bruke ren tekst, Business Process Modelling Notation (BPMN) eller Unified Modelling Language (UML).

Trinn 2) Identifiser kornet

Kornet definerer detaljnivået for forretningsproblemet – det laveste informasjonsnivået som er lagret i en hvilken som helst tabell.

Hvis en tabell inneholder salg for hver dag, har den daglig granularitet. Hvis den inneholder månedlige totaler, har den månedlig granularitet.

I løpet av denne fasen svarer du på spørsmål som:

  1. Skal lageret lagre alle tilgjengelige produkter eller bare noen få produkttyper? Dette avhenger av de valgte forretningsprosessene.
  2. Bør produktsalg lagres månedlig, ukentlig, daglig eller timevis? Dette avhenger av rapportene lederne ber om.
  3. Hvordan påvirker disse to valgene databasestørrelsen?

Eksempel på korn: Tenk deg at administrerende direktør i et multinasjonalt selskap ønsker å se salget av spesifikke produkter på tvers av forskjellige steder, målt hver dag.

I det scenariet blir kornet til «produktsalgsinformasjon per sted per dag».

Trinn 3) Identifiser dimensjonene

Dimensjoner er substantiver som dato, butikk og lagerbeholdning, og de inneholder de beskrivende dataene.

For eksempel kan en datodimensjon inneholde et år, en måned og en ukedag.

Eksempel på dimensjoner: Det samme daglige salgskravet styrer valget av dimensjoner.

For dette scenariet er dimensjonene Produkt, Sted og Tid.

Produktdimensjonen inneholder attributter som produktnøkkel (en fremmednøkkel), navn, type og spesifikasjoner.

Stedsdimensjonen er organisert som et hierarki: land, stat, by, gateadresse og navn.

Trinn 4) Identifiser faktaene

Dette trinnet er nært knyttet til systemets forretningsbrukere, fordi det definerer tallene de forbruker fra datalageret.

De fleste faktatabellradene er numeriske verdier som pris eller kostnad per enhet.

Eksempel på fakta: Det daglige salgskravet setter igjen konteksten.

Her er faktum summen av salg per produkt, per sted og per tid.

Trinn 5) Bygg skjema

I dette siste trinnet implementerer du dimensjonsmodellen. Et skjema er rett og slett databasestrukturen – arrangementet av tabeller – og to skjemaer er spesielt vanlige.

Den første er stjerneskjema, som er enkel å designe og oppkalt etter formen: en sentral faktatabell med dimensjonstabeller som stråler utover som stjernespissene.

I et stjerneskjema er faktatabellen i tredje normalform, mens dimensjonstabellene er denormaliserte; dette stjerneskjema i datavarehusmodellering Guiden fungerer gjennom et komplett eksempel.

Den andre er snøfnuggskjema, en utvidelse av stjerneskjemaet der hver dimensjon er normalisert og koblet til ytterligere dimensjonstabeller, som forklart i denne snøfnuggskjema i datavarehusmodell guide.

Regler for dimensjonsmodellering

Følgende regler og prinsipper veileder effektiv dimensjonsmodellering:

  • Last inn atomdata i dimensjonsstrukturene.
  • Bygg dimensjonsmodeller rundt forretningsprosesser.
  • Sørg for at hver faktatabell har en tilknyttet datodimensjonstabell.
  • Hold alle fakta i én faktatabell med samme kornstørrelse eller detaljnivå.
  • Lagre rapportetiketter og filtrer domeneverdier i dimensjonstabellene.
  • Gi hver dimensjonstabell en surrogatnøkkel.
  • Kontinuerlig balansere krav og realiteter for å levere en løsning som støtter forretningsbeslutninger.

Fordeler med dimensjonsmodellering

Dimensjonsmodellering tilbyr en rekke praktiske fordeler:

  • Standardiserte dimensjoner muliggjør enkel og konsistent rapportering på tvers av virksomhetens områder.
  • Dimensjonstabeller lagrer historien til dimensjonsinformasjonen.
  • Nye dimensjoner kan introduseres uten vesentlig forstyrrelse av faktatabellen.
  • Data lagres slik at det er enklere å hente frem dem når de først er i databasen.
  • Sammenlignet med den normaliserte modellen er dimensjonstabeller enklere å forstå fordi informasjonen er gruppert i tydelige forretningskategorier.
  • Modellen er basert på forretningsbegreper, slik at virksomheten vet hva hvert faktum, hver dimensjon eller hvert attributt betyr.
  • Fordi modellen er denormalisert, er den optimalisert for rask spørring, og mange relasjonsplattformer optimaliserer utførelsesplanene sine for den.
  • Skjemaet leverer høy ytelse med færre koblinger og minimert dataredundans.
  • Dimensjonsmodeller håndterer endringer enkelt, siden kolonner kan legges til dimensjonstabeller uten å påvirke eksisterende forretningsintelligensapplikasjoner.

Hva er multidimensjonal datamodell i datavarehus?

A flerdimensjonal datamodell representerer data som datakuber, slik at du kan modellere og vise data på tvers av flere dimensjoner definert av dimensjoner og fakta. En slik modell er vanligvis organisert rundt et sentralt tema og representert av en faktatabell, og den danner grunnlaget for OLAP analyse.

Spørsmål og svar

En faktatabell lagrer numeriske målinger av en forretningsprosess sammen med fremmednøkler til dimensjoner. En dimensjonstabell lagrer beskrivende, denormaliserte attributter – for eksempel produkt, sted eller dato – som gir disse målingene konteksten som trengs for filtrering og gruppering.ping.

Fakta er additive, semi-additive eller ikke-additive. Additive fakta, som for eksempel et salgsbeløp, summerer seg på tvers av alle dimensjoner. Semi-additive fakta, som for eksempel kontosaldoer, summerer seg på tvers av noen dimensjoner, men ikke tid. Ikke-additive fakta, som for eksempel forholdstall eller prosenter, kan ikke summeres meningsfullt.

A stjerneskjema holder hver dimensjon i én denormalisert tabell, noe som gir enklere koblinger og raskere spørringer. Et snøfnuggskjema normaliserer dimensjoner til relaterte undertabeller, noe som sparer lagringsplass, men legger til koblinger og kompleksitet. Stjerneskjemaer er det vanligste analytiske valget.

En surrogatnøkkel er et systemgenerert heltall som brukes som en dimensjons primærnøkkel i stedet for en naturlig forretningsnøkkel. Den holder lageret uavhengig av endringer i kildesystemet, øker hastigheten på sammenføyninger og gjør det mulig å track historiske endringer innenfor en dimensjon.

En dimensjon som endrer seg sakte er en dimensjon der attributtverdiene endres over tid, for eksempel en kundeadresse. Vanlige strategier overskriver den gamle verdien (Type 1), legger til en ny rad for å beholde historikken (Type 2) eller lagrer den forrige verdien i en egen kolonne (Type 3).

Ralph Kimballs dimensjonsmodellering bygger lageret nedenfra og opp fra stjerneskjema-datamarts optimalisert for rapportering. Bill Inmons tilnærming bygger først et ovenfra-og-ned, normalisert bedriftslager, og utleder deretter markedsplasser. Kimball leverer raskere, mens Inmon vektlegger konsistens på tvers av hele bedriften.

AI-verktøy kan profilere kildedata, foreslå fakta og dimensjoner, anbefale struktur og flagge overflødige attributter. De fremskynder design og dokumentasjon, men en dataingeniør bør validere alle fakta, dimensjoner og hierarki før modellen når produksjon.

Ja. ChatGPT kan utarbeide stjerneskjemadesign og forklare avveininger, samtidig som GitHub Copilot autofullfører SQL for fakta- og dimensjonstabeller. RevSe utdataene for riktig kornstørrelse, nøkler og koblinger før du kjører den.

Oppsummer dette innlegget med: