Este artículo tratará la compresión en el contexto de Big Data, cubriendo los tipos y métodos de compresión. También destacaré por qué y cuándo usar cada tipo y métodoEste artículo tratará la compresión en el contexto de Big Data, cubriendo los tipos y métodos de compresión. También destacaré por qué y cuándo usar cada tipo y método

Compresión en Big Data: Tipos y Técnicas

2026/01/09 02:00
Lectura de 15 min
Si tienes comentarios o inquietudes sobre este contenido, comunícate con nosotros mediante crypto.news@mexc.com

\

Introducción

Este artículo discutirá la compresión en el contexto de Big Data, cubriendo los tipos y métodos de compresión. También destacaré por qué y cuándo debe usarse cada tipo y método.

\


¿Qué es la compresión?

Según la definición general en inglés de compresión, se refiere a reducir algo para que ocupe un espacio más pequeño. En Ciencias de la Computación, la compresión es el proceso de reducir datos a un tamaño más pequeño. Los datos, en este caso, podrían estar representados en texto, audio, archivos de video, etc. Piénselo como cualquier cosa que almacene en el disco duro de su computadora, como datos representados en diferentes formatos. Para proporcionar una definición más técnica, la compresión es el proceso de codificar datos para usar menos bits.

\ Hay múltiples razones para comprimir datos. La razón más común e intuitiva es ahorrar espacio de almacenamiento. Otras razones son resultado de que los datos sean más pequeños. Los beneficios de trabajar con datos más pequeños incluyen:

  1. Tiempo de transmisión de datos más rápido: Los datos comprimidos son más pequeños en tamaño y tardan menos tiempo en transmitirse desde el origen al destino.
  2. Consumo reducido de ancho de banda: Esta razón está fuertemente vinculada a la ventaja de una transmisión de datos más rápida. Los datos comprimidos usan menos ancho de banda de la red, por lo tanto, aumentando el rendimiento y reduciendo la latencia.
  3. Rendimiento mejorado para sistemas digitales que dependen en gran medida de los datos: Esto es evidente en sistemas que dependen del procesamiento en cadena. Esos sistemas aprovechan la compresión para mejorar el rendimiento de los sistemas al reducir el volumen de datos que necesita ser procesado. Tenga en cuenta que esto podría ser específico del sistema y dependerá del uso de la técnica de compresión adecuada. Las técnicas de compresión se discutirán más adelante en este artículo.
  4. Eficiencia de costos: Los servicios en la nube cobran por el almacenamiento de datos. Al usar menos almacenamiento, se introducen ahorros de costos, especialmente en sistemas de Big Data.

\ Otras razones para la compresión dependen de diferentes técnicas y formatos de compresión. Algunos algoritmos de encriptación pueden usarse como método de compresión. Al hacerlo, incluye una capa de seguridad por las razones discutidas anteriormente para comprimir datos. Además, usar formatos de compresión comunes trae compatibilidad y espacio para extensibilidad a sistemas externos con fines de integración.

\ Vale la pena señalar que las razones para la compresión también suenan como beneficios. Sin embargo, la compresión no está exenta de compromisos. Un compromiso común de la compresión es la necesidad de desencriptación, lo que podría ser preocupante para sistemas con recursos limitados. Otros compromisos dependen de la técnica de compresión y el tipo de datos que se estén usando.

\


Tipos de compresión

Para discutir las diferentes técnicas utilizadas para comprimir datos, primero categorizaré la compresión en 2 categorías principales. Este artículo luego discutirá las técnicas relevantes para cada categoría. La compresión se puede agrupar ampliamente en compresión con pérdida y sin pérdida.

\ Como los nombres ya revelan lo que significan, las técnicas de compresión con pérdida son técnicas que no preservan la fidelidad completa de los datos. En pocas palabras, algunos datos se descartan, pero no lo suficiente como para hacer que lo que representan los datos sea irreconocible. Por lo tanto, la compresión con pérdida puede ofrecer un nivel muy alto de compresión en comparación con la compresión sin pérdida, que se presentará en breve.

\ Una característica de la compresión con pérdida es que es irreversible, es decir, cuando se presenta el archivo comprimido, uno no puede restaurar los datos sin procesar con su fidelidad original. Ciertos archivos y formatos de archivo son adecuados para la compresión con pérdida. Típicamente se usa para imágenes, audio y videos. Por ejemplo, las imágenes con formato JPEG se prestan bien a la compresión, y al comprimir una imagen JPEG, el creador o editor puede elegir cuánta pérdida introducir.

