Faktatabeller er grunnlaget for datalageret. De inneholder de grunnleggende målingene i bedriften, og de er det ultimate målet for de fleste datavarehusforespørsler. Det er ikke noe poeng i å heise faktabord opp flaggstangen med mindre de er valgt for å gjenspeile presserende forretningsprioriteter, har blitt nøye kvalitetssikret og er omgitt av dimensjoner som gir et vell av inngangspunkter for begrensning og gruppering. Nå som vi har banet vei for faktatabeller, la oss se hvordan du bygger dem og bruker dem.
Vær Tro Mot Kornet
det første og viktigste designtrinnet er å erklære faktabordkornet. Kornet er forretningsdefinisjonen av hva en enkelt faktatabellpost representerer. Korndeklarasjonen er ikke en liste over dimensjonale utenlandske nøkler som implementerer en primærnøkkel for faktatabellen. Kornet er snarere beskrivelsen av målehendelsen i den fysiske verden som gir opphav til en måling. Når matbutikk skanner måler mengden og belastet prisen på et produkt som blir kjøpt, er korn bokstavelig pipetonen på skanneren. Det er en flott korndefinisjon!
Umiddelbart etter å ha erklært kornet, er Det mulig å liste de dimensjonale utenlandske nøklene som eksisterer ved det kornet. Ved å erklære kornet først, forblir diskusjonen av utenlandske nøkler jordet og presis.
den virkelige hensikten med faktatabellen er å være depotet for de numeriske fakta som observeres under målehendelsen. Det er kritisk viktig for disse fakta å være tro mot kornet. Matbutikken» beep » måler mengden og utvidet pris på produktet som skal skannes. Vi inkluderer aldri andre numeriske målinger som bryter kornet, for eksempel det totale kategorisalget eller salget av dette produktet i forrige måned. Selv om disse andre målingene kan være snevert nyttig for utvalgte beregninger, de kan ikke kombineres på tvers av fakta poster og de innføre rare asymmetrier i utformingen av applikasjoner. Vi lar våre bi-verktøy (business intelligence) beregne disse off-topic-verdiene på spørringstidspunktet i stedet for å kode dem hardt inn i faktatabellene våre.
vi streber alltid etter å gjøre faktaene additive over dimensjonene og nøyaktig i samsvar med kornet. Legg merke til at vi ikke lagrer prisen på produktet som skannes fordi prisen ikke er tilleggsutstyr. Snarere lagrer vi den utvidede prisen, som kan legges fritt på tvers av produkter, butikker, tider og alle andre dimensjoner.
Oppbygging fra Lavest Mulig Korn
datalageret skal alltid bygges på faktatabeller uttrykt ved lavest mulig korn. I eksemplet er pipetonen i matbutikkens kasseapparat det lavest mulige kornet fordi det ikke kan deles videre. Faktatabeller på det laveste kornet er de mest uttrykksfulle fordi de har det mest komplette settet av mulige dimensjoner for den forretningsprosessen. Pipetonen korn faktum tabellen kunne Ha Dato, Butikk, Produkt, Kasserer, Manager, Kunde, Forfremmelse, Konkurranse, Kurv og Selv Vær hvis alle disse datakilder kan marshaled når faktum poster er opprettet. Høyere korn aggregerte tabeller som kategorisalg etter distrikt kan ikke støtte alle disse dimensjonene og er derfor mye mindre uttrykksfulle. Det er en grunnleggende feil å publisere bare aggregerte tabeller til sluttbrukerne uten å gjøre de laveste kornfaktabellene jevnt tilgjengelige ved å bore ned. De fleste av de falske forestillingene som dimensjonale tabeller forutsetter forretningsspørsmålet, kommer fra å gjøre denne grunnleggende feilen.
Tre Typer Faktatabeller
hvis du er tro mot kornet, kan alle faktatabellene dine grupperes i bare tre typer: transaksjonskorn, periodisk øyeblikksbilde korn og akkumulerende øyeblikksbilde korn (De tre typene er vist I Figur 1). I Figur 1 er dimensjonene betegnet MED FK (foreign key) og de numeriske fakta er kursiv.
transaksjonskornet tilsvarer en måling tatt på et enkelt øyeblikk. Dagligvarebutikken pip er en transaksjon korn. De målte fakta er gyldige bare for det øyeblikket og for den hendelsen. Neste måling hendelsen kan skje en millisekund senere eller neste måned eller aldri. Dermed er transaksjonskornfaktatabeller uforutsigbart sparsomme eller tette. Vi har ingen garanti for at alle mulige utenlandske nøkler vil bli representert. Transaksjonskornfaktatabeller kan være enorme, med de største som inneholder mange milliarder poster.
det periodiske øyeblikksbildet tilsvarer et forhåndsdefinert tidsrom, ofte en finansiell rapporteringsperiode. Figur 1 illustrerer en månedlig konto periodisk snapshot. De målte fakta oppsummerer aktivitet under eller ved slutten av tidsperioden. Den periodiske snapshot grain bærer en kraftig garanti for at alle rapporterende enheter (for eksempel bankkontoen I Figur 1) vil vises i hvert snapshot, selv om det ikke er noen aktivitet. Det periodiske øyeblikksbildet er forutsigbart tett, og applikasjoner kan stole på at kombinasjoner av nøkler alltid er til stede. Periodiske snapshot faktatabeller kan også bli store. En bank med 20 millioner kontoer og en 10-årig historie ville ha 2.4 milliarder poster i den månedlige kontoen periodisk snapshot!
akkumulerende faktatabell svarer til en forutsigbar prosess som har en veldefinert begynnelse og slutt. Ordrebehandling, kravbehandling, service call resolution og college admissions er typiske kandidater. Kornet til et akkumulerende øyeblikksbilde for ordrebehandling, for eksempel, er vanligvis linjeposten på bestillingen. Legg merke Til I Figur 1 at det er flere datoer som representerer standard scenariet som en ordre gjennomgår. Akkumulerende snapshot-poster blir revidert og overskrevet når prosessen går gjennom trinnene fra begynnelse til slutt. Akkumulerende øyeblikksbilde faktatabeller er generelt mye mindre enn de to andre typene på grunn av denne overskrivingsstrategien.