Teknikker til reduktion af data til importudformning

Denne artikel henvender sig til Power BI Desktop-dataudformere, der udvikler importmodeller. Den beskriver forskellige teknikker for at hjælpe med at reducere de data, der indlæses i importmodeller.

Importmodeller indlæses med data, der komprimeres og optimeres og derefter gemmes på disken af VertiPaq-lagringsprogrammet. Når kildedata indlæses i hukommelsen, er det muligt at se komprimering på 10 gange, og derfor er det rimeligt at forvente, at 10 GB kildedata kan komprimeres til ca. 1 GB. Derudover kan der opnås en ekstra reduktion på 20 %, når den fastholdes på disken.

På trods af den effektivitet, der opnås af VertiPaq-lagringsprogrammet, er det vigtigt, at du bestræber dig på at minimere de data, der skal indlæses i dine modeller. Det gælder især for store modeller, eller modeller, som du forventer, vil vokse og blive store med tiden. Fire overbevisende årsager omfatter:

  • Større modelstørrelser understøttes muligvis ikke af din kapacitet. Delt kapacitet kan hoste modeller på op til 1 GB, mens Premium-kapaciteter kan hoste større modeller afhængigt af SKU'en. Du kan finde flere oplysninger i artiklen Understøttelse af store semantiske modeller i Power BI Premium. (Semantiske modeller blev tidligere kendt som datasæt).
  • Mindre modelstørrelser reducerer striden om kapacitetsressourcer, især hukommelse. Det gør det muligt at indlæse flere modeller samtidigt i længere tid, hvilket resulterer i lavere fjernelseshastigheder.
  • Mindre modeller opnår hurtigere opdatering af data, hvilket resulterer i lavere ventetidsrapportering, højere gennemløb for opdatering af semantiske modeller og mindre pres på kildesystemet og kapacitetsressourcerne.
  • Mindre antal tabelrækker kan resultere i hurtigere beregningsevalueringer, hvilket kan levere en bedre overordnet forespørgselsydeevne.

Der er otte forskellige teknikker til datareduktion, der er beskrevet i denne artikel. Disse teknikker omfatter:

Fjern unødvendige kolonner

Kolonner i modeltabeller tjener to primære formål:

  • Rapportering for at opnå rapportdesign, der filtrerer, grupperer og opsummerer modeldata
  • Modelstruktur ved at understøtte modelrelationer, modelberegninger, sikkerhedsroller og endda formatering af datafarver

Kolonner, der ikke opfylder disse formål, kan sandsynligvis fjernes. Fjernelse af kolonner kaldes lodret filtrering.

Vi anbefaler, at du designer modeller med det helt rigtige antal kolonner baseret på de kendte rapporteringskrav. Dine krav kan blive ændret over tid, men vær opmærksom på, at det er nemmere at tilføje kolonner senere, end det er at fjerne dem senere. Fjernelse af kolonner kan ødelægge rapporter eller modelstrukturen.

Fjern unødvendige rækker

Modeltabeller skal indlæses med så få rækker som muligt. Det kan opnås ved at indlæse filtrerede rækkesæt i modeltabeller af to forskellige årsager: at filtrere efter enhed eller efter klokkeslæt. Fjernelse af rækker kaldes vandret filtrering.

Filtrering efter enhed omfatter indlæsning af et undersæt af kildedata i modellen. I stedet for at indlæse salgsfakta for alle salgsområder skal du f.eks. kun indlæse fakta for et enkelt område. Denne designtilgang resulterer i mange mindre modeller, og den kan også fjerne behovet for at definere sikkerhed på rækkeniveau (men kræver tildeling af specifikke semantiske modeltilladelser i Power BI-tjeneste og oprettelse af "duplikerede" rapporter, der opretter forbindelse til hver semantisk model). Du kan udnytte brugen af Power Query-parametre og Power BI-skabelonfiler til at forenkle administration og publikation. Du kan finde flere oplysninger ved at læse blogindlæg om detaljeret gennemgang af forespørgselsparametre og Power BI-skabeloner

Filtrering efter tid omfatter begrænsning af mængden af datahistorik, der indlæses i tabeller af faktatypen (og begrænsning af de datorækker, der indlæses i modeldatotabellerne). Vi foreslår, at du ikke automatisk indlæser al tilgængelig historik, medmindre det er et kendt rapporteringskrav. Det er nyttigt at forstå, at tidsbaserede Power Query-filtre kan parameteriseres og endda indstilles til at bruge relative tidsperioder (i forhold til opdateringsdatoen, f.eks. de seneste fem år). Vær også opmærksom på, at retrospektive ændringer af tidsfiltre ikke ødelægger rapporter. Det vil blot resultere i færre (eller flere) datahistorik, der er tilgængelige i rapporter.

Gruppér efter, og opsummer

Den mest effektive teknik til at reducere en modelstørrelse er måske at indlæse forud opsummerede data. Denne teknik kan bruges til at øge granet af faktatabeller. Der er dog en særskilt afvej, hvilket medfører tab af detaljer.

