Del via


Anbefalte fremgangsmåter for å opprette en dimensjonal modell ved hjelp av dataflyter

Utforming av en dimensjonal modell er en av de vanligste oppgavene du kan gjøre med en dataflyt. Denne artikkelen fremhever noen av de beste fremgangsmåtene for å opprette en dimensjonal modell ved hjelp av en dataflyt.

Sette opp dataflyter

Et av de viktigste punktene i ethvert dataintegreringssystem er å redusere antall lesinger fra kildeoperativsystemet. I den tradisjonelle arkitekturen for dataintegrering utføres denne reduksjonen ved å opprette en ny database som kalles en . Formålet med oppsamlingsdatabasen er å laste inn data as-is fra datakilden til oppsamlingsdatabasen etter en vanlig tidsplan.

Resten av dataintegrasjonen bruker deretter staging-databasen som kilde for videre transformasjon og konverterer den til den dimensjonale modellstrukturen.

Vi anbefaler at du følger samme fremgangsmåte ved hjelp av dataflyter. Opprett et sett med dataflyter som bare er ansvarlige for å laste inn data as-is fra kildesystemet (og bare for tabellene du trenger). Resultatet lagres deretter i lagringsstrukturen for dataflyten (enten Azure Data Lake Storage eller Dataverse). Denne endringen sikrer at leseoperasjonen fra kildesystemet er minimal.

Deretter kan du opprette andre dataflyter som henter dataene fra å sette opp dataflyter. Fordelene med denne tilnærmingen inkluderer:

  • Redusere antall leseoperasjoner fra kildesystemet og redusere belastningen på kildesystemet som et resultat.
  • Reduserer belastningen på datagatewayer hvis en lokal datakilde brukes.
  • Hvis du har en mellomliggende kopi av dataene for avstemmingsformål, endres kildesystemdataene.
  • Gjør transformasjonsdataflytkilden uavhengig.

Diagram som viser flyten når du faser dataflowene.

Diagram som legger vekt på staging-dataflyter og staging-lagring. Diagrammet viser dataene som blir aksessert fra datakilden av staging-dataflyten, og tabeller lagret enten i Cadavers eller Azure Data Lake Storage. Tabellene vises deretter transformert sammen med andre dataflyter, som deretter sendes ut som spørringer.

Transformasjonsdataflyter

Når du skiller transformasjonsdataflytene dine fra staging-dataflytene, er transformasjonen uavhengig av kilden. Denne separasjonen hjelper hvis du overfører kildesystemet til et nytt system. Alt du trenger å gjøre i så fall er å endre oppsamlingsdataflytene. Transformasjonsdataflytene vil sannsynligvis fungere uten problemer fordi de bare hentes fra de oppsamlingsdataflytene.

Denne separasjonen hjelper også i tilfelle tilkoblingen til kildesystemet går tregt. Transformasjonsdataflyten trenger ikke vente lenge for å få inn poster som kommer gjennom en treg forbindelse fra kildesystemet. Staging-dataflyten har allerede gjort den delen, og dataene er klare for transformasjonslaget.

Diagrammet ligner på det forrige bildet, bortsett fra at transformasjoner fremheves, og dataene sendes til datalageret.

Lagdelt arkitektur

En lagdelt arkitektur er en arkitektur der du utfører handlinger i separate lag. Oppsamlings- og transformasjonsdataflytene kan være to lag med en flerlags dataflytarkitektur. Forsøk på å utføre handlinger i lag sikrer det minste vedlikeholdet som kreves. Når du vil endre noe, trenger du bare å endre det i laget der det er plassert. De andre lagene skal fortsette å fungere fint.

Bildet nedenfor viser en flerlags arkitektur for dataflyter der tabellene deres deretter brukes i semantiske modeller i Power BI.

Diagram som viser en flerlags arkitektur, hvor staging-dataflyter og transformasjonsdataflyter er i separate lag.

Bruke en beregnet tabell så mye som mulig

