Lucka 11: Datamodellering i Fabric

En av de viktigaste uppgifterna för en dataplattform är att strukturera data på ett sätt som gör det enkelt att använda för exempelvis slutrapporter i Power BI. För att skapa denna struktur behöver data läsas in, transformeras och lagras. En välorganiserad struktur för dessa hanteringssteg är avgörande för att göra miljön enkel att underhålla och använda.

Ett vanligt tillvägagångssätt för att organisera databehandlingen är att använda en flerstegad modell som följer ”Medallion Architecture”. Denna metod delar upp dataprocessen i tre huvudsakliga lager: Bronze, Silver och Gold.

Bronze
I det första steget, Bronze, hanteras inläsning av rådata från olika datakällor, som sedan lagras i sin ursprungliga form. Här inkluderas alla data från de utvalda tabellerna eller API:erna, utan att någon transformation sker. Syftet är att behålla data exakt som det ser ut i källan, vilket ger maximal flexibilitet för framtida behandling. Vanligtvis lagras Bronze-data i ett lakehouse för att möjliggöra enkel och skalbar lagring av både strukturerad och ostrukturerad data.

Ett exempel på detta är inläsning av inköpsorderrader från affärssystemet M3. I detta steg landas data från tabellen MPLINE, med originalnamn som exempelvis IBPUNO (inköpsordernummer) och IBITNO (artikelnummer). Dessa kolumnnamn är inte användarvänliga och kräver förbättring innan de kan användas i rapporter.

Ibland delas Bronze-lagret upp i två steg:

  • Raw: Här lagras data exakt som det tas emot från källan, till exempel som JSON-filer från API:er.
  • Bronze: I nästa steg kan JSON-filerna konverteras till tabeller eller Delta Parquet-format för vidare bearbetning.


Silver
I Silver-lagret påbörjas databehandlingen. Här omvandlas rådata från Bronze till en mer användarvänlig och rapporteringsklar form. Det kan innebära att döpa om kolumner till mer beskrivande namn, integrera valutakurser, slå samman data från flera källor, eller beräkna nyckeltal som behövs i rapporter. Silver-data lagras ofta i tabell- eller filformat, antingen i ett lakehouse eller ett warehouse, beroende på användningskrav.

I exemplet döps tabellen MPLINE om till PurchaseOrderLines, och kolumnerna byter namn till mer informativa titlar som PurchaseOrderNo och ItemNo. Samtidigt kan priser och kvantiteter omvandlas till standardenheter, och nyckeltal som ledtid (tiden från order till leverans) beräknas. Det är också vanligt att skapa flaggar, fält med värden 0 och 1, för att till exempel visa vilka rader som levererades inom utlovad ledtid.

Gold
I Gold-lagret förbereds data för slutlig konsumtion i rapporter eller andra analyser. Detta lager kan delas upp i:

  • Generiska produkter: Anpassade för att användas i flera olika rapporter.
  • Specifika rapportprodukter: Anpassade för enskilda rapporter med särskilda krav.


Om data från Silver-lagret lagras som tabeller i ett lakehouse kan Gold-lagret använda genvägar (shortcuts) för att skapa generiska produkter. Detta sparar både tid och lagringsutrymme.

I exemplet skapas en shortcut till PurchaseOrderLines från Silver. För ett specifikt projekt kan en särskild tabell skapas där exempelvis alla priser konverteras till USD och endast inköpsordrar för direkt material inkluderas. För att särskilja generiska och specifika produkter kan man använda olika scheman eller andra struktureringsmetoder.

Dela inlägget
LinkedIn