Dela via


Dimensionsmodellering i Microsoft Fabric Warehouse: Faktatabeller

Gäller för:✅ SQL-analysslutpunkt och lager i Microsoft Fabric

Kommentar

Den här artikeln är en del av serien Dimensionsmodellering av artiklar. Den här serien fokuserar på vägledning och metodtips för design som rör dimensionsmodellering i Microsoft Fabric Warehouse.

Den här artikeln innehåller vägledning och metodtips för att utforma faktatabeller i en dimensionsmodell. Det ger praktisk vägledning för Warehouse i Microsoft Fabric, vilket är en upplevelse som stöder många T-SQL-funktioner, till exempel att skapa tabeller och hantera data i tabeller. Därför har du fullständig kontroll över att skapa dina dimensionsmodelltabeller och läsa in dem med data.

Kommentar

I den här artikeln refererar termen informationslager till ett informationslager för företag, som ger omfattande integrering av kritiska data i hela organisationen. Det fristående termlagret refererar däremot till ett infrastrukturlager, som är en saaS-relationsdatabas (programvara som en tjänst) som du kan använda för att implementera ett informationslager. För tydlighetens skull nämns den senare i den här artikeln som Infrastrukturlager.

Dricks

Om du är oerfaren med dimensionsmodellering bör du överväga den här artikelserien som ditt första steg. Det är inte avsett att ge en fullständig diskussion om dimensionsmodelleringsdesign. Mer information finns direkt i allmänt antaget publicerat innehåll, till exempel The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling (3rd edition, 2013) av Ralph Kimball och andra.

I en dimensionsmodell lagrar en faktatabell mätningar som är associerade med observationer eller händelser. Den kan lagra försäljningsorder, lagersaldon, växelkurser, temperaturavläsningar med mera.

Faktatabeller innehåller mått, som vanligtvis är numeriska kolumner, till exempel försäljningsorderkvantitet. Analysfrågor sammanfattar mått (med hjälp av summa, antal, medelvärde och andra funktioner) inom kontexten för dimensionsfilter och gruppering.

Faktatabeller innehåller också dimensionsnycklar som avgör faktas dimensionalitet . Dimensionsnyckelvärdena bestämmer detaljerna i fakta, som är den atomiska nivå som fakta definieras efter. En dimensionsnyckel för orderdatum i en faktatabell för försäljning anger till exempel informationens kornighet på datumnivå, medan en måldatumdimensionsnyckel i en faktatabell för försäljningsmål kan ange kornigheten på kvartalsnivå.

Kommentar

Även om det är möjligt att lagra fakta med högre kornighet är det inte lätt att dela upp måttvärden till lägre kornighetsnivåer (om det behövs). Rena datavolymer, tillsammans med analyskrav, kan ge en giltig anledning att lagra fakta med högre kornighet men på bekostnad av detaljerad analys.

För att enkelt identifiera faktatabeller prefixar du vanligtvis deras namn med f_ eller Fact_.

Faktatabellstruktur

Om du vill beskriva strukturen för en faktatabell bör du överväga följande exempel på en faktatabell för försäljning med namnet f_Sales. Det här exemplet tillämpar bra designmetoder. Var och en av grupperna med kolumner beskrivs i följande avsnitt.

CREATE TABLE f_Sales
(
    --Dimension keys
    OrderDate_Date_FK INT NOT NULL,
    ShipDate_Date_FK INT NOT NULL,
    Product_FK INT NOT NULL,
    Salesperson_FK INT NOT NULL,
    <…>
    
    --Attributes
    SalesOrderNo INT NOT NULL,
    SalesOrderLineNo SMALLINT NOT NULL,
    
    --Measures
    Quantity INT NOT NULL,
    <…>
    
    --Audit attributes
    AuditMissing BIT NOT NULL,
    AuditCreatedDate DATE NOT NULL,
    AuditCreatedBy VARCHAR(15) NOT NULL,
    AuditLastModifiedDate DATE NOT NULL,
    AuditLastModifiedBy VARCHAR(15) NOT NULL
);

Primärnyckel

Som i exemplet har exempeltabellen inte någon primärnyckel. Det beror på att det vanligtvis inte tjänar något användbart syfte, och det skulle i onödan öka tabellens lagringsstorlek. En primärnyckel är ofta underförstådd av uppsättningen med dimensionsnycklar och attribut.