Når du bruker resultatet av en dataflyt i en annen dataflyt, bruker du konseptet med den beregnede tabellen, noe som betyr å hente data fra en «allerede behandlet og lagret» tabell. Det samme kan skje i en dataflyt. Når du refererer til en tabell fra en annen tabell, kan du bruke den beregnede tabellen. Denne metoden er nyttig når du har et sett med transformasjoner som må gjøres i flere tabeller, som kalles vanlige transformasjoner.

Diagram som viser den beregnede tabellen hentet fra en datakilde som brukes til å behandle vanlige transformasjoner.

I det forrige bildet henter den beregnede tabellen dataene direkte fra kilden. Men i arkitekturen for oppsamlings- og transformasjonsdataflyter er det sannsynlig at de beregnede tabellene er hentet fra de oppsamlingsdataflytene.

Diagram som viser en beregnet tabell hentet fra dataflyter brukt til å behandle vanlige transformasjoner.

Bygge et stjerneskjema

Den beste dimensjonsmodellen er en stjerneskjemamodell som har dimensjons- og faktatabeller designet for å minimere tiden det tar å spørre dataene fra modellen. En stjerneskjemamodell gjør det også lett å forstå for datavisualisereren.

Det er ikke ideelt å hente data i samme oppsett av operativsystemet til et BI-system. Datatabellene skal være ombygd. Noen av tabellene bør ta form av en dimensjonstabell, som beholder den beskrivende informasjonen. Noen av tabellene bør ta form av en faktatabell for å beholde de smidige dataene. Det beste oppsettet for faktatabeller og dimensjonstabeller som skal dannes, er et stjerneskjema. For mer informasjon, gå til Forstå stjerneskjema og viktigheten av Power BI.

Diagram over et stjerneskjema som viser en faktatabell omgitt av dimensjonstabeller, formet som en femtakket stjerne.

Bruk en unik nøkkelverdi for dimensjoner

Når du bygger dimensjonstabeller, må du kontrollere at du har en nøkkel for hver av dem. Denne nøkkelen sikrer at det ikke finnes mange-til-mange (eller med andre ord "svake") relasjoner mellom dimensjoner. Du kan opprette nøkkelen ved å bruke litt transformasjon for å sikre at en kolonne eller en kombinasjon av kolonner returnerer unike rader i dimensjonen. Deretter kan denne kombinasjonen av kolonner merkes som en nøkkel i tabellen i dataflyten.

Skjermbilde av Power Query-transformasjonsfanen med markering som nøkkel og nøkkelikonet i tabellens datokolonne fremhevet.

Gjør en trinnvis oppdatering for store faktatabeller

Faktatabeller er alltid de største tabellene i den dimensjonale modellen. Vi anbefaler at du reduserer antall rader som overføres for disse tabellene. Hvis du har en veldig stor faktatabell, må du kontrollere at du bruker trinnvis oppdatering for tabellen. En trinnvis oppdatering kan gjøres i semantisk Power BI-modell, og også dataflyttabellene.

Du kan bruke inkrementell oppdatering for å bare oppdatere deler av dataene, den delen som har endret seg. Det finnes flere alternativer for å velge hvilken del av dataene som skal oppdateres, og hvilken del som skal beholdes. For mer informasjon, gå til Bruk inkrementell oppdatering med Power BI dataflows.

Skjermbilde av innstillingsdialogen for inkrementell oppdatering for dataflyter.

Refererer til å opprette dimensjoner og faktatabeller

I kildesystemet har du ofte en tabell som du bruker til å generere både fakta- og dimensjonstabeller i datalageret. Disse tabellene er gode kandidater for beregnede tabeller og også mellomliggende dataflyter. Den vanlige delen av prosessen, for eksempel datarengjøring og fjerning av ekstra rader og kolonner, kan gjøres én gang. Ved å bruke en referanse fra utdataene for disse handlingene, kan du produsere dimensjons- og faktatabellene. Denne tilnærmingen bruker den beregnede tabellen for de vanlige transformasjonene.

Skjermbilde som viser en Ordre-spørring med referanse-alternativet brukt for å lage en ny spørring kalt Ordrer aggregert.