Técnicas de compresión de LuckyTemplates en DAX Studio

Técnicas de compresión de LuckyTemplates en DAX Studio

En este tutorial, aprenderá sobre las diferentes técnicas de compresión de LuckyTemplates en que ayudan a optimizar su informe.

Después de que Analysis Services carga los datos segmento por segmento en LuckyTemplates Power Pivot y SSAS , ocurren dos eventos. La primera es que intentan utilizar diferentes métodos de codificación para comprimir columnas y reducir el tamaño total de la memoria RAM . La segunda es que intentan encontrar el mejor orden de clasificación que coloque valores repetidos juntos. Este método también aumenta la compresión y, a su vez, reduce la presión sobre la memoria.

Existen diferentes técnicas de compresión utilizadas por Analysis Services. Este tutorial cubre tres métodos, en particular, a saber, Codificación de valor, Codificación de longitud de ejecución y Codificación de diccionario. En la última sección de este tutorial, cubrirá cómo funciona el orden de clasificación en Analysis Services.

Tabla de contenido

Técnica de compresión de LuckyTemplates n.º 1: Codificación de valor

El primero se llama Codificación de valor.

La codificación de valores busca una relación matemática entre cada valor de una columna para reducir la memoria. He aquí un ejemplo en Microsoft Excel:

Esta columna requiere 16.384 bits para almacenar los valores.

Técnicas de compresión de LuckyTemplates en DAX Studio

Para calcular los bits requeridos, primero use la función MAX() en Excel para obtener el valor más alto en las columnas. En este caso, es 9144. Luego, use la función POWER() para calcular los bits requeridos. Use el argumento POWER(2, X) donde X es cualquier valor positivo que arrojará una respuesta mayor que el valor MAX. X, en este caso, también representa los bits requeridos. Entonces, para este ejemplo, el valor de X es 14, lo que da como resultado 16,384 . Por lo tanto, la columna requiere 14 bits de almacenamiento.

Para reducir los bits necesarios mediante la codificación de valor, VertiPaq busca el valor MÍN en la columna y lo resta de cada valor. En este caso, el valor MIN en la columna es 9003. Si resta esto de la columna, devolverá estos valores:

Técnicas de compresión de LuckyTemplates en DAX Studio

Usando las mismas funciones y argumentos, puede ver que para la nueva columna, el valor MAX es 141. Y usando 8 como el valor de X da como resultado 256 . Por lo tanto, la nueva columna solo requiere 8 bits.

Puede ver cuán comprimida está la segunda columna en comparación con la primera.

Una vez que los datos están comprimidos e intenta consultar la nueva columna, el motor de almacenamiento o Vertipaq escanea esta columna. No devolverán simplemente los nuevos valores de la columna. En cambio, agregan el valor sustraído antes de devolver el resultado al usuario.

Sin embargo, la codificación de valores solo funciona en columnas que contienen números enteros o valores con números decimales fijos.

Técnica de compresión de LuckyTemplates n.º 2: Codificación de longitud de ejecución

El segundo método de codificación se denomina codificación de longitud de ejecución.

La codificación de longitud de ejecución crea una estructura de datos que contiene el valor diferenciado, una columna de inicio y una columna de recuento.

Pongamos un ejemplo:

Técnicas de compresión de LuckyTemplates en DAX Studio

En este caso, identifica que hay un valor rojo disponible en la primera fila. Luego descubre que el valor Negro comienza en la segunda fila y está disponible para las próximas cuatro celdas. Procede al tercer valor, Azul , que comienza en la sexta fila y está disponible para las siguientes tres filas. Y esto continúa hasta que llega al último valor de la columna.

Entonces, en lugar de almacenar la columna completa, crea una estructura de datos que solo contiene información sobre dónde comienza y termina un valor en particular, y cuántos duplicados tiene.

Técnicas de compresión de LuckyTemplates en DAX Studio

Para columnas con la misma estructura, los datos se pueden comprimir aún más organizando los valores en orden ascendente o descendente.

Técnicas de compresión de LuckyTemplates en DAX Studio

Con esta columna correctamente ordenada, puede ver que el método de codificación de longitud de ejecución ahora devuelve una estructura de datos con una fila menos.

Técnicas de compresión de LuckyTemplates en DAX Studio

Entonces, si está tratando con muchos valores distintos, se recomienda ordenar la columna de la manera más óptima posible. Esto le dará una estructura de datos con menos filas que a su vez ocupa menos RAM.

La codificación de longitud de ejecución no se puede aplicar a las claves principales porque las columnas de clave principal solo contienen valores únicos. Entonces, en lugar de almacenar una fila para cada valor, almacenará la columna tal como está.

Técnica de compresión de LuckyTemplates n.º 3: Codificación de diccionario

El tercer método de codificación se denomina codificación de diccionario.

La codificación de diccionario crea una estructura similar a un diccionario que contiene el valor distintivo de una columna. También asigna un índice a ese valor único.

Usando el ejemplo anterior, veamos cómo funciona la codificación de diccionario. En este caso, a los valores Rojo, Negro y Azul se les asigna un índice de 0, 1 y 2, respectivamente.

Técnicas de compresión de LuckyTemplates en DAX Studio

Luego crea una estructura de datos similar a la de la codificación de longitud de ejecución. Sin embargo, en lugar de almacenar los valores reales, Dictionary Encoding almacena el índice asignado de cada valor.

Técnicas de compresión de LuckyTemplates en DAX Studio

Esto reduce aún más la RAM consumida porque los números ocupan menos espacio que los valores de cadena.

