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.


Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Descubra cómo calcular el total de transacciones realizadas en los últimos N días y obtenga información útil utilizando la inteligencia de tiempo en LuckyTemplates.

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

En este tutorial, demuestro cómo mostrar clústeres en sus datos permite extraer información valiosa usando técnicas DAX avanzadas.

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

En este tutorial, aprenderá a calcular la <strong>población actual del personal</strong> para las relaciones múltiples de la tabla de calendario mediante la función COUNTROWS y FILTER en LuckyTemplates.

Hacer una solicitud HTTP en Power Automate

Hacer una solicitud HTTP en Power Automate

Aprenda a crear una solicitud HTTP con Power Automate y cómo implementar soluciones efectivas para la automatización de tareas.

Programe un flujo de escritorio para que se ejecute en Power Automate

Programe un flujo de escritorio para que se ejecute en Power Automate

En este tutorial, aprenda cómo programar un flujo de escritorio en Power Automate para automatizar tareas en la web y su escritorio.

Power Automate Terminar Control de acción en flujos

Power Automate Terminar Control de acción en flujos

Aprenda a usar correctamente el control Terminar acción de Power Automate que termina las acciones en un flujo si no se cumple alguna de las condiciones.

Power Query: combinar archivos de varias carpetas

Power Query: combinar archivos de varias carpetas

Aprenda a combinar archivos de varias carpetas en su red, escritorio, OneDrive o SharePoint utilizando Power Query.

Tipos de flujo de Power Automate y cuándo usarlos

Tipos de flujo de Power Automate y cuándo usarlos

En este blog, analizamos las similitudes y diferencias entre los tipos de flujo de Power Automate y determinamos cuándo usar cada flujo. Encuentra la mejor opción de automatización.

Conectores de Power Automate: número, texto y fecha y hora

Conectores de Power Automate: número, texto y fecha y hora

Familiarízate con algunos conectores Power Automate integrados que transforman cadenas en otro formato: número, texto y fecha y hora.

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Este tutorial detallado sobre el analizador VertiPaq en DAX Studio le enseñará cómo usar la pestaña Relaciones para optimizar su DAX y resolver problemas de integridad referencial.