\ Por otro lado, la compresión sin pérdida es reversible, lo que significa que cuando se comprime, todos los datos se preservan y se restauran completamente durante la desencriptación. Esto implica que la compresión sin pérdida es adecuada para archivos tipo texto, y en el mundo del almacén de datos y lakehouse, sería el único tipo relevante para usar. Algunos formatos de archivo de audio (FLAC y ALAC) e imagen (GIF, PNG, etc.) funcionan bien con este tipo de compresión.

Elegir un método

No existe un mejor método de compresión general. Diferentes factores entran en juego al elegir qué método sería adecuado caso por caso. Para reforzar esto con ejemplos, un ingeniero de datos en la industria financiera que trabaja con datos tabulares almacenados tendería a usar compresión sin pérdida debido al impacto de los datos faltantes en la creación de informes precisos. Alternativamente, la compresión con pérdida podría ser el camino a seguir para optimizar la página web con muchas imágenes comprimiendo las imágenes y reduciendo los elementos de carga al hacer el sitio web más ligero. Por lo tanto, es crucial realizar una evaluación para determinar el método de compresión más apropiado que se alinee con los requisitos del negocio.

Técnicas de compresión

Esta sección solo cubrirá las técnicas de compresión comunes tanto para compresión con pérdida como sin pérdida. Tenga en cuenta que esto no es de ninguna manera exhaustivo. Además, las técnicas discutidas pueden tener ligeras variaciones para mejorar su rendimiento, respaldadas por diferentes investigaciones.

Técnicas de compresión sin pérdida

Tres técnicas comunes sin pérdida son la codificación Run-Length (RLE), la codificación Huffman y las técnicas Lempel-Ziv-Welch.

\ Codificación Run-Length: RLE se basa en codificar datos, de tal manera que reemplaza secuencias de datos repetidos con una sola pieza de datos y el recuento de esa pieza de datos. Es efectiva para largas ejecuciones de datos repetidos. Además, los conjuntos de datos que tienen dimensiones (campos) que se ordenan de un nivel bajo a un nivel alto de cardinalidad se benefician de RLE.

\ Por ejemplo, tome una cadena simple como AAAAABBCDDD. RLE comprime los datos para convertirse en A(5)B(2)C(1)D(3). Para ser más práctico, tome una tabla en la imagen a continuación.

\ Figura 1 - antes de RLE. Es importante observar que el nivel de cardinalidad está aumentando en los campos de izquierda a derecha

Figura 2 - Después de RLE

Debido a que RLE depende de ejecuciones de campos repetidos, y en el segundo ejemplo, la cardinalidad y el orden de clasificación de los datos, el registro Mouse en la columna de artículo no puede comprimirse a solo Mouse (3) porque la columna anterior divide todos los valores en IT, Mouse y HR, Mouse. Ciertos formatos de archivo son compatibles con RLE, como formatos de archivo de mapa de bits como TIFF, BMP, etc. Los archivos Parquet también admiten RLE, lo que lo hace muy útil en lakehouses de datos modernos que usan almacenamiento de objetos como S3 o GCS.

\ Codificación Huffman: Se basa en modelos estadísticos que asignan códigos de longitud variable a valores en los datos sin procesar según la frecuencia con la que ocurren en los datos sin procesar. La representación de este modelado puede denominarse árbol de Huffman, que es similar a un árbol binario. Este árbol se usa luego para crear un código de Huffman para cada valor en los datos sin procesar. El algoritmo prioriza la codificación de los valores más frecuentes en la menor cantidad posible de bits.

\ Tomemos los mismos datos usados en el ejemplo de RLE AAAAABBCDDD. El árbol de Huffman correspondiente se ve así.

\ Árbol de Huffman

Del árbol, podemos ver que la letra A está representada por 0 igualmente D está presentada por 10. En comparación con las letras B: 111 y C:110, observamos que A y D están representadas por menos bits. Esto se debe a que tienen una frecuencia más alta; por lo tanto, el algoritmo de Huffman las representa con menos bits por diseño. Los datos comprimidos resultantes se convierten en 00000111111110101010.

\ La codificación Huffman usa la regla de prefijo, que establece que el código que representa un carácter no debe estar presente en el prefijo de ningún otro código. Por ejemplo, un código Huffman válido no puede tener letras c y d representadas usando C: 00 y D: 000 porque la representación de C es un prefijo de D.

\ Para ver esto en acción, la Computer Science Field Guide tiene un Generador de árboles de Huffman con el que podría jugar.

