Del via


Teknikker til reduktion af data til importudformning

Denne artikel henvender sig til Power BI Desktop-datamodellerere, der udvikler og publicerer semantiske Power BI-modeller. Den beskriver specifikt forskellige teknikker, der kan hjælpe med at reducere de data, der indlæses i importmodeller.

Importmodeller indlæses med data, der komprimeres og optimeres, og gemmes derefter på disken af VertiPaq-lagringsprogrammet. Når kildedata indlæses i hukommelsen, er det muligt at opnå 10x komprimering, 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, skal du bestræbe dig på at minimere de data, der 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 få flere oplysninger under Store semantiske modeller i Power BI Premium.
  • Mindre modelstørrelser reducerer striden om kapacitetsressourcer, især hukommelse. Mange mindre modeller i en kapacitet kan indlæses samtidigt i længere tid, hvilket resulterer i lavere fjernelseshastigheder.
  • Mindre modelstørrelser opnår hurtigere opdatering af data, hvilket resulterer i lavere ventetidsrapportering, højere gennemløb for semantisk opdatering af modellen og mindre pres på kildesystemet og kapacitetsressourcerne.
  • Mindre antal tabelrækker kan føre til hurtigere beregningsevalueringer, hvilket resulterer i en bedre overordnet forespørgselsydeevne.

Vigtigt

Denne artikel henviser til tider Power BI Premium eller dens kapacitetsabonnementer (P-SKU'er). Vær opmærksom på, at Microsoft i øjeblikket konsoliderer købsmuligheder og udfaser Power BI Premium pr. kapacitets-SKU'er. Nye og eksisterende kunder bør overveje at købe Fabric-kapacitetsabonnementer (F SKU'er) i stedet.

Du kan få flere oplysninger under Vigtige opdateringer, der kommer til Power BI Premium-licenser og Ofte stillede spørgsmål om Power BI Premium.

Fjern unødvendige kolonner

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

  • Rapporteringfor at opnå rapportdesign, der filtrerer, grupperer og opsummerer modeldata korrekt.
  • modelstrukturved at understøtte modelrelationer, modelberegninger, sikkerhedsroller og endda formatering af datafarver.

Du kan sandsynligvis fjerne en hvilken som helst kolonne, der ikke opfylder nogen af disse formål. Fjernelse af en kolonne fra en tabel kaldes også lodret filtrering.

Vi anbefaler, at du designer modeller med det helt rigtige antal kolonner baseret på dine 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

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

  • omfatter begrænsning af mængden af datahistorik, indlæses i faktatabeller (og begrænsning af de datorækker, der indlæses i modeldatotabellerne). Vi anbefaler, at du ikke indlæser al tilgængelig historik som standard, medmindre det er et kendt rapporteringskrav. Du kan implementere tidsbaserede Power Query-filtre med parametre og endda angive dem til at bruge relative tidsperioder (i forhold til opdateringsdatoen – f.eks. de seneste fem år). Vær også opmærksom på, at en retrospektiv ændring af tidsfiltre ikke ødelægger rapporter. Det vil blot resultere i færre (eller flere) datahistorik, der er tilgængelige i rapporter.
  • 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 (RLS)– men den kræver tildeling af specifikke semantiske modeltilladelser i Power BI-tjenesten og oprettelse af duplikerede rapporter, der opretter forbindelse til hver semantisk model. Du kan bruge Power Query-parametre og Power BI-skabelonfiler til at forenkle administration og publikation. Du kan få flere oplysninger i Opret og brug rapportskabeloner i Power BI Desktop.

Gruppér efter, og opsummer

Den mest effektive teknik til at reducere en modelstørrelse er måske at indlæse forud opsummerede data. Du kan bruge denne teknik til at gøre faktatabeller mere detaljerede. Der er dog en særskilt afvej, hvilket medfører tab af detaljer.

Overvej et eksempel, hvor en kildesalgs faktatabel gemmer én række pr. ordrelinje. Der kan opnås en betydelig datareduktion ved at opsummere alle salgsmetrik, gruppering efter dato, kunde og produkt. En endnu større datareduktion kan opnås ved at gruppere efter dato på månedsniveau. Selvom det kunne opnå en mulig 99% reduktion af modelstørrelsen, er rapportering på dagsniveau eller individuelt ordrelinjeniveau ikke længere muligt. Beslutningen om at opsummere faktadata omfatter altid kompromiser. Kompromiser kan afhjælpes af et modeldesign, der indeholder nogle tabeller i DirectQuery-lagringstilstand, som beskrives senere i denne artikel.

Optimer kolonnedatatyper

VertiPaq-lagringsprogrammet bruger separate interne datastrukturer for hver kolonne. Disse datastrukturer opnår som design de højeste optimeringer af numeriske kolonnedata, som bruger værdikodning. Tekst og andre ikke-numeriske data bruger dog hashkodning. Hashkodning kræver, at lagringsprogrammet tildeler et numerisk id til hver entydig værdi i kolonnen. Det er derefter det numeriske id, der er gemt 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). I dette tilfælde kan præfikset SO fjernes, og ordrenummerværdien konverteres til et heltal. For store tabeller kan denne ændring resultere i 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 for standardopsummering for kolonnen til Do Not Summarize. Det hjælper med at undgå upassende opsummering af ordrenummerværdierne.

Præference for brugerdefinerede kolonner

VertiPaq-lagringsprogrammet gemmer model beregnede kolonner (defineret i DAX) på samme måde som almindelige kolonner med Power Query-kilde. De interne datastrukturer gemmes dog en smule anderledes og opnår typisk mindre effektiv komprimering. Datastrukturerne bygges 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).

