Designfaktatabeller

Fuldført

Faktatabeller udgør centrum af en dimensionel model. De registrerer forretningsbegivenheder og gemmer de numeriske målinger, der driver analytiske forespørgsler. Hver gang et salg finder sted, en ordre sendes eller lageret tælles, og en faktatabel registrerer denne begivenhed sammen med referencer til dimensioner, der giver kontekst.

Forstå faktatabellens struktur

En faktatabel indeholder tre typer kolonner:

  • Dimensionsnøgler er fremmednøgler, der refererer til relaterede dimensionstabeller. De bestemmer faktas dimensionalitet og forbinder hver begivenhed med dens kontekst (hvem, hvad, hvornår, hvor).
  • Mål er numeriske værdier, der kan aggregeres. Eksempler inkluderer mængde, omsætning, omkostninger og varighed.
  • Attributter giver yderligere detaljer om begivenheden, såsom ordrenumre eller sporingskoder. Attributter kaldes nogle gange degenererede dimensioner , fordi de beskriver begivenheden uden behov for en separat dimensionstabel.

En veludformet faktatabel er smal. Den indeholder kun nøgler, takter og essentielle attributter. Beskrivende information hører hjemme i dimensionstabeller.

Diagram, der viser strukturen af en faktatabel med tre kolonnetyper: dimensionsnøgler i turkis, mål i lilla og degenererede dimensioner i orange.

Definér kornet

Den vigtigste designbeslutning for en faktatabel er at definere kornet. Kornet angiver, hvad én række i faktatabellen repræsenterer. For en salgsfaktatabel kan kornet være én række pr. salgsordrelinje. For en lagerfaktatabel kan kornet være én række pr. produkt pr. dag.

At definere kornet tidligt forhindrer almindelige designfejl:

  • Et korn, der er for højt , mister detaljer, du måske får brug for senere. For eksempel, hvis du opbevarer én række pr. dagligt salgstal i stedet for én række pr. ordrelinje, kan du ikke senere opdele salg efter individuelle produkter eller kunder.
  • Et korn, der er for detaljeret , kan øge lager- og forarbejdningsomkostninger uden at give analytisk værdi. For eksempel skaber det unødvendigt volumen at gemme én række i sekundet til en sensor, der kun ændrer aflæsninger hver time.

Kornet bestemmer også, hvilke dimensionsnøgler der hører til i faktatabellen. For eksempel, hvis kornet i et salgsfaktum er én række pr. ordrelinje, bør dimensionsnøglerne inkludere kunde, produkt, dato og sælger. Hver dimensionsnøgle skal være på linje med den angivne kornretning.

Vigtigt!

Definer altid årerne, før du identificerer mål og mål. Kornet bestemmer, hvilke dimensionsnøgler og mål der hører til i tabellen.

Identificer typer af faktatabeller

Der findes tre typer faktatabeller, som hver især er tilpasset forskellige analytiske behov:

Diagram, der viser en sammenligning af tre faktatabelletyper: transaktion, periodisk øjebliksbillede og akkumulerende øjebliksbillede.

Faktatabeller for transaktioner

En transaktionsfaktatabel gemmer én række pr. forretningsbegivenhed. Hver række er fuldt kendt, når den indsættes, og ændrer sig ikke (undtagen for at rette fejl). Eksempler inkluderer individuelle salgsordrelinjer, klik på hjemmesiden eller supporttickets.

Transaktionsfaktatabeller gemmer typisk data med lavest mulig granularitet, og deres mål er additive på tværs af alle dimensioner.

Periodiske faktatabeller med øjebliksbilleder

Et periodisk øjebliksbillede-faktatabelle fanger tilstanden af noget med regelmæssige intervaller. I stedet for at registrere enkelte begivenheder, registrerer den et resumé på et bestemt tidspunkt. For eksempel kan en lagerfaktatabel registrere lagerniveauer ved dagens afslutning for hvert produkt.

Periodiske snapshots er nyttige til trendanalyse og overvågning af ændringer over tid. Deres mål er typisk semi-additive, hvilket betyder, at de kan summeres over nogle dimensioner, men ikke over tid.

Akkumulerer faktatabeller med snapshot

En akkumulerende faktatabel følger processen gennem milepæle. En række oprettes, når processen begynder, og opdateres ved hver milepæl, der nås. For eksempel kan en faktatabel for ordreopfyldelse spore datoerne for en ordre placeres, godkendes, sendes og leveres.

Disse tabeller har flere dato-dimensionnøgler (én pr. milepæl) og inkluderer ofte varighedsmål mellem milepæle.

Vælg måletyper

Målinger falder i tre kategorier baseret på, hvordan de kan aggregeres:

Type Beskrivelse Eksempel
Additiv Kan summeres på tværs af alle dimensioner Omsætning, mængde, omkostninger
Semi-additiv Kan summeres over nogle dimensioner, men ikke alle (typisk ikke over tid) Kontosaldo, lagerniveau
Ikke-additiv Kan ikke opsummeres meningsfuldt på tværs af nogen dimension Enhedspris, temperatur, forhold

Tips

Når du har brug for et ikke-additivt mål som et forhold, så gem i stedet de underliggende værdier. For eksempel butiksrabatbeløb og salgsomsætning i stedet for rabatprocent, så forholdet kan beregnes korrekt på ethvert aggregeringsniveau.

Anvend navngivningskonventioner

I et Fabric Data Warehouse kan du præfikse faktatabelnavne med f_ eller Fact_ for at identificere dem klart. For eksempel f_Sales eller Fact_Inventory. Denne navngivningskonvention gør det nemt for analytikere og værktøjer at skelne mellem faktatabeller og dimensionstabeller.

Overvej faktaløse faktatabeller

Nogle gange skal man registrere begivenheder, der ikke har nogen numeriske mål. En faktaløs faktatabel fanger hændelser, såsom at en studerende deltager i en klasse eller en kampagne, der anvendes på et produkt. Du kan stadig analysere disse begivenheder ved at tælle rækker.

Overvej aggregerede faktatabeller

En samlet faktatabel gemmer forudberegnede resuméer af en basisfaktatabel på et højere granularitetsniveau eller lavere dimensionalitet. For eksempel kan du lave et månedligt salgsoversigt ud fra en daglig transaktionsfaktatabel. Formålet er at accelerere almindeligt kørte forespørgsler. I Power BI kan brugerdefinerede aggregationer opnå et lignende resultat, eller du kan bruge aggregattabellen direkte gennem DirectQuery-lagringstilstand.