Uso de la compresión de columnas - Amazon Redshift

Uso de la compresión de columnas

La compresión es una operación en el nivel de columna que reduce el tamaño de los datos cuando se almacenan. La compresión mantiene el espacio de almacenamiento y reduce el tamaño de los datos que se leen desde el almacenamiento, lo que reduce la cantidad de E/S del disco y, por consiguiente, mejora el rendimiento de las consultas.

ENCODE AUTO es la opción predeterminada para las tablas. Cuando una tabla se establece a ENCODE AUTO, Amazon Redshift administra automáticamente la codificación de compresión para todas las columnas de la tabla. Para obtener más información, consulte CREATE TABLE y ALTER TABLE.

No obstante, si especifica la codificación de compresión para alguna columna de la tabla, esta ya no tendrá la opción ENCODE AUTO configurada. Amazon Redshift ya no administra automáticamente la codificación de compresión para todas las columnas de la tabla.

Al crear una tabla, se puede aplicar de forma manual un tipo de compresión, o codificación, a las columnas de esta. O bien, se puede utilizar el comando COPY para analizar y aplicar la compresión automáticamente. Para obtener más información, consulte Selección del comando COPY para las codificaciones de compresión. Para obtener información acerca de la aplicación de la compresión automática, consulte Carga de tablas con compresión automática.

nota

Le recomendamos enfáticamente que use el comando COPY para aplicar la compresión automática.

Puede elegir aplicar manualmente las codificaciones de compresión en caso de que la nueva tabla comparta las mismas características de datos que otra tabla. O puede hacerlo si detecta en las pruebas que las codificaciones de compresión aplicadas durante la compresión automática no son las más adecuadas para sus datos. Si selecciona aplicar codificaciones de compresión de forma manual, puede ejecutar el comando ANALYZE COMPRESSION en una tabla que ya tenga datos y utilizar los resultados para seleccionar las codificaciones de compresión.

Para aplicar la compresión de forma manual, debe especificar codificaciones de compresión para las columnas individuales como parte de la instrucción CREATE TABLE. La sintaxis es la siguiente.

CREATE TABLE table_name (column_name data_type ENCODE encoding-type)[, ...]

En este caso, encoding-type se obtiene de la tabla de palabras clave de la siguiente sección.

Por ejemplo, la siguiente instrucción crea una tabla de dos columnas, la tabla PRODUCT. Cuando se cargan datos a la tabla, la columna PRODUCT_ID no se comprime, pero la columna PRODUCT_NAME sí, mediante una codificación por diccionario de bytes (BYTEDICT).

create table product( product_id int encode raw, product_name char(20) encode bytedict);

Puede especificar la codificación para una columna cuando se agrega a una tabla con el comando ALTER TABLE.

ALTER TABLE table-name ADD [ COLUMN ] column_name column_type ENCODE encoding-type