En kildetabel med salgsoplysninger gemmer f.eks. én række pr. ordrelinje. Der kan opnås en betydelig datareduktion ved at opsummere alle salgsmålepunkter, gruppere efter dato, kunde og produkt. Overvej derefter, at der kan opnås en endnu større datareduktion ved at gruppere efter dato på månedsniveau. Det kan opnå en mulig reduktion af modelstørrelsen på 99 %, men rapportering på dagsniveau – eller individuelt ordreniveau – er ikke længere mulig. Beslutningen om at opsummere data af faktatypen omfatter altid afvejninger. Afvejningsfunktionen kan afhjælpes ved hjælp af et design af en blandet model, og denne indstilling er beskrevet i teknikken Skift til blandet tilstand .

Optimer kolonnedatatyper

VertiPaq-lagringsprogrammet bruger separate datastrukturer for hver kolonne. Disse datastrukturer opnår tilsigtet de højeste optimeringer af numeriske kolonnedata, som bruger værdikodning. Tekst og andre ikke-numeriske data bruger dog hashkodning. Det kræver, at lagringsprogrammet tildeler et numerisk id til hver entydige tekstværdi i kolonnen. Det er derefter det numeriske id, der derefter gemmes i datastrukturen, hvilket kræver et hashopslag under lagring og forespørgsel.

I nogle specifikke tilfælde kan du konvertere kildetekstdata til numeriske værdier. Et salgsordrenummer kan f.eks. have et konsistent præfiks med en tekstværdi (f.eks. "SO123456"). Præfikset kan fjernes, og ordrenummerværdien konverteres til heltal. For store tabeller kan det medføre en betydelig datareduktion, især når kolonnen indeholder entydige værdier eller værdier med høj kardinalitet.

I dette eksempel anbefaler vi, at du angiver egenskaben Standardopsummering for kolonnen til "Opsummer ikke". Det hjælper med at minimere den upassende opsummering af ordrenummerværdierne.

Præference for brugerdefinerede kolonner

VertiPaq-lagringsprogrammet gemmer modelberegnede kolonner (defineret i DAX) på samme måde som almindelige kolonner med Power Query-kilde. Datastrukturerne gemmes dog lidt anderledes og opnår typisk mindre effektiv komprimering. De oprettes også, når alle Power Query-tabeller indlæses, hvilket kan resultere i udvidede dataopdateringstider. Det er derfor mindre effektivt at tilføje tabelkolonner som beregnede kolonner end beregnede kolonner i Power Query (defineret i M).

Du bør foretrække at oprette brugerdefinerede kolonner i Power Query. Når kilden er en database, kan du opnå større belastningseffektivitet på to måder. Beregningen kan defineres i SQL-sætningen (ved hjælp af providerens oprindelige forespørgselssprog), eller den kan materialiseres som en kolonne i datakilden.

I nogle tilfælde kan modelberegnede kolonner dog være det bedste valg. Det kan være tilfældet, når formlen omfatter evaluering af målinger, eller det kræver specifik udformningsfunktionalitet, der kun understøttes i DAX-funktioner. Du kan finde oplysninger om et sådant eksempel i artiklen Om funktioner for overordnede/underordnede hierarkier i DAX .

Deaktiver indlæsning af Power Query-forespørgsel

Power Query-forespørgsler, der er beregnet til at understøtte dataintegration med andre forespørgsler, bør ikke indlæses i modellen. Hvis du vil undgå at indlæse forespørgslen i modellen, skal du sørge for at deaktivere indlæsning af forespørgsler i disse forekomster.

Screenshot of Power Query showing

Deaktiver automatisk dato/klokkeslæt

Power BI Desktop indeholder en indstilling med navnet Automatisk dato/klokkeslæt. Når indstillingen er aktiveret, oprettes der en skjult tabel med automatisk dato/klokkeslæt for datokolonner, der understøtter rapportforfattere, når der konfigureres filtre, gruppering og detailudledningshandlinger for tidsperioder i kalenderen. De skjulte tabeller er faktisk beregnede tabeller, der vil øge modellens størrelse. Du kan finde vejledning til, hvordan du bruger denne indstilling, i artiklen Vejledning til automatisk dato/klokkeslæt i Power BI Desktop .

Skift til blandet tilstand

I Power BI Desktop producerer et design med blandet tilstand en sammensat model. I bund og grund giver det dig mulighed for at bestemme lagringstilstanden for hver tabel. Hver tabel kan derfor have egenskaben Storage Mode angivet som Import eller DirectQuery (Dual er en anden indstilling).

En effektiv teknik til at reducere modellens størrelse er at angive egenskaben Lagertilstand for større tabeller af faktatypen til DirectQuery. Overvej, at denne designtilgang kan fungere godt sammen med teknikken Gruppér efter og opsummer , der blev introduceret tidligere. Opsummerede salgsdata kan f.eks. bruges til at opnå "oversigtsrapportering" med høj ydeevne. En detaljeadgangsside kan vise detaljeret salg for specifik (og smal) filterkontekst og vise alle salgsordrer i kontekst. I dette eksempel indeholder detaljeadgangssiden visualiseringer, der er baseret på en DirectQuery-tabel, for at hente salgsordredataene.

Der er dog mange konsekvenser for sikkerhed og ydeevne i forbindelse med sammensatte modeller. Du kan finde flere oplysninger i artiklen Brug sammensatte modeller i Power BI Desktop .

Du kan få flere oplysninger om design af Power BI-importmodeller i følgende artikler: