LuckyTemplates komprimeringstekniker i DAX Studio

I den här självstudien kommer du att lära dig om de olika LuckyTemplates-komprimeringsteknikerna som hjälper dig att optimera din rapport.

Efter att data har laddats segment för segment av analystjänsterna i LuckyTemplates Power Pivot och inträffar två händelser. Den första är att de försöker använda olika kodningsmetoder för att . Den andra är att de försöker finansiera den bästa sorteringsordningen som placerar återkommande värden tillsammans. Denna metod ökar också komprimeringen och minskar i sin tur trycket på minnet.

Det finns olika komprimeringstekniker som används av Analysis Services. Denna handledning täcker tre metoder, särskilt, nämligen värdekodning, körlängdskodning och ordbokskodning. I det sista avsnittet av denna handledning kommer det att täcka hur man sorterar ordning fungerar i Analysis Services.

Innehållsförteckning

LuckyTemplates komprimeringsteknik #1: Värdekodning

Den första heter Value Encoding.

Värdekodning söker efter ett matematiskt förhållande mellan varje värde i en kolumn för att minska minnet. Här är ett exempel i Microsoft Excel:

Denna kolumn kräver 16 384 bitar för att lagra värdena.

LuckyTemplates komprimeringstekniker i DAX Studio

För att beräkna de bitar som krävs, använd först funktionen MAX() i Excel för att få det högsta värdet i kolumnerna. I det här fallet är det 9144. Använd sedan POWER()-funktionen för att beräkna de bitar som krävs. Använd argumentet POWER(2, X) där X är ett positivt värde som returnerar ett svar som är större än MAX-värdet. X, i detta fall, representerar också de bitar som krävs. Så för det här exemplet är värdet på X 14 vilket resulterar i 16 384 . Därför kräver kolumnen 14 bitars lagring.

För att minska de nödvändiga bitarna med värdekodning söker VertiPaq upp MIN-värdet i kolumnen och subtraherar det från varje värde. I det här fallet är MIN-värdet i kolumnen 9003. Om du subtraherar detta från kolumnen returnerar det dessa värden:

LuckyTemplates komprimeringstekniker i DAX Studio

Med samma funktioner och argument kan du se att för den nya kolumnen är MAX-värdet 141. Och att använda 8 som värdet på X resulterar i 256 . Därför kräver den nya kolumnen bara 8 bitar.

Du kan se hur komprimerad den andra är jämfört med den första kolumnen.

När data är komprimerade och du försöker fråga den nya kolumnen, skannar den denna kolumn. De kommer inte bara att returnera de nya värdena i kolumnen. Istället lägger de till det subtraherade värdet innan resultatet returneras till användaren.

Men värdekodning fungerar bara på kolumner som innehåller heltal eller värden med fasta decimaltal.

LuckyTemplates komprimeringsteknik #2: Run Length Encoding

Den andra kodningsmetoden kallas Run Length Encoding.

Run Length Encoding skapar en datastruktur som innehåller det distinkta värdet, en startkolumn och en Count-kolumn.

Låt oss ta ett exempel:

LuckyTemplates komprimeringstekniker i DAX Studio

I det här fallet identifierar den att ett rött värde är tillgängligt i den första raden. Den får då reda på att svartvärdet börjar på andra raden och är tillgängligt för de kommande fyra cellerna. Det fortsätter till det tredje värdet, Blue , som börjar på den sjätte raden och är tillgängligt för de kommande tre raderna. Och detta fortsätter tills det når det sista värdet i kolumnen.

Så istället för att lagra hela kolumnen skapar den en datastruktur som bara innehåller information om var ett visst värde börjar och var det slutar, och hur många dubbletter det har.

LuckyTemplates komprimeringstekniker i DAX Studio

För kolumner med samma struktur kan data komprimeras ytterligare genom att ordna värdena i antingen stigande eller fallande ordning.

LuckyTemplates komprimeringstekniker i DAX Studio

Med denna korrekt sorterade kolumn kan du se att Run Length Encoding-metoden nu returnerar en datastruktur med en rad mindre.

LuckyTemplates komprimeringstekniker i DAX Studio

Så om du har att göra med många distinkta värden, rekommenderas det att sortera kolumnen på ett så optimalt sätt som möjligt. Detta kommer att ge dig en datastruktur med mindre rader som i sin tur upptar mindre RAM.

Run Length Encoding kan inte tillämpas på primärnycklar eftersom primärnyckelkolumner bara innehåller unika värden. Så istället för att lagra en rad för varje värde, kommer den att lagra kolumnen som den är.

LuckyTemplates komprimeringsteknik #3: Ordbokskodning

Den tredje kodningsmetoden kallas Dictionary Encoding.

Dictionary Encoding skapar en ordboksliknande struktur som innehåller det distinkta värdet för en kolumn. Den tilldelar också ett index till det unika värdet.

Med hjälp av föregående exempel, låt oss titta på hur ordbokskodning fungerar. I detta fall tilldelas värdena Röd, Svart och Blå ett index på 0, 1 respektive 2.

LuckyTemplates komprimeringstekniker i DAX Studio

Den skapar sedan en datastruktur som liknar den för Run Length Encoding. Men istället för att lagra de faktiska värdena, lagrar Dictionary Encoding det tilldelade indexet för varje värde.

