Tecniche di compressione di LuckyTemplates in DAX Studio

Tecniche di compressione di LuckyTemplates in DAX Studio

In questa esercitazione verranno descritte le diverse tecniche di compressione di LuckyTemplates in che consentono di ottimizzare il report.

Dopo che i dati vengono caricati segmento per segmento da Analysis Services in LuckyTemplates Power Pivot e SSAS , si verificano due eventi. Il primo è che tentano di utilizzare diversi metodi di codifica per comprimere le colonne per ridurre la dimensione complessiva della RAM . Il secondo è che cercano di finanziare il miglior ordinamento che mette insieme i valori ripetuti. Questo metodo aumenta anche la compressione e, a sua volta, riduce la pressione sulla memoria.

Esistono diverse tecniche di compressione utilizzate da Analysis Services. Questa esercitazione copre tre metodi, in particolare, Codifica valore, Codifica lunghezza esecuzione e Codifica dizionario. Nell'ultima sezione di questa esercitazione verrà illustrato come eseguire l'ordinamento in Analysis Services.

Sommario

Tecnica di compressione di LuckyTemplates n. 1: codifica del valore

Il primo si chiama Value Encoding.

Value Encoding cerca una relazione matematica tra ogni valore in una colonna per ridurre la memoria. Ecco un esempio in Microsoft Excel:

Questa colonna richiede 16.384 bit per memorizzare i valori.

Tecniche di compressione di LuckyTemplates in DAX Studio

Per calcolare i bit richiesti, utilizzare prima la funzione MAX() in Excel per ottenere il valore più alto nelle colonne. In questo caso, è 9144. Quindi, utilizzare la funzione POWER() per calcolare i bit richiesti. Utilizzare l'argomento POTENZA(2, X) dove X è qualsiasi valore positivo che restituirà una risposta maggiore del valore MAX. X, in questo caso, rappresenta anche i bit richiesti. Quindi, per questo esempio, il valore di X è 14 che risulta in 16.384 . Pertanto, la colonna richiede 14 bit di archiviazione.

Per ridurre i bit richiesti utilizzando la codifica del valore, VertiPaq cerca il valore MIN nella colonna e lo sottrae da ciascun valore. In questo caso, il valore MIN nella colonna è 9003. Se lo sottrai dalla colonna, restituirà questi valori:

Tecniche di compressione di LuckyTemplates in DAX Studio

Usando le stesse funzioni e argomenti, puoi vedere che per la nuova colonna, il valore MAX è 141. E usando 8 come valore di X risulta 256 . Pertanto, la nuova colonna richiede solo 8 bit.

Puoi vedere quanto è compressa la seconda colonna rispetto alla prima.

Una volta che i dati sono stati compressi e si tenta di interrogare la nuova colonna, Storage Engine o Vertipaq esegue la scansione di questa colonna. Non restituiranno semplicemente i nuovi valori della colonna. Invece, aggiungono il valore sottratto prima di restituire il risultato all'utente.

Tuttavia, Value Encoding funziona solo su colonne contenenti numeri interi o valori con numeri decimali fissi.

Tecnica di compressione di LuckyTemplates n. 2: codifica della lunghezza dell'esecuzione

Il secondo metodo di codifica si chiama Run Length Encoding.

Run Length Encoding crea una struttura dati che contiene il valore distinto, una colonna Start e una colonna Count.

Facciamo un esempio:

Tecniche di compressione di LuckyTemplates in DAX Studio

In questo caso, identifica che nella prima riga è disponibile un valore Rosso . Quindi scopre che il valore Nero inizia dalla seconda riga ed è disponibile per le successive quattro celle. Procede al terzo valore, Blue , che inizia dalla sesta riga ed è disponibile per le tre righe successive. E questo va avanti finché non raggiunge l'ultimo valore nella colonna.

Quindi, invece di memorizzare l'intera colonna, crea una struttura dati che contiene solo informazioni su dove inizia e dove finisce un particolare valore e quanti duplicati ha.

Tecniche di compressione di LuckyTemplates in DAX Studio

Per le colonne con la stessa struttura, i dati possono essere ulteriormente compressi disponendo i valori in ordine crescente o decrescente.

Tecniche di compressione di LuckyTemplates in DAX Studio

Con questa colonna correttamente ordinata, puoi vedere che il metodo Run Length Encoding ora restituisce una struttura di dati con una riga in meno.

Tecniche di compressione di LuckyTemplates in DAX Studio

