Metodtips för att utforma och utveckla komplexa dataflöden

Om det dataflöde du utvecklar blir större och mer komplext kan du göra några saker för att förbättra din ursprungliga design.

Dela upp den i flera dataflöden

Gör inte allt i ett dataflöde. Ett enda komplext dataflöde gör inte bara datatransformeringen längre, det gör det också svårare att förstå och återanvända dataflödet. Du kan dela upp dataflödet i flera dataflöden genom att separera tabeller i olika dataflöden eller till och med en tabell i flera dataflöden. Du kan använda begreppet en beräknad tabell eller länkad tabell för att skapa en del av omvandlingen i ett dataflöde och återanvända den i andra dataflöden.

Dela datatransformeringsdataflöden från mellanlagrings-/extraheringsdataflöden

Att ha vissa dataflöden bara för att extrahera data (dvs . mellanlagring av dataflöden) och andra bara för att transformera data är användbart inte bara för att skapa en arkitektur med flera lager, det är också användbart för att minska komplexiteten i dataflöden. Vissa steg extraherar bara data från datakällan, till exempel hämta data, navigering och ändringar av datatyp. Genom att separera mellanlagringsdataflöden och transformeringsdataflöden gör du dina dataflöden enklare att utveckla.

Multilayered dataflow architecture.

Bild som visar data som extraheras från en datakälla till mellanlagring av dataflöden, där tabellerna antingen lagras i Dataverse eller Azure Data Lake Storage. Sedan flyttas data till transformeringsdataflöden där data transformeras och konverteras till informationslagrets struktur. Sedan flyttas data till den semantiska modellen.

Använda anpassade funktioner

Anpassade funktioner är användbara i scenarier där ett visst antal steg måste utföras för ett antal frågor från olika källor. Anpassade funktioner kan utvecklas via det grafiska gränssnittet i Power Query-redigeraren eller med hjälp av ett M-skript. Funktioner kan återanvändas i ett dataflöde i så många tabeller som behövs.

Att ha en anpassad funktion hjälper genom att bara ha en enda version av källkoden, så du behöver inte duplicera koden. Därför är det mycket enklare att underhålla Power Query-transformeringslogik och hela dataflödet. Mer information finns i följande blogginlägg: Custom Functions Made Easy i Power BI Desktop.

Screenshot of the Queries pane with the Get Holidays custom function and its data emphasized.

Kommentar

Ibland kan du få ett meddelande om att en premiumkapacitet krävs för att uppdatera ett dataflöde med en anpassad funktion. Du kan ignorera det här meddelandet och öppna dataflödesredigeraren igen. Detta löser vanligtvis problemet om inte funktionen refererar till en "inläsningsaktiverad" fråga.

Placera frågor i mappar

Med hjälp av mappar för frågor kan du gruppera relaterade frågor tillsammans. När du utvecklar dataflödet kan du ägna lite mer tid åt att ordna frågor i mappar som är meningsfulla. Med den här metoden kan du hitta frågor enklare i framtiden och det är mycket enklare att underhålla koden.

Använda beräknade tabeller

Beräknade tabeller gör inte bara ditt dataflöde mer begripligt, de ger också bättre prestanda. När du använder en beräknad tabell hämtar de andra tabellerna som refereras från den data från en "redan bearbetad och lagrad" tabell. Omvandlingen är mycket enklare och snabbare.

Dra nytta av den förbättrade beräkningsmotorn

För dataflöden som utvecklats i Power BI-administratörsportalen ska du se till att du använder den förbättrade beräkningsmotorn genom att först utföra kopplingar och filtertransformeringar i en beräknad tabell innan du utför andra typer av transformeringar.

Dela upp många steg i flera frågor

Det är svårt att hålla reda på ett stort antal steg i en tabell. I stället bör du dela upp ett stort antal steg i flera tabeller. Du kan använda Aktivera inläsning för andra frågor och inaktivera dem om de är mellanliggande frågor och endast läsa in den slutliga tabellen via dataflödet. När du har flera frågor med mindre steg i varje är det enklare att använda beroendediagrammet och spåra varje fråga för vidare undersökning, i stället för att gå igenom hundratals steg i en fråga.

Lägga till egenskaper för frågor och steg

Dokumentation är nyckeln till att ha kod som är enkel att underhålla. I Power Query kan du lägga till egenskaper i tabellerna och även i steg. Texten som du lägger till i egenskaperna visas som en knappbeskrivning när du hovra över frågan eller steget. Den här dokumentationen hjälper dig att underhålla din modell i framtiden. Med en blick på en tabell eller ett steg kan du förstå vad som händer där, i stället för att tänka om och komma ihåg vad du har gjort i det steget.

Kontrollera att kapaciteten finns i samma region

Dataflöden stöder för närvarande inte flera länder eller regioner. Premium-kapaciteten måste finnas i samma region som din Power BI-klientorganisation.

Separera lokala källor från molnkällor

Vi rekommenderar att du skapar ett separat dataflöde för varje typ av källa, till exempel lokalt, moln, SQL Server, Spark och Dynamics 365. Att separera dataflöden efter källtyp underlättar snabb felsökning och undviker interna gränser när du uppdaterar dina dataflöden.

Avgränsa dataflöden baserat på den schemalagda uppdatering som krävs för tabeller

Om du har en försäljningstransaktionstabell som uppdateras i källsystemet varje timme och du har en tabell för produktmappning som uppdateras varje vecka, kan du dela upp dessa två tabeller i två dataflöden med olika datauppdateringsscheman.

Undvik att schemalägga uppdatering för länkade tabeller på samma arbetsyta

Om du regelbundet blir utelåst från dina dataflöden som innehåller länkade tabeller kan det bero på ett motsvarande beroende dataflöde på samma arbetsyta som är låst under dataflödesuppdateringen. Sådan låsning ger transaktionsprecision och säkerställer att båda dataflödena uppdateras, men det kan hindra dig från att redigera.

Om du konfigurerar ett separat schema för det länkade dataflödet kan dataflöden uppdateras i onödan och hindra dig från att redigera dataflödet. Det finns två rekommendationer för att undvika det här problemet:

  • Ange inte ett uppdateringsschema för ett länkat dataflöde på samma arbetsyta som källdataflödet.
  • Om du vill konfigurera ett uppdateringsschema separat och vill undvika låsningsbeteendet flyttar du dataflödet till en separat arbetsyta.