

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Prácticas recomendadas de Amazon Redshift para el diseño de tablas
<a name="c_designing-tables-best-practices"></a>

Cuando planifique la base de datos tenga en cuenta que algunas decisiones clave sobre el diseño de la tabla influyen considerablemente en el rendimiento general de la consulta. Las elecciones de diseño también tienen consecuencias importantes en los requisitos de almacenamiento, lo cual a su vez afecta el rendimiento de la consulta al reducir la cantidad de operaciones de E/S y reducen la memoria requerida para procesar las consultas.

En esta sección, encontrará un resumen de las decisiones de diseño más importantes y prácticas recomendadas para optimizar el rendimiento de las consultas. [Optimización de tablas automática](t_Creating_tables.md) contiene explicaciones y ejemplos más detallados sobre las opciones de diseño de tablas.

**Topics**
+ [Elección de la clave de clasificación recomendada](c_best-practices-sort-key.md)
+ [Elección de modos de distribución recomendados](c_best-practices-best-dist-key.md)
+ [Selección del comando COPY para las codificaciones de compresión](c_best-practices-use-auto-compression.md)
+ [Definición de restricciones de clave primaria y clave externa](c_best-practices-defining-constraints.md)
+ [Uso del menor tamaño posible de columna](c_best-practices-smallest-column-size.md)
+ [Uso de tipos de datos de fecha/hora para columnas de fecha](c_best-practices-timestamp-date-columns.md)

# Elección de la clave de clasificación recomendada
<a name="c_best-practices-sort-key"></a>

Amazon Redshift almacena los datos en el disco en un determinado orden en función de la clave de ordenación. El optimizador de consultas de Amazon Redshift utiliza la ordenación cuando determina cuáles son los planes óptimos de consulta. 

**nota**  
Cuando utiliza la optimización automática de tablas, no necesita elegir la clave de ordenación de la tabla. Para obtener más información, consulte [Optimización de tablas automática](t_Creating_tables.md).

A continuación, se indican algunas sugerencias para lograr el mejor enfoque posible:
+ Para que Amazon Redshift elija el orden adecuado, especifique `AUTO` en la clave de ordenación. 
+ Si los datos recientes se consultan con más frecuencia, especifique la columna de marca temporal como la columna inicial para la clave de ordenación. 

  Las consultas son más eficientes debido a que pueden omitir bloques enteros que se encuentran fuera del intervalo de tiempo.
+ Si utiliza filtros de igualdad o por rango con frecuencia en una columna, especifique esa columna como la clave de ordenación. 

   Amazon Redshift puede omitir la lectura de bloques completos de datos de esa columna. Puede realizar esta operación porque realiza un seguimiento de los valores de columna mínimos y máximos almacenados en cada bloque y puede omitir los bloques que no se aplican al rango de predicados.
+ Si combina tablas con frecuencia, especifique la columna de combinación como clave de ordenación y clave de distribución. 

  Esto permite que el optimizador de consultas seleccione una combinación de fusión y ordenación, en lugar de una combinación hash más lenta. Debido a que los datos ya están ordenados en la clave de combinación, el optimizador de consultas puede omitir la fase de ordenación de la combinación de fusión y ordenación.

# Elección de modos de distribución recomendados
<a name="c_best-practices-best-dist-key"></a>

Cuando ejecuta una consulta, el optimizador de consultas redistribuye las filas a los nodos de computación según se necesite para realizar combinaciones y agregaciones. El objetivo al seleccionar un estilo de distribución de tablas es reducir el impacto del paso de redistribución al localizar los datos en el lugar que deben estar antes de que se ejecute la consulta. 

**nota**  
Cuando utiliza la optimización automática de tablas, no necesita elegir el estilo de distribución de la tabla. Para obtener más información, consulte [Optimización de tablas automática](t_Creating_tables.md).

A continuación, se indican algunas sugerencias para lograr el mejor enfoque posible:

1. Distribuya la tabla de hechos y una tabla de dimensión en sus columnas comunes.

   Su tabla de hechos solo puede tener una clave de distribución. Ninguna de las tablas que se combinan con otra clave se ubica junto a la tabla de hechos. Seleccione una dimensión para colocar, según la frecuencia con que se combina y según el tamaño de las filas combinadas. Designe la clave principal de la tabla de dimensión y la clave externa correspondiente a la tabla de hechos como las claves DISTKEY. 

1. Seleccione la mayor dimensión según el tamaño del conjunto de datos filtrado. 

   Solo se deben distribuir las filas que se usan en la combinación; por lo tanto, considere el tamaño del conjunto de datos después del filtrado, no el tamaño de la tabla. 

1. Seleccione una columna que tenga una cardinalidad alta en el conjunto de resultados filtrado. 

   Por ejemplo, si distribuye una tabla de ventas en una columna de fecha, probablemente obtenga una distribución de fechas bastante uniforme, a menos que la mayoría de sus ventas se realicen por temporada. No obstante, si suele utilizar un predicado de rango restringido para filtrar un periodo de fechas limitado, la mayoría de las filas filtradas están en un conjunto limitado de secciones y la carga de trabajo de la consulta está descompensada. 

1. Cambie algunas tablas de dimensión para que utilicen la distribución ALL.

   Si no se puede colocar una tabla de dimensión junto con la tabla de hechos u otra tabla de combinación de importancia, puede mejorar el rendimiento de las consultas de forma significativa distribuyendo la tabla completa a todos los nodos. El uso de la distribución ALL multiplica los requisitos de espacio de almacenamiento y aumenta los tiempos de carga y las operaciones de mantenimiento, por lo que debe analizar todos los factores antes de seleccionar la distribución ALL.

Para que Amazon Redshift elija el estilo de distribución adecuado, especifique `AUTO` en el estilo de distribución. 

Para obtener más información acerca de la elección de estilos de distribución, consulte [Distribución de datos para la optimización de consultas](t_Distributing_data.md).

# Selección del comando COPY para las codificaciones de compresión
<a name="c_best-practices-use-auto-compression"></a>

Cuando crea una tabla, puede especificar codificaciones de compresión, pero en la mayoría de los casos la compresión automática produce mejores resultados.

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](r_CREATE_TABLE_NEW.md) y [ALTER TABLE](r_ALTER_TABLE.md).

El comando COPY analiza los datos y aplica las codificaciones de compresión en una tabla vacía de forma automática como parte de la operación de carga. 

La compresión automática equilibra el rendimiento general al elegir las codificaciones de compresión. Los exámenes de rango restringido podrían tener un rendimiento deficiente cuando las columnas de clave con ordenación se comprimen mucho más que otras columnas en la misma consulta. Como resultado la compresión automática elige una codificación de compresión menos eficiente para mantener equilibradas las columnas con clave de ordenación con las demás columnas.

Supongamos que la clave de ordenación de la tabla es una fecha o una marca temporal y que la tabla utiliza muchas columnas varchar grandes. En dicho caso es posible que el rendimiento sea mejor si no comprime la columna de clave de ordenación. Ejecute el comando [ANALYZE COMPRESSION](r_ANALYZE_COMPRESSION.md) en la tabla y, luego, utilice las codificaciones para crear una tabla nueva, pero deje la codificación de compresión para la clave de ordenación.

Existe un costo de rendimiento para la codificación de compresión automática, pero solo si la tabla está vacía y si no tiene una codificación de compresión. En el caso de las tablas con una vida útil corta o las tablas que crea con frecuencia, como las tablas provisionales, cargue la tabla una vez con la compresión automática o ejecute el comando ANALYZE COMPRESSION. Utilice estas codificaciones para crear nuevas tablas. Puede agregar las codificaciones a la instrucción CREATE TABLE o utilizar CREATE TABLE LIKE para crear una tabla nueva con la misma codificación. 

Para obtener más información, consulte [Carga de tablas con compresión automática](c_Loading_tables_auto_compress.md).

# Definición de restricciones de clave primaria y clave externa
<a name="c_best-practices-defining-constraints"></a>

Define las restricciones de clave principal y clave externa entre tablas siempre que corresponda. Aunque solo sean informativas, el optimizador de consultas utiliza esas restricciones para generar planes de consulta más eficientes.

No defina restricciones para la clave primaria ni la clave externa, a menos que la aplicación imponga dichas restricciones. Amazon Redshift no impone restricciones exclusivas, de clave primaria ni de clave externa. 

Consulte [Restricciones de tablas](t_Defining_constraints.md) para obtener más información sobre la manera en que Amazon Redshift utiliza las restricciones.

# Uso del menor tamaño posible de columna
<a name="c_best-practices-smallest-column-size"></a>

No se acostumbre a usar el mayor tamaño de columna por comodidad. 

En lugar de eso, considere los valores más grandes que vaya a almacenar en las columnas y dimensiónelos adecuadamente. Por ejemplo, una columna CHAR para almacenar abreviaturas de estados o territorios de EE. UU. usada por la oficina de correos solo necesita ser CHAR(2).

# Uso de tipos de datos de fecha/hora para columnas de fecha
<a name="c_best-practices-timestamp-date-columns"></a>

Amazon Redshift almacena datos DATE y TIMESTAMP de manera más eficiente que CHAR o VARCHAR, lo que da lugar a un mejor rendimiento en la consulta. Use el tipo de datos DATE o TIMESTAMP, según la resolución que necesite, en lugar de un tipo de carácter, al momento de almacenar información de fecha/hora. Para obtener más información, consulte [Tipos de fecha y hora](r_Datetime_types.md).