Dimensionsnycklar

Exempeltabellen för fakta har olika dimensionsnycklar som avgör faktatabellens dimensionalitet. Dimensionsnycklar är referenser till surrogatnycklarna (eller attribut på högre nivå) i de relaterade dimensionerna.

Kommentar

Det är en ovanlig faktatabell som inte innehåller minst en datumdimensionsnyckel.

En faktatabell kan referera till en dimension flera gånger. I det här fallet kallas det för en rollspelsdimension. I det här exemplet har faktatabellen dimensionsnycklarna OrderDate_Date_FK och ShipDate_Date_FK . Varje dimensionsnyckel representerar en distinkt roll, men det finns bara en fysisk datumdimension.

Det är en bra idé att ange varje dimensionsnyckel som NOT NULL. Under faktatabellens inläsning kan du använda specialdimensionsmedlemmar för att representera saknade, okända, N/A eller feltillstånd (om det behövs).

Attribut

Exempeltabellen för fakta har två attribut. Attribut ger ytterligare information och anger kornigheten för faktadata, men de är varken dimensionsnycklar eller dimensionsattribut eller mått. I det här exemplet lagrar attributkolumner försäljningsorderinformation. Andra exempel kan vara spårningsnummer eller biljettnummer. I analyssyfte kan ett attribut bilda en degenerera dimension.

Mått

Exempeltabellen för fakta innehåller också mått, till exempel Quantity kolumnen. Måttkolumner är vanligtvis numeriska och ofta additiva (vilket innebär att de kan summeras och sammanfattas med hjälp av andra sammansättningar). Mer information finns i Mäta typer senare i den här artikeln.

Granska attribut

Exempeltabellen för fakta har också olika granskningsattribut. Granskningsattribut är valfria. De gör att du kan spåra när och hur faktaposter skapades eller ändrades, och de kan innehålla diagnostik- eller felsökningsinformation som genereras under ETL-processer (Extract, Transform, and Load). Du vill till exempel spåra vem (eller vilken process) som har uppdaterat en rad och när. Granskningsattribut kan också hjälpa dig att diagnostisera ett utmanande problem, till exempel när en ETL-process oväntat stoppas.

Faktatabellstorlek

Faktatabeller varierar i storlek. Deras storlek motsvarar dimensionalitet, kornighet, antal mått och mängden historik. Jämfört med dimensionstabeller är faktatabeller smalare (färre kolumner) men stora eller till och med enorma när det gäller rader (över miljarder).

Faktadesignbegrepp

I det här avsnittet beskrivs olika begrepp för faktadesign.

Faktatabelltyper

Det finns tre typer av faktatabeller:

  • Faktatabeller för transaktioner
  • Faktatabeller för periodiska ögonblicksbilder
  • Ackumulera faktatabeller för ögonblicksbilder

Faktatabeller för transaktioner

En faktatabell för transaktioner lagrar affärshändelser eller transaktioner. Varje rad lagrar fakta när det gäller dimensionsnycklar och mått, och eventuellt andra attribut. Alla data är fullständigt kända när de infogas och ändras aldrig (förutom för att korrigera fel).

Vanligtvis lagrar transaktionsfaktatabeller fakta på lägsta möjliga kornighetsnivå, och de innehåller mått som är additiva i alla dimensioner. En faktatabell för försäljning som lagrar varje försäljningsorderrad är ett bra exempel på en transaktionsfaktatabell.

Faktatabeller för periodiska ögonblicksbilder

En periodisk faktatabell för ögonblicksbild lagrar mått vid en fördefinierad tid eller specifika intervall. Den innehåller en sammanfattning av viktiga mått eller prestandaindikatorer över tid, så det är användbart för trendanalys och övervakningsändringar över tid. Mått är alltid halvtillsatser (beskrivs senare).

En faktatabell för inventering är ett bra exempel på en periodisk ögonblicksbildtabell. Den läses in varje dag med lagersaldot för varje produkt i slutet av dagen.

Periodiska ögonblicksbildstabeller kan användas i stället för en transaktionsfaktatabell när det är dyrt att registrera stora volymer av transaktioner, och det stöder inte några användbara analyskrav. Det kan till exempel finnas miljontals aktierörelser på en dag (som kan lagras i en transaktionsfaktatabell), men din analys handlar bara om trender för lagernivåer i slutet av dagen.

