LuckyTemplates-compressietechnieken in DAX Studio

LuckyTemplates-compressietechnieken in DAX Studio

In deze zelfstudie leert u over de verschillende LuckyTemplates-compressietechnieken in waarmee u uw rapport kunt optimaliseren.

Nadat gegevens segment voor segment zijn geladen door de Analysis Services in LuckyTemplates Power Pivot en SSAS , vinden er twee gebeurtenissen plaats. De eerste is dat ze verschillende coderingsmethoden proberen te gebruiken om kolommen te comprimeren om de algehele RAM-grootte te verkleinen . De tweede is dat ze proberen de beste sorteervolgorde te financieren die herhalende waarden bij elkaar plaatst. Deze methode verhoogt ook de compressie en vermindert op zijn beurt de druk op het geheugen.

Er worden verschillende compressietechnieken gebruikt door Analysis Services. Deze tutorial behandelt drie methoden, met name Value Encoding, Run Length Encoding en Dictionary Encoding. In het laatste gedeelte van deze zelfstudie wordt besproken hoe sorteervolgorde werkt in Analysis Services.

Inhoudsopgave

LuckyTemplates-compressietechniek nr. 1: waardecodering

De eerste heet Value Encoding.

Waardecodering zoekt naar een wiskundige relatie tussen elke waarde in een kolom om geheugen te besparen. Hier is een voorbeeld in Microsoft Excel:

Deze kolom heeft 16.384 bits nodig om de waarden op te slaan.

LuckyTemplates-compressietechnieken in DAX Studio

Om de vereiste bits te berekenen, gebruikt u eerst de functie MAX() in Excel om de hoogste waarde in de kolommen te krijgen. In dit geval is dat 9144. Gebruik vervolgens de functie POWER() om de benodigde bits te berekenen. Gebruik het argument MACHT(2, X) waarbij X een positieve waarde is die een antwoord oplevert dat groter is dan de MAX-waarde. X vertegenwoordigt in dit geval ook de benodigde bits. Dus voor dit voorbeeld is de waarde van X 14, wat resulteert in 16.384 . Daarom heeft de kolom 14 bits opslagruimte nodig.

Om de vereiste bits te verminderen met behulp van Value Encoding, zoekt VertiPaq de MIN-waarde in de kolom op en trekt deze af van elke waarde. In dit geval is de MIN-waarde in de kolom 9003. Als u dit aftrekt van de kolom, worden deze waarden geretourneerd:

LuckyTemplates-compressietechnieken in DAX Studio

Met dezelfde functies en argumenten kunt u zien dat voor de nieuwe kolom de MAX-waarde 141 is. En als u 8 gebruikt als de waarde van X, resulteert dit in 256 . Daarom heeft de nieuwe kolom slechts 8 bits nodig.

U kunt zien hoe gecomprimeerd de tweede is in vergelijking met de eerste kolom.

Zodra de gegevens zijn gecomprimeerd en u probeert de nieuwe kolom op te vragen, scant de Storage Engine of Vertipaq deze kolom. Ze zullen niet zomaar de nieuwe waarden van de kolom retourneren. In plaats daarvan voegen ze de afgetrokken waarde toe voordat ze het resultaat teruggeven aan de gebruiker.

Waardecodering werkt echter alleen op kolommen met gehele getallen of waarden met vaste decimale getallen.

LuckyTemplates-compressietechniek nr. 2: codering van runlengte

De tweede coderingsmethode wordt Run Length-codering genoemd.

Run Length Encoding creëert een datastructuur die de unieke waarde, een Start-kolom en een Count-kolom bevat.

Laten we een voorbeeld nemen:

LuckyTemplates-compressietechnieken in DAX Studio

In dit geval geeft het aan dat er één rode waarde beschikbaar is in de eerste rij. Het komt er dan achter dat de Black- waarde begint op de tweede rij en beschikbaar is voor de volgende vier cellen. Het gaat verder naar de derde waarde, Blauw , die begint bij de zesde rij en beschikbaar is voor de volgende drie rijen. En dit gaat door totdat het de laatste waarde in de kolom bereikt.

Dus in plaats van de hele kolom op te slaan, creëert het een gegevensstructuur die alleen informatie bevat over waar een bepaalde waarde begint en eindigt, en hoeveel duplicaten het heeft.

LuckyTemplates-compressietechnieken in DAX Studio

Voor kolommen met dezelfde structuur kunnen gegevens verder worden gecomprimeerd door de waarden in oplopende of aflopende volgorde te rangschikken.

LuckyTemplates-compressietechnieken in DAX Studio

Met deze correct gesorteerde kolom kunt u zien dat de methode Run Length Encoding nu een gegevensstructuur met één rij minder retourneert.

LuckyTemplates-compressietechnieken in DAX Studio

Dus als je te maken hebt met veel verschillende waarden, is het aan te raden om de kolom zo optimaal mogelijk te sorteren. Dit geeft u een gegevensstructuur met minder rijen die op hun beurt minder RAM in beslag nemen.