Pertanto, se hai a che fare con molti valori distinti, è consigliabile ordinare la colonna nel modo più ottimale possibile. Questo ti darà una struttura dati con meno righe che a sua volta occupa meno RAM.

La codifica della lunghezza di esecuzione non può essere applicata alle chiavi primarie perché le colonne della chiave primaria contengono solo valori univoci. Quindi, invece di memorizzare una riga per ogni valore, memorizzerà la colonna così com'è.

Tecnica di compressione di LuckyTemplates n. 3: codifica del dizionario

Il terzo metodo di codifica si chiama Dictionary Encoding.

Dictionary Encoding crea una struttura simile a un dizionario che contiene il valore distinto di una colonna. Assegna anche un indice a quel valore univoco.

Utilizzando l'esempio precedente, diamo un'occhiata a come funziona Dictionary Encoding. In questo caso, ai valori Red, Black e Blue viene assegnato rispettivamente un indice di 0, 1 e 2.

Tecniche di compressione di LuckyTemplates in DAX Studio

Quindi crea una struttura dati simile a quella di Run Length Encoding. Tuttavia, invece di memorizzare i valori effettivi, Dictionary Encoding memorizza l'indice assegnato di ciascun valore.

Tecniche di compressione di LuckyTemplates in DAX Studio

Ciò riduce ulteriormente la RAM consumata perché i numeri occupano meno spazio rispetto ai valori stringa.

La codifica del dizionario rende anche indipendente il tipo di dati tabulari. Cioè, indipendentemente dal fatto che tu abbia una colonna che può essere archiviata in diversi tipi di dati, non avrà importanza poiché la struttura dei dati memorizzerà solo il valore dell'indice.

Tuttavia, anche se è indipendente, il tipo di dati avrà comunque un effetto sulla dimensione del dizionario. A seconda del tipo di dati in cui scegli di salvare la colonna, la dimensione del dizionario (o della struttura dei dati) fluttuerà. Ma la dimensione della colonna stessa rimarrà la stessa.

Quindi, a seconda del tipo di dati che sceglierai, una volta applicata la codifica del dizionario alla colonna, la codifica della lunghezza di esecuzione può essere applicata in seguito.

In questo caso, Analysis Services creerà due strutture di dati. Prima creerà un dizionario e quindi applicherà Run Length Encoding su di esso per aumentare ulteriormente la compressione della colonna.

Ordinamento in Analysis Services

Per l'ultima parte di questa esercitazione, discuteremo in che modo Analysis Services decide il modo più ottimale per ordinare i dati.

Ad esempio, esaminiamo una colonna contenente i valori Rosso, Blu, Nero, Verde e Rosa. A loro sono stati assegnati anche i numeri da 1 a 5. Questo funge da dizionario della nostra rubrica.

Tecniche di compressione di LuckyTemplates in DAX Studio

Ora riempi un'intera colonna in Excel con questi valori. Utilizzare questo argomento per generare una colonna contenente questi valori in modo casuale.

Tecniche di compressione di LuckyTemplates in DAX Studio

Trascina la formula fino all'ultima riga. Fare clic su OK se viene visualizzata la finestra a comparsa Large Operation . Questo è ora come sarà:

Tecniche di compressione di LuckyTemplates in DAX Studio

Successivamente, copia l'intera colonna e incollala come Value .

Tecniche di compressione di LuckyTemplates in DAX Studio

Ora se vai all'opzione File nel tuo documento Excel e fai clic su Informazioni , puoi vedere che la colonna consuma 14,1 MB .

Per ridurre la quantità di RAM consumata, puoi ordinare la colonna dalla A alla Z. Se controlli nuovamente la dimensione, puoi vedere che è stata ridotta a 12,5 MB .

La riduzione di 1,9 MB potrebbe non sembrare molto. Questo perché l'esempio ha utilizzato una singola colonna in Excel per dimostrare. Excel è limitato a 1 milione di righe. Tuttavia, in LuckyTemplates i tuoi dati possono contenere miliardi di righe e colonne. La riduzione dello spazio utilizzato cresce in modo esponenziale.

Conclusione

Dopo che i dati sono stati ordinati nel modo più ottimale, Analysis Services applica una delle tre tecniche di compressione a seconda del tipo di dati.

In questo modo aumenta la compressione dei dati che riduce notevolmente la quantità di memoria consumata nel dispositivo. Ciò rende il report più ottimale, semplificandone l'esecuzione e il caricamento.


Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Cos'è il sé in Python: esempi del mondo reale

Come salvare e caricare un file RDS in R

Come salvare e caricare un file RDS in R

Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere