Cosè il sé in Python: esempi del mondo reale
Cos'è il sé in Python: esempi del mondo reale
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.
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:
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:
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.
Per le colonne con la stessa struttura, i dati possono essere ulteriormente compressi disponendo i valori in ordine crescente o decrescente.
Con questa colonna correttamente ordinata, puoi vedere che il metodo Run Length Encoding ora restituisce una struttura di dati con una riga in meno.
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.
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.
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.
Ora riempi un'intera colonna in Excel con questi valori. Utilizzare questo argomento per generare una colonna contenente questi valori in modo casuale.
Trascina la formula fino all'ultima riga. Fare clic su OK se viene visualizzata la finestra a comparsa Large Operation . Questo è ora come sarà:
Successivamente, copia l'intera colonna e incollala come Value .
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
Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.
In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.
Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.
In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.
Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.
Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.
Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.
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