\ Codificación Lempel–Ziv–Welch: Fue creada por Abraham Lempel, Jacob Ziv y Terry Welch en 1984 y lleva el nombre de los creadores, obviamente 😅. Similar a RLE y la codificación Huffman, LZW funciona bien con datos que contienen muchos datos repetidos. El algoritmo LZW se basa en diccionarios y crea un diccionario que contiene pares clave-valor de patrones comúnmente vistos en los datos sin procesar. Dicho diccionario también puede denominarse tabla de códigos. Usando una ilustración para explicar cómo funciona esta técnica, tomemos nuestros datos sin procesar representados por ABBABABABA. Cuando se pasa a través del algoritmo usando una configuración de A-Z como valores posibles, la tabla de códigos resultante se ve así:

\ Tabla de código LZW

De la tabla de código anterior, hay un par clave-valor para todas las letras A-Z y pares clave-valor para patrones como AB, BB, BA y ABA. Al tener una representación más corta de estos patrones, el algoritmo LZW puede comprimir los datos sin procesar codificándolos en menos bits. Por lo tanto, usando la tabla de códigos generada a partir de esa entrada, la versión comprimida es 0 1 1 26 29 28. Es clave notar los espacios en los datos comprimidos. Uno podría pensar en ellos como el final de un carácter, por lo que el decodificador no interpretará un 1,0 como un 10 ya que significan cosas diferentes.

\ LZW generalmente es de propósito general y se usa ampliamente hoy en día. Está integrado en muchos sistemas operativos basados en Unix/Linux detrás del comando de shell compress. Además, los formatos de archivo comunes compatibles con LZW son GIF, TIFF y PDF. Otras aplicaciones de compresión LZW se pueden ver en el campo del Procesamiento del Lenguaje Natural, como se discute en este artículo sobre tokenización en NLP.

\ RLE, codificación Huffman y codificación LZW son solo ejemplos comunes. Las técnicas de compresión sin pérdida van más allá de estas tres (3) descritas anteriormente. Otras técnicas incluyen DEFLATE, que usa una combinación de codificación Huffman y LZW - específicamente LZ77.

Técnicas de compresión con pérdida

En esta sección, veremos dos tipos de compresión con pérdida. Recuerde que la compresión con pérdida introduce una pérdida en los datos originales, lo que significa que no todos los datos se conservan.

\ Transformada Discreta del Coseno (DCT): Este método de compresión se usa principalmente en archivos de audio, imagen y video y también se conoce comúnmente como compresión de bloques. Utiliza una función matemática - la función coseno, como su nombre indica - para convertir bloques de los datos originales en frecuencias. Los bloques de datos suelen ser una matriz de 8x8, 4x4, y así sucesivamente, en ese orden de magnitud.

\ La compresión entra cuando se trata de las altas frecuencias que ocurren en los datos, una vez que los datos sin procesar se traducen al dominio de frecuencia usando la función matemática. El proceso general de usar DCT para compresión es:

  • Dividir datos sin procesar en fragmentos. Por ejemplo, en compresión de imágenes, esto podría ser de 8x8 píxeles.
  • Aplicar la función matemática para convertir los fragmentos de datos en frecuencias. Esto resultará en algunas frecuencias altas y frecuencias bajas.
  • Las frecuencias altas se reducen o eliminan dependiendo del grado aceptable de pérdida que uno esté dispuesto a introducir. Aquí es donde realmente se convierte en compresión con pérdida.
  • Para convertir de nuevo a datos representables, todas las frecuencias restantes pasan a través de una Transformada Discreta Inversa del Coseno - IDCT - para restaurar los datos de las frecuencias.

\ DCT se usa ampliamente en diferentes campos hoy en día, no solo en compresión sino también en procesamiento de señales. Los formatos de archivo comunes compatibles con DCT son JPEG (imágenes), MP3 (audio) y MPEG (video). Además, DCT puede lograr altas relaciones de compresión, lo que lo hace adecuado para sistemas digitales con muchas imágenes, como páginas web en Internet.

\ Compresión fractal: Un fractal es un patrón infinito autorreplicante que se repite a diferentes escalas. Cuando se ve desde cualquier punto en la escala, el patrón se ve similar. Debido a que los patrones son similares en cualquier escala, la compresión fractal reduce la escala de fractales 'grandes' para reducir el tamaño de los datos.

\ Ejemplos de fractales

La compresión fractal fue introducida por Michael Barnsley en la década de 1980. La idea general usando una imagen es que si una imagen contiene varias partes que se parecen, ¿por qué almacenarlas dos veces? Para hacer esto, la compresión fractal hace lo siguiente:

  • Particiona la imagen en bloques no superpuestos conocidos como bloques de rango. Estos podrían ser bloques de rango de 8x8, 16x16 píxeles, etc.
  • Escanea la imagen en busca de patrones autorreplicantes (patrones fractales). Usando los bloques de rango, el algoritmo encuentra secciones más grandes de la imagen que son similares a estos bloques de rango. Estas secciones más grandes se denominan bloques de dominio.
  • Luego se aplica una función de transformación al bloque de dominio para aproximar los bloques de rango. Estas funciones de transformación son funciones matemáticas como escalado, traslación, rotación, etc. También pueden denominarse transformaciones. Estas transformaciones se llaman códigos fractales con respecto a la compresión fractal.
  • Luego, los datos se codifican a esas funciones de transformación. En lugar de almacenar los datos píxel por píxel, se almacenan las transformaciones. Estas transformaciones son las reglas que describen cómo reconstruir la imagen a partir de bloques de dominio.

\ Con los códigos fractales, la imagen se reconstruye usando un proceso iterativo. Este proceso puede ser computacionalmente costoso, pero la compresión fractal podría lograr una alta relación de compresión en comparación con otras técnicas de compresión. Debido a su dependencia de patrones autorreplicantes, funcionaría mejor en datos que se ajusten a tener tales patrones autorreplicantes. Los ejemplos serían fotografías de paisajes (imágenes de la naturaleza) e imágenes de ADN.

\ Hay otras técnicas de compresión con pérdida, como la Transformada Wavelet Discreta, la Cuantización. Estas técnicas generalmente se usan en archivos de imágenes, audio y video y son adecuadas para ciertos tipos o formatos de archivo - JPEG, MP3 - para cada tipo de archivo.

\ La compresión con pérdida generalmente tiene relaciones de compresión más altas que la compresión sin pérdida y a veces espera que el usuario conozca la cantidad de pérdida a introducir de antemano. Es pertinente enfatizar que la elección del método y técnica de compresión depende de varios factores. En el núcleo de estos factores están el formato de datos y el resultado deseado.

TL;DR

En general, esta publicación discute la compresión en el mundo de los datos. Se basa fuertemente en el cuerpo de conocimiento existente en ciencias de la computación y teoría de la información. Comprimir significa reducir el volumen que ocupa una entidad, y en el campo de los datos, el volumen se refiere al espacio de almacenamiento. La compresión en sistemas digitales tiene muchas ventajas cuando se hace correctamente. Lo obvio es que reduce el espacio y da lugar para almacenar más datos. Otras ventajas incluyen transmisión más rápida, menos uso de ancho de banda y mejora general en la eficiencia de dicho sistema. Recuerde, esto es cuando se hace correctamente.

\ Para aprovechar las ventajas de la compresión, es clave saber qué tipo usar. La compresión es con pérdida o sin pérdida. La compresión con pérdida introduce una pérdida en los datos originales que generalmente es irreversible, mientras que la compresión sin pérdida comprime los datos y retiene toda la información contenida en los datos originales. Además, hay discurso sobre tipos de compresión híbridos, pero creo que una combinación de con pérdida y sin pérdida es solo con pérdida. Déjame saber qué piensas en los comentarios.

\ Por último, se introdujeron diferentes técnicas tanto para compresión con pérdida como sin pérdida. La lista de técnicas y explicaciones de estas técnicas no es exhaustiva ni completa. Las considero solo un buen comienzo para darle una idea de cómo funciona cada técnica. Para concluir, he agregado recursos adicionales para ayudarlo a investigar más y leer más profundamente sobre la compresión en big data.


Recursos adicionales

Video: Fundamentos de Data Lake - codificación RLE con Parquet en la práctica

Artículo: Una revisión de técnicas de compresión de datos

Artículo: técnicas de compresión sin pérdida

Una introducción concisa a la compresión de datos por David Salomon

Artículo: Un estudio de varias técnicas de compresión de datos

Publicación de blog: Compresión en formatos de archivo abiertos

Artículo: Formatos de archivo abiertos

Artículo: Compresión en bases de datos

Compresión con pérdida para datos genómicos (RNA)

\

Aviso legal: Los artículos republicados en este sitio provienen de plataformas públicas y se ofrecen únicamente con fines informativos. No reflejan necesariamente la opinión de MEXC. Todos los derechos pertenecen a los autores originales. Si consideras que algún contenido infringe derechos de terceros, comunícate a la dirección crypto.news@mexc.com para solicitar su eliminación. MEXC no garantiza la exactitud, la integridad ni la actualidad del contenido y no se responsabiliza por acciones tomadas en función de la información proporcionada. El contenido no constituye asesoría financiera, legal ni profesional, ni debe interpretarse como recomendación o respaldo por parte de MEXC.

$30,000 en PRL + 15,000 USDT

$30,000 en PRL + 15,000 USDT$30,000 en PRL + 15,000 USDT

¡Deposita y opera PRL para mejorar tus premios!