Estilos de distribución - Amazon Redshift

Estilos de distribución

Cuando crea una tabla, puede designar uno de los siguientes estilos de distribución: AUTO, EVEN, KEY o ALL.

Si no se especifica un estilo de distribución, Amazon Redshift usa la distribución AUTO.

Distribución AUTO

Con la distribución AUTO, Amazon Redshift asigna un estilo de distribución óptimo basado en el tamaño de los datos de la tabla. Por ejemplo, si se especifica el estilo de distribución AUTO, Amazon Redshift asigna inicialmente el estilo de distribución ALL a una tabla pequeña. Cuando la tabla crezca, Amazon Redshift podría cambiar el estilo de distribución a KEY y elegir la clave principal (o una columna de la clave primaria compuesta) como la clave de distribución. Si la tabla crece y ninguna de las columnas es adecuada para ser la clave de distribución, Amazon Redshift cambia el estilo de distribución a EVEN. El cambio en el estilo de distribución se produce en segundo plano y tiene un impacto mínimo en las consultas de los usuarios.

Si desea consultar las acciones que Amazon Redshift realizó de forma automática para modificar la clave de distribución de una tabla, consulte SVL_AUTO_WORKER_ACTION. Si desea conocer las recomendaciones actuales relativas a la modificación de la clave de distribución de una tabla, consulte SVV_ALTER_TABLE_RECOMMENDATIONS.

Para ver el estilo de distribución aplicado a una tabla, consulte la vista de catálogo del sistema PG_CLASS_INFO. Para obtener más información, consulte Visualización de los estilos de distribución. Si no se especifica un estilo de distribución con la instrucción CREATE TABLE, Amazon Redshift aplica la distribución AUTO.

Distribución EVEN

El nodo principal distribuye las filas entre los sectores con un método de turnos rotativos, independientemente de los valores de cualquier columna en particular. La distribución EVEN resulta adecuada cuando una tabla no participa en las uniones. Además, resulta adecuada en los casos en que no hay una opción clara entre la distribución KEY y la distribución ALL.

Distribución KEY

Las filas se distribuyen según los valores de una columna. El nodo principal ubica juntos los valores que coinciden en el mismo sector del nodo. Si distribuye un par de tablas en las claves de unión, el nodo principal ubica las filas en los sectores según los valores de las columnas de unión. De este modo, los valores que coinciden de las columnas que tienen en común se almacenan juntos físicamente.

Distribución ALL

Se distribuye una copia de toda la tabla a cada nodo. Mientras que la distribución EVEN o la distribución KEY colocan solo una parte de las filas de la tabla en cada nodo, la distribución ALL garantiza que se coloque cada fila para cada combinación en la que participa la tabla.

La distribución ALL multiplica el almacenamiento requerido por la cantidad de nodos del clúster, por lo que demanda más tiempo para cargar, actualizar o insertar datos en distintas tablas. La distribución ALL es adecuada solo para tablas con movimientos relativamente lentos, es decir tablas que no se actualizan con frecuencia ni de forma generalizada. Dado que el costo de redistribuir tablas pequeñas durante una consulta es bajo, no hay un beneficio significativo para definir tablas de dimensiones pequeñas como DISTSTYLE ALL.

nota

Una vez que haya especificado un estilo de distribución para una columna, Amazon Redshift se encarga de la distribución de datos en el nivel del clúster. Amazon Redshift no requiere ni admite el concepto de partición de datos dentro de los objetos de la base de datos. No es necesario crear espacios de tablas ni definir esquemas de partición para las tablas.

En ciertas situaciones, puede cambiar el estilo de distribución de una tabla después de crearla. Para obtener más información, consulte ALTER TABLE. En aquellas situaciones en las que no puede cambiar el estilo de distribución de una tabla después de crearla, puede volver a crear la tabla y rellenar la nueva tabla con una copia profunda. Para obtener más información, consulte Realización de una copia profunda