Algoritmos de Compresión de Datos: Musley y Otros Métodos Eficientes
Clase 10 de 33 • Curso de AWS Redshift para Manejo de Big Data
Resumen
¿Qué es el Algoritmo Musley y para qué se utiliza?
El algoritmo Musley es una herramienta poderosa en la comprensión de datos, especialmente útil cuando la mayoría de los datos en una columna tiene valores significativamente más bajos que el dato máximo. Este algoritmo es ideal en situaciones donde se ha creado una columna de gran tamaño debido a unos pocos datos que lo requieren, mientras la mayoría son bastante pequeños en comparación. Musley tiene tres variantes o "sabores": de ocho, doce y treinta y dos bits, y se aplica a tipos de datos numéricos.
- Musley de 8 bits: Convierte valores que caben dentro del rango de -127 a 127 a un tamaño de solo ocho bits, ideal para datos originalmente ocupando entre cuatro y ocho bytes.
- Musley de 16 bits: Para datos en el rango de -32,768 a 32,768, reduciéndolos a dieciséis bits.
- Musley de 32 bits: Aunque menos común, este se aplica donde es importante la reducción a cuatro bytes mientras se mantiene el rango numérico hasta 214 millones.
Elegir el tipo correcto de codificación Musley requiere un buen entendimiento de los datos para maximizar la eficiencia.
¿Cómo funciona la codificación RoundLink?
RoundLink es una técnica ideal para datos categóricos con pequeñas distribuciones, donde los valores únicos son limitados. En estos casos, aunque el orden de los datos no es esencial, la compresión se beneficia de la repetición consecutiva de categorías como, por ejemplo, las suscripciones en una plataforma.
- Ejemplo práctico: Si tienes suscripciones Platzi Basic, Platzi Expert y Platzi Expert Plus, RoundLink identifica las repeticiones consecutivas, comprimiendo los datos al agregar un byte adicional que indica la cantidad de veces que se repite un valor, en lugar de almacenarlo de manera redundante.
Esta forma de compresión puede reducir dramáticamente el tamaño de los datos almacenados, de 50 bytes a solo 32 bytes en el ejemplo dado.
¿Cuándo usar text 255 y text 32,000?
El text 255 y text 32,000 son algoritmos específicos para la compresión de texto en bases de datos. Si en una columna existen patrones comunes o ciertas palabras se repiten frecuentemente, estas herramientas pueden ser muy efectivas.
- Text 255: Se enfoca en identificar y comprimir palabras comunes en textos libres dentro de una columna.
- Text 32,000: Ofrece una compresión más detallada creando un diccionario indexado de las palabras usadas, lo que es adecuado para textos que reinciden en ciertas expresiones.
Estos algoritmos son particularmente valiosos cuando se manejan direcciones o cualquier tipo de texto con palabras predecibles como 'calle', 'carrera' o 'edificio'.
¿Qué es la codificación estándar y cuándo se utiliza?
La codificación estándar es es una técnica versátil que se aplica tanto a datos numéricos como textuales, buscando reducir su tamaño sin comprometer la integridad o calidad. Esta técnica es ampliamente utilizada en la actualidad debido a su capacidad para disminuir el tamaño de las bases de datos de manera efectiva, facilitando el manejo y procesamiento de grandes cantidades de información.
¿Cómo elegir la codificación adecuada para una base de datos?
Para seleccionar la mejor estrategia de codificación y compresión, es esencial comprender en profundidad los datos y el negocio al que sirven:
- ID numérico: Considera la codificación delta si el ID es incremental.
- Nombres: A menos que sean extremamente comunes, podría ser mejor mantenerlos sin compresión adicional.
- Género y país: Usar un diccionario de bytes o text 255, dado que los valores son limitados en cantidad.
- Suscripción y promo: Aplicar RoundLink si generalmente aparecen en secuencias repetitivas.
- Fechas: La codificación delta es útil cuando las diferencias entre fechas son mínimas.
Este conocimiento no solo optimiza la compresión de datos, sino que también informa decisiones arquitectónicas para gestionar eficazmente la información en sistemas complejos.