LuckyTemplates komprimeringstekniker i DAX Studio

Detta minskar RAM-minnet ytterligare eftersom siffror tar upp mindre utrymme än strängvärden.

Dictionary Encoding gör också tabelldatatypen oberoende. Det vill säga, oavsett om du har en kolumn som kan lagras i olika datatyper så spelar det ingen roll eftersom datastrukturen bara kommer att lagra indexvärdet.

Men även om den är oberoende kommer datatypen fortfarande att påverka storleken på ordboken. Beroende på vilken datatyp du väljer att spara kolumnen i, kommer storleken på ordboken (eller datastrukturen) att variera. Men storleken på själva kolumnen kommer att förbli densamma.

Så beroende på vilken datatyp du väljer, när Dictionary Encoding har tillämpats på kolumnen, kan Run Length Encoding tillämpas efteråt.

I det här fallet kommer Analysis Services att skapa två datastrukturer. Det kommer först att skapa en ordbok och sedan tillämpa Run Length Encoding på den för att ytterligare öka komprimeringen av kolumnen.

Sorteringsordning i Analystjänster

För den sista delen av denna handledning, låt oss diskutera hur Analysis Services beslutar om det mest optimala sättet att sortera data.

Som ett exempel, låt oss titta på en kolumn som innehåller röda, blå, svarta, gröna och rosa värden. Siffrorna 1 till 5 har också tilldelats dem. Detta fungerar som ordboken för vår kolumn.

LuckyTemplates komprimeringstekniker i DAX Studio

Fyll nu en hel kolumn i Excel med dessa värden. Använd detta argument för att skapa en kolumn som innehåller dessa värden slumpmässigt.

LuckyTemplates komprimeringstekniker i DAX Studio

Dra formeln upp till sista raden. Klicka på OK om popup-fönstret Large Operation visas. Så här kommer det att se ut nu:

LuckyTemplates komprimeringstekniker i DAX Studio

Kopiera sedan hela kolumnen och klistra in den som ett värde .

LuckyTemplates komprimeringstekniker i DAX Studio

Om du nu går till alternativet Arkiv i ditt Excel-dokument och klickar på Info kan du se att kolumnen förbrukar 14,1 MB .

För att minska mängden RAM som förbrukas kan du sortera kolumnen från A till Ö. Om du kontrollerar storleken igen kan du se att den har minskat till 12,5 MB .

Reduktionen på 1,9 MB kanske inte verkar mycket. Detta beror på att exemplet använde en enda kolumn i Excel för att demonstrera. Excel är endast begränsat till 1 miljon rader. Men i LuckyTemplates kan din data innehålla miljarder rader och kolumner. Minskningen av utrymme som används växer exponentiellt.

Slutsats

När din data är sorterad på det mest optimala sättet, tillämpar Analysis Services någon av de tre komprimeringsteknikerna beroende på datatyp.

Om du gör det ökar komprimeringen av dina data, vilket avsevärt minskar mängden minne som förbrukas i din enhet. Detta gör din rapport mer optimal vilket gör det lättare att köra och ladda.


Skapa en datumtabell i LuckyTemplates

Skapa en datumtabell i LuckyTemplates

Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.

LuckyTemplates mobilrapporteringstips och tekniker

LuckyTemplates mobilrapporteringstips och tekniker

Denna korta handledning belyser LuckyTemplates mobilrapporteringsfunktion. Jag ska visa dig hur du kan utveckla rapporter effektivt för mobila enheter.

Professional Service Analytics-rapporter i LuckyTemplates

Professional Service Analytics-rapporter i LuckyTemplates

I denna LuckyTemplates Showcase går vi igenom rapporter som visar professionell serviceanalys från ett företag som har flera kontrakt och kundengagemang.

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Gå igenom de viktigaste uppdateringarna för Power Apps och Power Automate och deras fördelar och konsekvenser för Microsoft Power Platform.

Vanliga SQL-funktioner: En översikt

Vanliga SQL-funktioner: En översikt

Upptäck några vanliga SQL-funktioner som vi kan använda som sträng, datum och några avancerade funktioner för att bearbeta eller manipulera data.

LuckyTemplates Skapa mall: Guide och tips

LuckyTemplates Skapa mall: Guide och tips

I den här handledningen kommer du att lära dig hur du skapar din perfekta LuckyTemplates-mall som är konfigurerad efter dina behov och preferenser.

Fältparametrar och små multiplar i LuckyTemplates

Fältparametrar och små multiplar i LuckyTemplates

I den här bloggen kommer vi att visa hur man lager fältparametrar med små multiplar för att skapa otroligt användbara insikter och bilder.

LuckyTemplates Rank och anpassad gruppering

LuckyTemplates Rank och anpassad gruppering

I den här bloggen kommer du att lära dig hur du använder LuckyTemplates ranknings- och anpassade grupperingsfunktioner för att segmentera en exempeldata och rangordna den enligt kriterier.

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

I den här handledningen kommer jag att täcka en specifik teknik kring hur man visar Kumulativ total endast upp till ett specifikt datum i dina bilder i LuckyTemplates.

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Lär dig hur du skapar och anpassar punktdiagram i LuckyTemplates, som huvudsakligen används för att mäta prestanda mot mål eller tidigare år.