Run Length-codering kan niet worden toegepast op primaire sleutels omdat primaire-sleutelkolommen alleen unieke waarden bevatten. Dus in plaats van één rij voor elke waarde op te slaan, wordt de kolom opgeslagen zoals deze is.

LuckyTemplates-compressietechniek #3: Woordenboekcodering

De derde coderingsmethode wordt Dictionary Encoding genoemd.

Woordenboekcodering creëert een woordenboekachtige structuur die de afzonderlijke waarde van een kolom bevat. Het wijst ook een index toe aan die unieke waarde.

Laten we aan de hand van het vorige voorbeeld eens kijken hoe Dictionary Encoding werkt. In dit geval krijgen de waarden Rood, Zwart en Blauw een index van respectievelijk 0, 1 en 2.

LuckyTemplates-compressietechnieken in DAX Studio

Vervolgens wordt een gegevensstructuur gemaakt die vergelijkbaar is met die van Run Length Encoding. In plaats van de werkelijke waarden op te slaan, slaat Dictionary Encoding echter de toegewezen index van elke waarde op.

LuckyTemplates-compressietechnieken in DAX Studio

Dit vermindert het RAM-verbruik verder omdat getallen minder ruimte innemen dan tekenreekswaarden.

Dictionary Encoding maakt het gegevenstype in tabelvorm ook onafhankelijk. Dat wil zeggen, ongeacht of u een kolom heeft die in verschillende gegevenstypen kan worden opgeslagen, het maakt niet uit, aangezien de gegevensstructuur alleen de indexwaarde opslaat.

Maar zelfs als het onafhankelijk is, heeft het gegevenstype nog steeds invloed op de grootte van het woordenboek. Afhankelijk van het gegevenstype dat u kiest om de kolom in op te slaan, zal de grootte van het woordenboek (of de gegevensstructuur) fluctueren. Maar de grootte van de kolom zelf blijft hetzelfde.

Dus afhankelijk van het gegevenstype dat u kiest, kan Run Length-codering achteraf worden toegepast zodra Dictionary Encoding op de kolom is toegepast.

In dit geval maakt Analysis Services twee gegevensstructuren. Het zal eerst een woordenboek maken en daarop Run Length Encoding toepassen om de compressie van de kolom verder te verhogen.

Sorteervolgorde in analyseservices

Laten we voor het laatste deel van deze zelfstudie bespreken hoe Analysis Services de meest optimale manier kiest om gegevens te sorteren.

Laten we als voorbeeld eens kijken naar een kolom met waarden voor Rood, Blauw, Zwart, Groen en Roze. Ook de nummers 1 t/m 5 zijn aan hen toegekend. Dit fungeert als het woordenboek van onze column.

LuckyTemplates-compressietechnieken in DAX Studio

Vul nu een hele kolom in Excel met deze waarden. Gebruik dit argument om een ​​kolom te genereren die deze waarden willekeurig bevat.

LuckyTemplates-compressietechnieken in DAX Studio

Sleep de formule naar de laatste rij. Klik op OK als het pop-upvenster Grote bewerking verschijnt. Dit is hoe het er nu uit gaat zien:

LuckyTemplates-compressietechnieken in DAX Studio

Kopieer vervolgens de hele kolom en plak deze als een Waarde .

LuckyTemplates-compressietechnieken in DAX Studio

Als u nu naar de optie Bestand in uw Excel-document gaat en op Info klikt , ziet u dat de kolom 14,1 MB verbruikt .

Om de hoeveelheid verbruikt RAM te verminderen, kunt u de kolom sorteren van A tot Z. Als u de grootte nogmaals controleert, kunt u zien dat deze is teruggebracht tot 12,5 MB .

De vermindering van 1,9 MB lijkt misschien niet veel. Dit komt omdat het voorbeeld een enkele kolom in Excel gebruikte om te demonstreren. Excel is slechts beperkt tot 1 miljoen rijen. In LuckyTemplates kunnen uw gegevens echter miljarden rijen en kolommen bevatten. De vermindering van de gebruikte ruimte groeit exponentieel.

Conclusie

Zodra uw gegevens op de meest optimale manier zijn gesorteerd, past Analysis Services een van de drie compressietechnieken toe, afhankelijk van het gegevenstype.

Als u dit doet, wordt de compressie van uw gegevens verhoogd, waardoor de hoeveelheid geheugen die op uw apparaat wordt verbruikt, aanzienlijk wordt verminderd. Dit maakt uw rapport optimaler waardoor het gemakkelijker wordt om uit te voeren en te laden.


Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Een RDS-bestand opslaan en laden in R

Een RDS-bestand opslaan en laden in R

Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.

First N Business Days Revisited – Een DAX-coderingstaaloplossing

First N Business Days Revisited – Een DAX-coderingstaaloplossing

In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.

Inleiding tot het filteren van context in LuckyTemplates

Inleiding tot het filteren van context in LuckyTemplates

In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.

Zakelijke rapportage met behulp van LuckyTemplates

Zakelijke rapportage met behulp van LuckyTemplates

Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten