LuckyTemplates komprimeringsteknikker i DAX Studio

I denne opplæringen lærer du om de forskjellige LuckyTemplates-komprimeringsteknikkene som hjelper deg med å optimalisere rapporten.

Etter at data er lastet inn segment for segment av analysetjenestene i LuckyTemplates Power Pivot og , oppstår to hendelser. Den første er at de prøver å bruke forskjellige kodingsmetoder for å . Den andre er at de prøver å finansiere den beste sorteringsrekkefølgen som setter gjentatte verdier sammen. Denne metoden øker også kompresjonen og reduserer igjen trykket på minnet.

Det er forskjellige komprimeringsteknikker som brukes av Analysis Services. Denne opplæringen dekker tre metoder, spesielt, nemlig Verdikoding, Run Length Encoding og Dictionary Encoding. I den siste delen av denne opplæringen vil den dekke hvordan du sorterer rekkefølgen i Analysis Services.

Innholdsfortegnelse

LuckyTemplates-komprimeringsteknikk #1: Verdikoding

Den første kalles Value Encoding.

Verdikoding søker etter et matematisk forhold mellom hver verdi i en kolonne for å redusere minnet. Her er et eksempel i Microsoft Excel:

Denne kolonnen krever 16 384 biter for å lagre verdiene.

LuckyTemplates komprimeringsteknikker i DAX Studio

For å beregne bitene som kreves, bruk først MAX()-funksjonen i Excel for å få den høyeste verdien i kolonnene. I dette tilfellet er det 9144. Deretter bruker du POWER()-funksjonen for å beregne bitene som kreves. Bruk argumentet POWER(2, X) der X er en positiv verdi som vil returnere et svar som er større enn MAKS-verdien. X, i dette tilfellet, representerer også bitene som kreves. Så for dette eksemplet er verdien av X 14 som resulterer i 16 384 . Derfor krever kolonnen 14 bits lagring.

For å redusere de nødvendige bitene ved hjelp av verdikoding, søker VertiPaq opp MIN-verdien i kolonnen og trekker den fra hver verdi. I dette tilfellet er MIN-verdien i kolonnen 9003. Hvis du trekker dette fra kolonnen, returnerer den disse verdiene:

LuckyTemplates komprimeringsteknikker i DAX Studio

Ved å bruke de samme funksjonene og argumentene kan du se at for den nye kolonnen er MAKS-verdien 141. Og å bruke 8 som verdien av X resulterer i 256 . Derfor krever den nye kolonnen bare 8 bits.

Du kan se hvor komprimert den andre er sammenlignet med den første kolonnen.

Når dataene er komprimert og du prøver å spørre etter den nye kolonnen, skanner den denne kolonnen. De vil ikke bare returnere de nye verdiene i kolonnen. I stedet legger de til den subtraherte verdien før de returnerer resultatet tilbake til brukeren.

Verdikoding fungerer imidlertid bare på kolonner som inneholder heltall eller verdier med faste desimaltall.

LuckyTemplates komprimeringsteknikk #2: Kjørelengdekoding

Den andre kodingsmetoden kalles Run Length Encoding.

Run Length Encoding oppretter en datastruktur som inneholder den distinkte verdien, en Start-kolonne og en Count-kolonne.

La oss ta et eksempel:

LuckyTemplates komprimeringsteknikker i DAX Studio

I dette tilfellet identifiserer den at én rød verdi er tilgjengelig i den første raden. Den finner så ut at svart -verdien starter på den andre raden og er tilgjengelig for de neste fire cellene. Den fortsetter til den tredje verdien, Blue , som starter på den sjette raden og er tilgjengelig for de neste tre radene. Og dette fortsetter til den når den siste verdien i kolonnen.

Så i stedet for å lagre hele kolonnen, skaper den en datastruktur som kun inneholder informasjon om hvor en bestemt verdi starter og hvor den slutter, og hvor mange duplikater den har.

LuckyTemplates komprimeringsteknikker i DAX Studio

For kolonner med samme struktur kan data komprimeres ytterligere ved å ordne verdiene i enten stigende eller synkende rekkefølge.

LuckyTemplates komprimeringsteknikker i DAX Studio

Med denne riktig sorterte kolonnen kan du se at Run Length Encoding-metoden nå returnerer en datastruktur med én rad mindre.

LuckyTemplates komprimeringsteknikker i DAX Studio

Så hvis du har å gjøre med mange forskjellige verdier, anbefales det å sortere kolonnen på en mest mulig optimal måte. Dette vil gi deg en datastruktur med mindre rader som igjen opptar mindre RAM.

Run Length Encoding kan ikke brukes på primærnøkler fordi primærnøkkelkolonner bare inneholder unike verdier. Så i stedet for å lagre én rad for hver verdi, vil den lagre kolonnen som den er.

LuckyTemplates-komprimeringsteknikk #3: Ordbokkoding

Den tredje kodemetoden kalles Dictionary Encoding.

Ordbokkoding oppretter en ordboklignende struktur som inneholder den distinkte verdien til en kolonne. Den tildeler også en indeks til den unike verdien.

Ved å bruke det forrige eksemplet, la oss se på hvordan ordbokkoding fungerer. I dette tilfellet tildeles verdiene Rød, Svart og Blå en indeks på henholdsvis 0, 1 og 2.

LuckyTemplates komprimeringsteknikker i DAX Studio

Den oppretter deretter en datastruktur som ligner den for Run Length Encoding. Men i stedet for å lagre de faktiske verdiene, lagrer Dictionary Encoding den tilordnede indeksen for hver verdi.

