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.


Oppdag unik innsikt ved å bruke LuckyTemplates TOPN-funksjon

Oppdag unik innsikt ved å bruke LuckyTemplates TOPN-funksjon

Denne bloggen inneholder LuckyTemplates TOPN DAX-funksjonen, som lar deg få unik innsikt fra dataene dine, og hjelper deg med å ta bedre markedsføringsbeslutninger.

Datamodellering i LuckyTemplates ved hjelp av støttetabeller

Datamodellering i LuckyTemplates ved hjelp av støttetabeller

Lær noen fantastiske analytiske teknikker som vi kan gjøre for datamodellering i LuckyTemplates ved å bruke DAX-støttetabeller.

Avansert DAX for LuckyTemplates: Implementering av rangeringslogikk på tvers av unik innsikt

Avansert DAX for LuckyTemplates: Implementering av rangeringslogikk på tvers av unik innsikt

Her dykker vi ned i LuckyTemplates Advanced DAX og implementerer rangeringslogikk for å få en helt unik innsikt. Jeg viser også frem målegrening i dette eksemplet.

LuckyTemplates What-If-parameterfunksjon

LuckyTemplates What-If-parameterfunksjon

Denne bloggen introduserer den nye funksjonen i LuckyTemplates, What-If-analyseparameteren. Du vil se hvordan det gjør alt raskt og enkelt for scenarioanalysen din.

Bruk LuckyTemplates Mål forgrening for å sjekke om marginene dine øker ettersom inntektene vokser

Bruk LuckyTemplates Mål forgrening for å sjekke om marginene dine øker ettersom inntektene vokser

Finn ut hvordan du kan finne ut om inntektsveksten din er god ved å sjekke om marginene dine økte ved å bruke LuckyTemplates som måler forgrening.

LuckyTemplates Parameters Via Query Editor

LuckyTemplates Parameters Via Query Editor

Lær og forstå hvordan du kan lage og bruke LuckyTemplates Parameters som er en kraftig funksjon i spørringsredigereren.

Rundt stolpediagram – en visualisering for dashbordet ditt

Rundt stolpediagram – en visualisering for dashbordet ditt

Denne opplæringen vil diskutere hvordan du lager et rundt søylediagram ved hjelp av Charticulator. Du vil lære hvordan du designer dem for LuckyTemplates-rapporten.

PowerApps funksjoner og formler | En introduksjon

PowerApps funksjoner og formler | En introduksjon

Lær hvordan du bruker PowerApps-funksjoner og -formler for å forbedre funksjonaliteten og endre atferd i Power Apps-lerretsappen vår.

Pipe In R: Koblingsfunksjoner med Dplyr

Pipe In R: Koblingsfunksjoner med Dplyr

I denne opplæringen lærer du hvordan du kobler funksjoner sammen ved å bruke dplyr-røroperatøren i programmeringsspråket R.

RANKX Deep Dive: A LuckyTemplates DAX-funksjon

RANKX Deep Dive: A LuckyTemplates DAX-funksjon

RANKX fra LuckyTemplates lar deg returnere rangeringen til et spesifikt tall i hver tabellrad som utgjør en del av en liste med tall.