Ejemplo: Selección de codificaciones de compresión para la tabla CUSTOMER - Amazon Redshift

Ejemplo: Selección de codificaciones de compresión para la tabla CUSTOMER

La siguiente instrucción crea una tabla CUSTOMER que tiene columnas con diferentes tipos de datos. Esta instrucción CREATE TABLE muestra una de las combinaciones posibles de codificaciones de compresión para estas columnas.

create table customer( custkey int encode delta, custname varchar(30) encode raw, gender varchar(7) encode text255, address varchar(200) encode text255, city varchar(30) encode text255, state char(2) encode raw, zipcode char(5) encode bytedict, start_date date encode delta32k);

En la siguiente tabla, se muestran las codificaciones de columnas que se eligieron para la tabla CUSTOMER y se da una explicación de las elecciones:

Columna Tipo de datos Codificación Explicación
CUSTKEY int delta CUSTKEY consta de valores enteros únicos consecutivos. Como las diferencias son de un byte, DELTA es una buena opción.
CUSTNAME varchar (30) raw CUSTNAME tiene un dominio mayor con menos valores repetidos. Es posible que cualquier codificación de compresión sea ineficaz.
GENDER varchar (7) text255 GENDER es un dominio muy pequeño con mucho valores repetidos. La codificación text255 funciona bien para las columnas VARCHAR, en las que se repiten las mismas palabras.
ADDRESS varchar (200) text255 ADDRESS es un dominio grande, pero tiene muchas palabras repetidas, como Street, Avenue, North, South, etcétera. Las codificaciones text255 y text 32k son útiles para comprimir columnas VARCHAR en las que se repiten las mismas palabras. La longitud de la columna es corta, por lo que text255 es una buena opción.
CITY varchar (30) text255 CITY es un dominio grande, con algunos valores repetidos. Algunos nombres de ciudades se utilizan con mucho más frecuencia que otros. Text255 es una buena opción por los mismos motivos que lo es para ADDRESS.
STATE char (2) raw En los Estados Unidos, STATE es un dominio preciso de 50 valores de dos caracteres. La codificación bytedict generaría cierta compresión, pero como el tamaño de la columna es de solo dos caracteres, es posible que la compresión no compense la sobrecarga de descomprimir los datos.
ZIPCODE char (5) bytedict ZIPCODE es un dominio conocido de menos de 50 000 valores únicos. Algunos códigos postales se utilizan con mucho más frecuencia que otros. La codificación bytedict es muy eficaz cuando una columna tiene una cantidad limitada de valores únicos.
START_DATE date delta32k Las codificaciones delta son de gran utilidad para las columnas con formato de fecha y hora, en especial si las filas se cargan en el orden de las fechas.