La codificación de diccionario también hace que el tipo de datos tabular sea independiente. Es decir, independientemente de si tiene una columna que se puede almacenar en diferentes tipos de datos, no importará ya que la estructura de datos solo almacenará el valor del índice.

Sin embargo, incluso si es independiente, el tipo de datos seguirá teniendo un efecto en el tamaño del diccionario. Según el tipo de datos que elija para guardar la columna, el tamaño del diccionario (o estructura de datos) variará. Pero el tamaño de la columna en sí seguirá siendo el mismo.

Entonces, según el tipo de datos que elija, una vez que se aplica la codificación de diccionario en la columna, la codificación de longitud de ejecución se puede aplicar después.

En este caso, Analysis Services creará dos estructuras de datos. Primero creará un diccionario y luego le aplicará la codificación de longitud de ejecución para aumentar aún más la compresión de la columna.

Orden de clasificación en Analysis Services

Para la última parte de este tutorial, analicemos cómo Analysis Services decide cuál es la forma más óptima de ordenar los datos.

Como ejemplo, veamos una columna que contiene valores de rojo, azul, negro, verde y rosa. También se les han asignado los números del 1 al 5. Esto actúa como el diccionario de nuestra columna.

Técnicas de compresión de LuckyTemplates en DAX Studio

Ahora, llene una columna completa en Excel con estos valores. Utilice este argumento para generar una columna que contenga estos valores al azar.

Técnicas de compresión de LuckyTemplates en DAX Studio

Arrastre la fórmula hasta la última fila. Haga clic en Aceptar si aparece la ventana emergente Operación grande . Así es como se verá ahora:

Técnicas de compresión de LuckyTemplates en DAX Studio

A continuación, copie toda la columna y péguela como Valor .

Técnicas de compresión de LuckyTemplates en DAX Studio

Ahora, si va a la opción Archivo en su documento de Excel y hace clic en Información , puede ver que la columna consume 14,1 MB .

Para reducir la cantidad de RAM consumida, puedes ordenar la columna de la A a la Z. Si vuelves a comprobar el tamaño, verás que se ha reducido a 12,5 MB .

La reducción de 1,9 MB puede no parecer mucho. Esto se debe a que el ejemplo usó una sola columna en Excel para demostrar. Excel solo está limitado a 1 millón de filas. Sin embargo, en LuckyTemplates, sus datos pueden contener miles de millones de filas y columnas. La reducción del espacio utilizado crece exponencialmente.

Conclusión

Una vez que sus datos se clasifican de la manera más óptima, Analysis Services aplica cualquiera de las tres técnicas de compresión según el tipo de datos.

Si lo hace, aumenta la compresión de sus datos, lo que reduce en gran medida la cantidad de memoria consumida en su dispositivo. Esto hace que su informe sea más óptimo y sea más fácil de ejecutar y cargar.


Qué es uno mismo en Python: ejemplos del mundo real

Qué es uno mismo en Python: ejemplos del mundo real

Qué es uno mismo en Python: ejemplos del mundo real

Cómo guardar y cargar un archivo RDS en R

Cómo guardar y cargar un archivo RDS en R

Aprenderá a guardar y cargar objetos desde un archivo .rds en R. Este blog también cubrirá cómo importar objetos desde R a LuckyTemplates.

Revisión de los primeros N días hábiles: una solución de lenguaje de codificación DAX

Revisión de los primeros N días hábiles: una solución de lenguaje de codificación DAX

En este tutorial del lenguaje de codificación DAX, aprenda a usar la función GENERAR y a cambiar dinámicamente el título de una medida.

Showcase Insights utilizando la técnica de elementos visuales dinámicos de subprocesos múltiples en LuckyTemplates

Showcase Insights utilizando la técnica de elementos visuales dinámicos de subprocesos múltiples en LuckyTemplates

Este tutorial cubrirá cómo usar la técnica de elementos visuales dinámicos de subprocesos múltiples para crear información a partir de visualizaciones de datos dinámicos en sus informes.

Introducción al contexto de filtro en LuckyTemplates

Introducción al contexto de filtro en LuckyTemplates

En este artículo, repasaré el contexto del filtro. El contexto del filtro es uno de los temas principales que cualquier usuario de LuckyTemplates debería conocer inicialmente.

Los mejores consejos para usar las aplicaciones en el servicio en línea de LuckyTemplates

Los mejores consejos para usar las aplicaciones en el servicio en línea de LuckyTemplates

Quiero mostrar cómo el servicio en línea de LuckyTemplates Apps puede ayudar a administrar diferentes informes e información generada a partir de varias fuentes.

Analice los cambios en el margen de beneficio a lo largo del tiempo: análisis con LuckyTemplates y DAX

Analice los cambios en el margen de beneficio a lo largo del tiempo: análisis con LuckyTemplates y DAX

Aprenda a calcular los cambios de su margen de beneficio utilizando técnicas como la bifurcación de medidas y la combinación de fórmulas DAX en LuckyTemplates.

Ideas de materialización para cachés de datos en DAX Studio

Ideas de materialización para cachés de datos en DAX Studio

Este tutorial analizará las ideas de materialización de cachés de datos y cómo afectan el rendimiento de DAX al proporcionar resultados.

Informes comerciales con LuckyTemplates

Informes comerciales con LuckyTemplates

Si todavía usa Excel hasta ahora, este es el mejor momento para comenzar a usar LuckyTemplates para sus necesidades de informes comerciales.

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber