Del via


Anbefalte fremgangsmåter for utforming og utvikling av komplekse dataflyter

Hvis dataflyten du utvikler, blir større og mer kompleks, kan du gjøre noe for å forbedre den opprinnelige utformingen.

Dele det opp i flere dataflyter

Ikke gjør alt i én dataflyt. Ikke bare gjør en enkelt, kompleks dataflyt dataflyt datatransformasjonsprosessen lengre, det gjør det også vanskeligere å forstå og bruke dataflyten på nytt. Hvis du bryter dataflyten i flere dataflyter, kan du gjøre dette ved å skille tabeller i ulike dataflyter, eller til og med én tabell i flere dataflyter. Du kan bruke konseptet med en beregnet tabell eller koblet tabell til å bygge en del av transformasjonen i én dataflyt, og bruke den på nytt i andre dataflyter.

Dele dataflyter for datatransformasjon fra oppsamlings-/uttrekkingsdataflyter

Å ha noen dataflyter bare for å trekke ut data (det vil si oppsamling av dataflyter) og andre bare for å transformere data er nyttig, ikke bare for å opprette en flerlagsarkitektur, det er også nyttig for å redusere kompleksiteten i dataflyter. Noen trinn trekker bare ut data fra datakilden, for eksempel hente data, navigasjon og datatypeendringer. Ved å skille dataflyter og transformasjonsdataflyter, gjør du dataflytene enklere å utvikle.

flerlags dataflytarkitektur.

Bilde som viser data som trekkes ut fra en datakilde til oppsamling av dataflyter, der tabellene enten lagres i Dataverse eller Azure Data Lake Storage. Deretter flyttes dataene til transformasjonsdataflyter der dataene transformeres og konverteres til datalagerstrukturen. Deretter flyttes dataene til den semantiske modellen.

Bruke egendefinerte funksjoner

Egendefinerte funksjoner er nyttige i scenarioer der et bestemt antall trinn må utføres for en rekke spørringer fra ulike kilder. Egendefinerte funksjoner kan utvikles gjennom det grafiske grensesnittet i Redigeringsprogrammet for Power Query eller ved hjelp av et M-skript. Funksjoner kan brukes på nytt i en dataflyt i så mange tabeller som nødvendig.

Hvis du har en egendefinert funksjon, kan du bare ha én enkelt versjon av kildekoden, slik at du ikke trenger å duplisere koden. Det er derfor mye enklere å opprettholde transformasjonslogikken for Power Query og hele dataflyten. Hvis du vil ha mer informasjon, kan du gå til følgende blogginnlegg: Egendefinerte funksjoner som er gjort enkle i Power BI Desktop.

Skjermbilde av Spørringer-ruten med funksjonen Hent helligdager og dataene fremhevet.

Notat

Noen ganger kan du motta et varsel som forteller deg at en Premium-kapasitet er nødvendig for å oppdatere en dataflyt med en egendefinert funksjon. Du kan ignorere denne meldingen og åpne dataflytredigeringsprogrammet på nytt. Dette løser vanligvis problemet med mindre funksjonen refererer til en «innlastingsaktivert» spørring.

Plassere spørringer i mapper

Bruk av mapper for spørringer bidrar til å gruppere relaterte spørringer sammen. Når du utvikler dataflyten, bruker du litt mer tid på å ordne spørringer i mapper som gir mening. Ved hjelp av denne fremgangsmåten kan du finne spørringer lettere i fremtiden, og det er mye enklere å vedlikeholde koden.

Bruk beregnede tabeller

Beregnede tabeller gjør ikke bare dataflyten mer forståelig, de gir også bedre ytelse. Når du bruker en beregnet tabell, henter de andre tabellene det refereres til fra den, data fra en «allerede behandlet og lagret» tabell. Transformasjonen er mye enklere og raskere.

Dra nytte av den forbedrede databehandlingsmotoren

For dataflyter som er utviklet i administrasjonsportalen for Power BI, må du sørge for at du benytter deg av den forbedrede databehandlingsmotoren ved å utføre sammenføyninger og filtrere transformasjoner først i en beregnet tabell før du gjør andre typer transformasjoner.

Dele opp mange trinn i flere spørringer

Det er vanskelig å holde oversikt over et stort antall trinn i én tabell. I stedet bør du dele opp et stort antall trinn i flere tabeller. Du kan bruke Aktivere innlasting for andre spørringer og deaktivere dem hvis de er mellomliggende spørringer, og bare laste inn den endelige tabellen gjennom dataflyten. Når du har flere spørringer med mindre trinn i hver, er det enklere å bruke avhengighetsdiagrammet og spore hver spørring for videre undersøkelser, i stedet for å grave i hundrevis av trinn i én spørring.

Legge til egenskaper for spørringer og trinn

Dokumentasjon er nøkkelen til å ha kode som er enkel å vedlikeholde. I Power Query kan du legge til egenskaper i tabellene og også i trinnene. Teksten du legger til i egenskapene, vises som et verktøytips når du holder pekeren over spørringen eller trinnet. Denne dokumentasjonen hjelper deg med å vedlikeholde modellen i fremtiden. Med et blikk på en tabell eller et trinn kan du forstå hva som skjer der, i stedet for å revurdere og huske hva du har gjort i dette trinnet.

Sørg for at kapasiteten er i samme område

Dataflyter støtter for øyeblikket ikke flere land eller områder. Premium-kapasiteten må være i samme område som Power BI-leieren.

Skill lokale kilder fra skykilder

Vi anbefaler at du oppretter en egen dataflyt for hver type kilde, for eksempel lokal, sky, SQL Server, Spark og Dynamics 365. Å skille dataflyter etter kildetype forenkler rask feilsøking og unngår interne grenser når du oppdaterer dataflytene.

Separate dataflyter basert på den planlagte oppdateringen som kreves for tabeller

Hvis du har en salgstransaksjonstabell som oppdateres i kildesystemet hver time, og du har en produkttilordningstabell som oppdateres hver uke, kan du dele disse to tabellene i to dataflyter med ulike tidsplaner for dataoppdatering.

Unngå å planlegge oppdatering for koblede tabeller i samme arbeidsområde

Hvis du regelmessig blir låst ute av dataflytene som inneholder koblede tabeller, kan det skyldes en tilsvarende, avhengig dataflyt i det samme arbeidsområdet som er låst under dataflytoppdatering. Slik låsing gir transaksjonsnøyaktighet og sikrer at begge dataflytene oppdateres, men det kan blokkere deg fra redigering.

Hvis du konfigurerer en egen tidsplan for den koblede dataflyten, kan dataflyter oppdateres unødvendig og blokkere deg fra å redigere dataflyten. Det finnes to anbefalinger for å unngå dette problemet:

  • Ikke angi en oppdateringsplan for en koblet dataflyt i samme arbeidsområde som kildedataflyten.
  • Hvis du vil konfigurere en oppdateringsplan separat og vil unngå låsevirkemåten, flytter du dataflyten til et eget arbeidsområde.