¿Qué es la compresión en Redshift?
Tengo un archivo con X peso y quiero hacer que pese menos sin perder calidad.
Una tabla en reshift que no este comprimida, esta perdiendo todo el poder.
- Es una operacion dirigida a las columnas.
- Reduce el tamanio en almacenamiento de los datos reduciendo el I/O.
- Las consultas son mas veloces en una columna comprimida.
La sentencia que utiliza redshift es la siguiente AL MOMENTO DE CREAR LA TABLA:
CREATE TABLE table_name (column_name data type ENCODE encoding type)
Ejemplo:
CREATE TABLE test_compresion (nombre varchar(30) ENCODE TEXT255)
TIPOS DE COMPRENSION:
Codificar RAW (Predeterminada de Redshift)
- Los datos se almacenan descomprimidos y sin formato.
- Tipos da datos: todos.
- Tipo de codificacion por defecto.
Codificacion AZ64
- Codificacion propia de Amazon (AWS).
- Tipos de dato: smallint, integer, bigint, decimal, date, timestamp, timestamptz.
- Utiliza SIMD (Single Instruction, Multiple Data) para procesamiento paralelo.
Codificacion por diccionario de bytes:
- Muy eficaz cuando una columna tiene una cantidad limitada de valores unicos (menos de 256).
- Crea un diccionario en un bloque de redshift de 1MB.
- Tipos de dato: smallint, integer, bigint, decimal, real, double precision, char, varchar, date, timestamp, timestamptz.
Codificacion Delta:
- Muy utiles para las columnas con formato fecha y hora.
- Guarda la diferencia entre un registro y el siguiente.
- Tipos de datos: smallint, int, bigint, date, timestamp, decimal.
- Existe Delta de un byte y de dos bytes 8 y 16 respectivamente.
- No se pueden superar estos bytes en la diferencia, de ser asi la codificacion no se aplica.
- El rango de 1 byte abarca desde -127 hasta 127 y el rango de 2 bytes desde -32K hasta 32K.
Codificacion LZO:
- Mu util para largas cadenas de texto.
- Funciona para texto libre.
- Tipos de dato: smallint, integer, bigint, decimal, char, varchar, date, timestamp, timestamptz.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?