faktatabeller är grunden för datalagret. De innehåller de grundläggande mätningarna av företaget, och de är det ultimata målet för de flesta datalagerfrågor. Det finns ingen mening med att lyfta faktabord upp flaggstången om de inte har valts för att återspegla brådskande affärsprioriteringar, har noggrant kvalitetssäkrats och omges av dimensioner som ger en mängd ingångspunkter för begränsning och gruppering. Nu när vi har banat väg för faktabord, låt oss se hur man bygger dem och använder dem.
håll fast vid kornet
det första och viktigaste designsteget är att förklara faktumtabellen. Kornet är affärsdefinitionen av vad en enda faktatabellpost representerar. Korndeklarationen är inte en lista över dimensionella främmande nycklar som implementerar en primärnyckel för faktatabellen. Snarare är kornet beskrivningen av mäthändelsen i den fysiska världen som ger upphov till en mätning. När mataffärsskannern mäter mängden och det debiterade priset på en produkt som köps, är kornet bokstavligen skannerns pip. Det är en bra korndefinition!
omedelbart efter att ha deklarerat kornet är det möjligt att lista de dimensionella främmande nycklarna som finns vid det kornet. Genom att förklara kornet först förblir diskussionen om främmande nycklar jordad och exakt.
det verkliga syftet med faktatabellen är att vara förvaret för de numeriska fakta som observeras under mäthändelsen. Det är kritiskt viktigt att dessa fakta är sanna mot kornet. Livsmedelsbutiken” beep ” mäter kvantiteten och det utökade priset på den produkt som skannas. Vi inkluderar aldrig andra numeriska mätningar som bryter mot spannmålen, till exempel den totala kategorin försäljning eller försäljningen av denna produkt förra månaden. Även om dessa andra mätningar kan vara snävt användbara för utvalda beräkningar, kan de inte kombineras över faktaposter och de introducerar konstiga asymmetrier i utformningen av applikationer. Vi låter våra business intelligence (BI) verktyg beräkna dessa off-topic värden vid frågestund snarare än hård kodning dem i våra fakta tabeller.
Vi strävar alltid efter att göra faktatillsatsen över dimensionerna och exakt överensstämma med kornet. Observera att vi inte lagrar priset på den produkt som skannas eftersom priset inte är tillsatsmedel. Snarare lagrar vi det utökade priset, som kan läggas fritt över produkter, butiker, tider och alla andra dimensioner.
Bygg upp från lägsta möjliga korn
datalagret ska alltid byggas på faktatabeller uttryckta vid lägsta möjliga korn. I exemplet är pipen i mataffärskassan det lägsta möjliga spannmålet eftersom det inte kan delas ytterligare. Faktabord på lägsta korn är de mest uttrycksfulla eftersom de har den mest kompletta uppsättningen möjliga dimensioner för den affärsprocessen. Pipkornets faktabord kan ha Datum, lagra, produkt, kassör, chef, kund, marknadsföring, tävling, korg och jämnt väder om alla dessa datakällor kan marshaleras när faktaposterna skapas. Aggregerade tabeller med högre korn som kategoriförsäljning per distrikt kan inte stödja alla dessa dimensioner och är därför mycket mindre uttrycksfulla. Det är ett grundläggande misstag att publicera endast aggregerade tabeller till slutanvändarna utan att göra de lägsta kornfakta tabellerna smidigt tillgängliga genom att borra ner. De flesta av de falska begreppen som dimensionella tabeller förutsätter affärsfrågan kommer från att göra detta grundläggande misstag.
tre typer av faktatabeller
Om du håller fast vid kornet kan alla dina faktatabeller grupperas i bara tre typer: transaktionskorn, periodisk ögonblicksbildkorn och ackumulerande ögonblicksbildkorn (de tre typerna visas i Figur 1). I Figur 1 betecknas dimensionerna med FK (utländsk nyckel) och de numeriska fakta kursiveras.
transaktionskornet motsvarar en mätning som tas vid ett enda ögonblick. Mataffären pip är en transaktion spannmål. De uppmätta fakta gäller endast för det ögonblicket och för den händelsen. Nästa mäthändelse kan hända en millisekund senare eller nästa månad eller aldrig. Således transaktions korn fakta tabeller är oförutsägbart glesa eller tät. Vi har ingen garanti för att alla möjliga utländska nycklar kommer att representeras. Transaktions korn fakta tabeller kan vara enorm, med den största innehåller många miljarder poster.
det periodiska ögonblicksbildkornet motsvarar en fördefinierad tidsperiod, ofta en finansiell rapporteringsperiod. Figur 1 illustrerar en månatlig konto periodisk ögonblicksbild. De uppmätta fakta sammanfattar aktivitet under eller i slutet av tidsperioden. Det periodiska snapshot-kornet har en kraftfull garanti för att alla rapporterande enheter (t.ex. bankkontot i Figur 1) kommer att visas i varje ögonblicksbild, även om det inte finns någon aktivitet. Den periodiska ögonblicksbilden är förutsägbart tät, och applikationer kan förlita sig på kombinationer av nycklar som alltid är närvarande. Periodiska ögonblicks faktatabeller kan också bli stora. En bank med 20 miljoner konton och en 10-årig historia skulle ha 2.4 miljarder poster i den månatliga konto periodisk snapshot!
den ackumulerande ögonblicksbildstabellen motsvarar en förutsägbar process som har en väldefinierad början och slut. Orderbehandling, fordringar bearbetning, service samtal upplösning och college antagning är typiska kandidater. Kornet i en ackumulerande ögonblicksbild för orderbehandling är till exempel vanligtvis raden på ordern. Lägg märke till i Figur 1 att det finns flera datum som representerar standardscenariot som en order genomgår. Ackumulerande ögonblicksbildsposter revideras och skrivs över när processen fortskrider genom sina steg från början till slut. Ackumulerande ögonblicksbildstabeller är i allmänhet mycket mindre än de andra två typerna på grund av denna överskrivningsstrategi.