LuckyTemplates komprimeringsteknikker i DAX Studio

Dette reduserer RAM-en som forbrukes ytterligere fordi tall tar opp mindre plass enn strengverdier.

Ordbokkoding gjør også tabelldatatypen uavhengig. Det vil si at uansett om du har en kolonne som kan lagres i forskjellige datatyper, vil det ikke ha noe å si siden datastrukturen kun vil lagre indeksverdien.

Men selv om den er uavhengig, vil datatypen fortsatt ha en effekt på størrelsen på ordboken. Avhengig av datatypen du velger å lagre kolonnen i, vil størrelsen på ordboken (eller datastrukturen) variere. Men størrelsen på selve kolonnen vil forbli den samme.

Så avhengig av hvilken datatype du velger, når ordbokkoding er brukt på kolonnen, kan Run Length Encoding brukes etterpå.

I dette tilfellet vil Analysis Services opprette to datastrukturer. Den vil først lage en ordbok og deretter bruke Run Length Encoding på den for å øke komprimeringen av kolonnen ytterligere.

Sorteringsrekkefølge i analysetjenester

For den siste delen av denne opplæringen, la oss diskutere hvordan Analysis Services bestemmer seg for den mest optimale måten å sortere data på.

La oss som et eksempel se på en kolonne som inneholder røde, blå, svarte, grønne og rosa verdier. Tallene 1 til 5 er også tildelt dem. Dette fungerer som ordboken til spalten vår.

LuckyTemplates komprimeringsteknikker i DAX Studio

Fyll nå en hel kolonne i Excel med disse verdiene. Bruk dette argumentet til å generere en kolonne som inneholder disse verdiene tilfeldig.

LuckyTemplates komprimeringsteknikker i DAX Studio

Dra formelen opp til siste rad. Klikk OK hvis popup-vinduet Stor operasjon vises. Slik vil det se ut nå:

LuckyTemplates komprimeringsteknikker i DAX Studio

Deretter kopierer du hele kolonnen og limer den inn som en verdi .

LuckyTemplates komprimeringsteknikker i DAX Studio

Hvis du nå går til Fil- alternativet i Excel-dokumentet og klikker Info , kan du se at kolonnen bruker 14,1 MB .

For å redusere mengden RAM som forbrukes, kan du sortere kolonnen fra A til Å. Hvis du sjekker størrelsen på nytt, kan du se at den er redusert til 12,5 MB .

Reduksjonen på 1,9 MB virker kanskje ikke mye. Dette er fordi eksemplet brukte en enkelt kolonne i Excel for å demonstrere. Excel er bare begrenset til 1 million rader. Men i LuckyTemplates kan dataene dine inneholde milliarder av rader og kolonner. Reduksjonen i plassbruk vokser eksponentielt.

Konklusjon

Når dataene dine er sortert på den mest optimale måten, bruker Analysis Services en av de tre komprimeringsteknikkene avhengig av datatypen.

Hvis du gjør det, øker komprimeringen av dataene dine, noe som reduserer mengden minne som forbrukes i enheten din. Dette gjør rapporten din mer optimal, noe som gjør den enklere å kjøre og laste.


DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler

DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler

Lær å bruke DAX Studio EVALUATE nøkkelordet med grunnleggende eksempler og få en bedre forståelse av hvordan dette kan hjelpe deg med databehandling.

Opprette en datotabell i LuckyTemplates

Opprette en datotabell i LuckyTemplates

Finn ut hvorfor det er viktig å ha en dedikert datotabell i LuckyTemplates, og lær den raskeste og mest effektive måten å gjøre det på.

LuckyTemplates Mobile Reporting Tips og teknikker

LuckyTemplates Mobile Reporting Tips og teknikker

Denne korte opplæringen fremhever LuckyTemplates mobilrapporteringsfunksjon. Jeg skal vise deg hvordan du kan utvikle rapporter effektivt for mobil.

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

I denne LuckyTemplates-utstillingen vil vi gå gjennom rapporter som viser profesjonell tjenesteanalyse fra et firma som har flere kontrakter og kundeengasjementer.

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Gå gjennom de viktigste oppdateringene for Power Apps og Power Automate og deres fordeler og implikasjoner for Microsoft Power Platform.

Vanlige SQL-funksjoner: en oversikt

Vanlige SQL-funksjoner: en oversikt

Oppdag noen vanlige SQL-funksjoner som vi kan bruke som streng, dato og noen avanserte funksjoner for å behandle eller manipulere data.

LuckyTemplates Template Creation: Guide og tips

LuckyTemplates Template Creation: Guide og tips

I denne opplæringen lærer du hvordan du lager din perfekte LuckyTemplates-mal som er konfigurert til dine behov og preferanser.

Feltparametre og små multipler i LuckyTemplates

Feltparametre og små multipler i LuckyTemplates

I denne bloggen vil vi demonstrere hvordan du legger feltparametere sammen med små multipler for å skape utrolig nyttig innsikt og grafikk.

LuckyTemplates-rangering og tilpasset gruppering

LuckyTemplates-rangering og tilpasset gruppering

I denne bloggen vil du lære hvordan du bruker LuckyTemplates rangering og tilpassede grupperingsfunksjoner for å segmentere et eksempeldata og rangere det i henhold til kriterier.

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

I denne opplæringen skal jeg dekke en spesifikk teknikk rundt hvordan du viser kumulativ total kun opp til en bestemt dato i grafikken i LuckyTemplates.