Ackumulera faktatabeller för ögonblicksbilder

En ackumulerande faktatabell för ögonblicksbilder lagrar mått som ackumuleras under en väldefinierad period eller ett arbetsflöde. Den registrerar ofta tillståndet för en affärsprocess i olika faser eller milstolpar, vilket kan ta dagar, veckor eller till och med månader att slutföra.

En faktarad läses in strax efter den första händelsen i en process och sedan uppdateras raden i en förutsägbar sekvens varje gång en milstolpehändelse inträffar. Uppdateringarna fortsätter tills processen är klar.

Ackumulerande faktatabell för ögonblicksbilder har flera datumdimensionsnycklar som var och en representerar en milstolpehändelse. Vissa dimensionsnycklar kan registrera ett N/A-tillstånd tills processen når en viss milstolpe. Mått registrerar vanligtvis varaktigheter. Varaktigheter mellan milstolpar kan ge värdefull insikt i ett affärsarbetsflöde eller en sammansättningsprocess.

Måtttyper

Mått är vanligtvis numeriska och ofta additiva. Vissa mått kan dock inte alltid läggas till. Dessa mått kategoriseras som antingen semi-additiva eller icke-additiva.

Additiva mått

Ett additivt mått kan summeras över vilken dimension som helst. Till exempel är orderkvantitet och försäljningsintäkter additiva mått (att tillhandahålla intäkter registreras för en gemensam valuta).

Halvtillsatsmått

Ett halvtillsatsmått kan bara summeras i vissa dimensioner.

Här är några exempel på halvtillsatsmått.

  • Mått i en periodisk faktatabell för ögonblicksbilder kan inte summeras över andra tidsperioder. Du bör till exempel inte summera åldern på en inventeringsartikel som samplas varje natt, men du kan summera åldern för alla lagerartiklar på en hylla, varje natt.
  • Ett lagersaldomått i en inventeringsfaktatabell kan inte summeras för andra produkter.
  • Försäljningsintäkter i en tabell med försäljningsfakta som har en valutadimensionsnyckel kan inte summeras mellan valutor.

Icke-additiva mått

Ett icke-additivt mått kan inte summeras i någon dimension. Ett exempel är en temperaturavläsning, som i sin natur inte är meningsfull att lägga till i andra avläsningar.

Andra exempel är priser, till exempel enhetspriser och förhållanden. Det anses dock vara en bättre metod att lagra de värden som används för att beräkna förhållandet, vilket gör att förhållandet kan beräknas om det behövs. Till exempel kan en rabattprocent av ett försäljningsfakta lagras som ett rabattbeloppsmått (som ska divideras med försäljningsintäktsmåttet). Eller så bör åldern på en lagerartikel på hyllan inte summeras över tid, men du kan se en trend i genomsnittsåldern för lagerartiklar.

Vissa mått kan inte summeras, men de är fortfarande giltiga mått. De kan aggregeras med hjälp av antal, distinkt antal, minimum, maximum, genomsnitt och andra. Dessutom kan icke-additiva mått bli additiva när de används i beräkningar. Enhetspriset multiplicerat med orderkvantitet ger till exempel försäljningsintäkter, vilket är additivt.

Faktalösa faktatabeller

När en faktatabell inte innehåller några måttkolumner kallas den för en faktalös faktatabell. En faktalös faktatabell registrerar vanligtvis händelser eller förekomster, till exempel elever som går på lektionen. Ur ett analysperspektiv kan en mätning uppnås genom att räkna faktarader.

Sammanställda faktatabeller

En sammanställd faktatabell representerar en sammanslagning av en basfaktatabell till en lägre dimensionalitet och/eller högre kornighet. Syftet är att påskynda frågeprestanda för vanliga frågor.

Kommentar

En Power BI-semantisk modell kan generera användardefinierade aggregeringar för att uppnå samma resultat, eller använda faktatabellen för informationslagrets sammanställda fakta med hjälp av DirectQuery-lagringsläget.

I nästa artikel i den här serien får du lära dig mer om vägledning och metodtips för att läsa in dimensionsmodelltabeller.