Primeros pasos en la arquitectura no transaccional

1

Objetivos y presentación del proyecto

2

Aprende qué es un Data Warehouse

3

Bases de datos columnares y arquitectura orientada a optimización de consultas

4

¿Cómo funciona AWS Redshift?

Configura tu entorno de trabajo para Redshift

5

Creando nuestro entorno de trabajo en AWS

6

Configura tu primer cluster

7

Consumiendo Redshift: empieza la magia

8

Sentencias SQL en Redshift

Cómo diseñar tu base de datos para mejorar su desempeño

9

¿Qué es la compresión en Redshift?

10

Algoritmos de compresión con Redshift

11

Aplicando algoritmos de compresión

12

Análisis de desempeño con diferentes tipos de compresión

13

Estilos de distribución con Redshift

14

Evaluando los estilos de distribución

15

Llaves de ordenamiento para optimizar nuestras consultas

16

Aplicando ordenamiento de columnas

17

Evaluando algoritmos de ordenamiento

18

Buenas prácticas para diseñar tablas en Redshift

19

Tipos de datos en AWS Redshift

20

Reto: mejora el desempeño de tu base de datos

Manipular enormes cantidades de datos

21

Olvídate de los insert, el copy llego para quedarse

22

Cargando archivos tipo JSON

23

El comando copy a fondo

24

Manifiestos y uso de COMPUPDATE para carga con compresión automática

25

Métodos de carga alternativos al comando copy

26

¿Cómo ejecutar sentencias UPDATE y DELETE?

27

¿Cómo mantener el desempeño de tu base de datos?

28

Estadísticas y limpieza de las tablas

Buenas prácticas para diseñar y ejecutar consultas en tu base de datos

29

Agrupamiento, ordenamiento y subqueries

30

¿Qué es y cómo interpretar un explain plan?

Análisis de comportamiento y descarga de datos con Redshift

31

¿Cómo descargar datos eficientemente con UNLOAD?

32

Otras tablas útiles de Redshift para entender el comportamiento de nuestros datos

Conclusiones

33

Próximos pasos con AWS Redshift

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

¿Qué es la compresión en Redshift?

9/33
Recursos

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

¿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.
<h3>Compression encodings</h3>

Topics:

  • Raw encoding
  • AZ64 encoding
  • Byte-dictionary encoding
  • Delta encoding
  • LZO encoding
  • Mostly encoding
  • Runlength encoding
  • Text255 and Text32k encodings
  • Zstandard encoding

Una codificación de compresión especifica el tipo de compresión que se aplica a una columna de valores de datos a medida que se agregan filas a una tabla.

Si no se especifica compresión en una instrucción CREATE TABLE o ALTER TABLE, Amazon Redshift asigna automáticamente la codificación de compresión de la siguiente manera:

  • A las columnas definidas como claves de clasificación se les asigna compresión RAW.

  • A las columnas que se definen como tipos de datos BOOLEAN, REAL o DOUBLE PRECISION se les asigna compresión RAW.

  • A las columnas definidas como tipos de datos SMALLINT, INTEGER, BIGINT, DECIMAL, DATE, TIMESTAMP o TIMESTAMPTZ se les asigna la compresión AZ64.

  • A las columnas definidas como tipos de datos CHAR o VARCHAR se les asigna compresión LZO.

La siguiente tabla identifica las codificaciones de compresión admitidas y los tipos de datos que admiten la codificación:

Encoding type Keyword in CREATE TABLE and ALTER TABLE Data types
Raw (no compression) RAW All
AZ64 AZ64 SMALLINT, INTEGER, BIGINT, DECIMAL, DATE, TIMESTAMP, TIMESTAMPTZ
Byte dictionary BYTEDICT SMALLINT, INTEGER, BIGINT, DECIMAL, REAL, DOUBLE PRECISION, CHAR, VARCHAR, DATE, TIMESTAMP, TIMESTAMPTZ
Delta DELTA DELTA32K SMALLINT, INT, BIGINT, DATE, TIMESTAMP, DECIMAL INT, BIGINT, DATE, TIMESTAMP, DECIMAL
LZO LZO SMALLINT, INTEGER, BIGINT, DECIMAL, CHAR, VARCHAR, DATE, TIMESTAMP, TIMESTAMPTZ
Mostlyn MOSTLY8 MOSTLY16 MOSTLY32 SMALLINT, INT, BIGINT, DECIMAL INT, BIGINT, DECIMAL BIGINT, DECIMAL

AZ64 es un algoritmo de compresión propiedad de Amazon que se ha diseñado para conseguir un elevado índice de compresión y un procesamiento mejorado de las consultas. En esencia, el algoritmo AZ64 comprime grupos de valores de datos más pequeños y utiliza instrucciones SIMD (una instrucción, varios datos) para realizar un procesamiento en paralelo. Utilice AZ64 para ahorrar una cantidad significativa de almacenamiento y conseguir un buen rendimiento con tipos de datos numéricos, de fecha y de hora. Puede utilizar AZ64 como codificación de compresión para definir columnas con instrucciones CREATE TABLE y ALTER TABLE y los siguientes tipos de datos:

SMALLINT

INTEGER

BIGINT

DECIMAL

FECHA

TIMESTAMP

TIMESTAMPTZ

¿La codificación por bytes va a tener hasta cierto punto el mismo efecto que normalizar una tabla?
Hablando acerca del ejemplo del video, ¿si me creo una tabla paises y hago referencia a ella en otras tablas, es lo mismo que crear el diccionario de bytes para las tablas?

Es que los veo muy similares, entonces tengo duda en cuales podría servirme más uno que otro.