Når det er muligt, skal du foretrække oprettelse af 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 er sandt, når formlen omfatter evaluering af målinger, eller det kræver specifik udformningsfunktionalitet, der kun understøttes i DAX-funktioner. Du kan få oplysninger om et sådant eksempel i 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 disse forespørgsler i modellen, skal du sikre dig, at du deaktiverer forespørgselsbelastningen i disse forekomster.

Skærmbillede af Power Query, der viser indstillingen Aktivér indlæsning.

Deaktiver automatisk dato/klokkeslæt

Power BI Desktop indeholder en indstilling med navnet Automatisk dato/klokkeslæt. Når indstillingen er aktiveret, oprettes der skjulte tabeller med automatisk dato/klokkeslæt for hver datokolonne i modellen. Denne indstilling understøtter rapportforfattere, når de konfigurerer filtre, gruppering og detailudledning for kalendertidsperioder. De skjulte tabeller er faktisk beregnede tabeller, der øger modellens størrelse.

Du kan finde flere oplysninger i Vejledning til automatisk dato/klokkeslæt i Power BI Desktop.

Brug DirectQuery-lagringstilstand

DirectQuery-lagringstilstand er et alternativ til importlagringstilstand. DirectQuery-modeltabeller importerer ikke data. De består i stedet kun af metadata, der definerer tabelstrukturen. Når tabellen forespørges, bruges oprindelige forespørgsler til at hente data fra den underliggende datakilde. Når du kombinerer tabellerne Import og DirectQuery-lagringstilstand i en enkelt model, kaldes det en sammensat model.

En effektiv teknik til at reducere modelstørrelsen er at angive lagringstilstanden for større faktatabeller til DirectQuery. Overvej, at denne designtilgang ofte fungerer godt sammen med Gruppér efter, og opsummer teknik, der blev introduceret tidligere. Opsummerede salgsdata kan f.eks. bruges til at opnå rapportering af oversigter med høj ydeevne. En detaljeadgangsside kan vise detaljeret salg for specifik (og smal) filterkontekst og vise alle salgsordrer i kontekst. I dette eksempel kan siden med detaljeadgang indeholde visualiseringer, der er baseret på en DirectQuery-modeltabel, for at hente salgsordredataene.

Der er dog mange konsekvenser for sikkerhed og ydeevne i forbindelse med DirectQuery-lagringstilstand og sammensatte modeller. Du kan få flere oplysninger i Brug sammensatte modeller i Power BI Desktop.

Du kan få flere oplysninger om denne artikel i følgende artikler: