Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Factores de rendimiento de consultas para Amazon Redshift
Hay una serie de factores que pueden afectar al rendimiento de las consultas. Los siguientes aspectos de las operaciones de sus datos, clústeres y bases de datos influyen en la rapidez con la que se procesan las consultas:
-
-
Claves de clasificación(Asesor de Amazon Redshift)
-
Compresión de datos(automatizado)
-
Distribución de datos(automatizado)
-
Mantenimiento de tablas(automatizado)
-
Propiedades de la tabla
Las tablas de Amazon Redshift son las unidades fundamentales para almacenar datos en Amazon Redshift y cada tabla tiene un conjunto de propiedades que determinan su comportamiento y accesibilidad. Estas propiedades incluyen la clasificación, el estilo de distribución, la codificación por compresión y muchas otras. Comprender estas propiedades es fundamental para optimizar el rendimiento, la seguridad y la rentabilidad de las tablas de Amazon Redshift.
Claves de clasificación
Amazon Redshift almacena los datos en el disco ordenados según las claves de clasificación de la tabla. El optimizador de consultas y el procesador de consultas utilizan la información sobre la ubicación de los datos dentro de un nodo de cómputo para reducir la cantidad de bloques que deben escanearse. Esto mejora considerablemente la velocidad de las consultas al reducir la cantidad de datos que se deben procesar. Se recomienda utilizar claves de clasificación para facilitar los filtros de la WHERE
cláusula. Para obtener más información, consulte Trabajar con claves de clasificación en la documentación de Amazon Redshift.
Compresión de datos
La compresión de datos reduce los requisitos de almacenamiento, lo que reduce las E/S del disco y mejora el rendimiento de las consultas. Al ejecutar una consulta, los datos comprimidos se leen en la memoria y, después, se descomprimen cuando se ejecuta la consulta. Al cargar menos datos en la memoria, Amazon Redshift puede asignar más memoria al análisis de los datos. Como el almacenamiento en columnas almacena datos similares de forma secuencial, Amazon Redshift puede aplicar codificaciones de compresión adaptativas vinculadas específicamente a los tipos de datos en columnas. La mejor forma de habilitar la compresión de datos en las columnas de la tabla es utilizar la AUTO
opción de Amazon Redshift para aplicar codificaciones de compresión óptimas al cargar la tabla con datos. Para obtener más información sobre el uso de la compresión automática de datos, consulte Carga de tablas con compresión automática en la documentación de Amazon Redshift.
Distribución de datos
Amazon Redshift almacena los datos en los nodos de procesamiento según el estilo de distribución de una tabla. Cuando ejecuta una consulta, el optimizador de consultas redistribuye los datos a los nodos informáticos según se necesite para realizar uniones y agregaciones. Elegir el estilo de distribución correcto para una tabla ayuda a reducir el impacto del paso de redistribución al localizar los datos en el lugar que deben estar, antes de que se realicen las combinaciones. Le recomendamos que utilice las claves de distribución para facilitar las uniones más comunes. Para obtener más información, consulte Trabajar con estilos de distribución de datos en la documentación de Amazon Redshift.
Mantenimiento de tablas
Si bien Amazon Redshift ofrece un rendimiento líder del sector desde el primer momento para la mayoría de las cargas de trabajo, mantener el buen funcionamiento de los clústeres de Amazon Redshift requiere mantenimiento. Al actualizar y eliminar datos, se crean filas inactivas que hay que eliminar, e incluso hay que recurrir a las tablas que solo se adjuntan si el orden de incorporación no es coherente con la clave de clasificación.
Vacuum
El proceso de aspiración en Amazon Redshift es esencial para el buen estado y el mantenimiento del clúster de Amazon Redshift. También afecta al rendimiento de las consultas. Como tanto las eliminaciones como las actualizaciones marcan los datos antiguos pero no los eliminan realmente, debe utilizar la aspiradora para recuperar el espacio en disco que ocupaban las filas de la tabla que las operaciones anteriores marcaron para su eliminación. UPDATE
DELETE
Amazon Redshift puede ordenar y realizar VACUUM DELETE
operaciones automáticamente en las tablas en segundo plano.
Para limpiar las tablas tras una carga o una serie de actualizaciones incrementales, también puede ejecutar el comando VACUUM
, ya sea en la base de datos completa o en tablas individuales. Si las tablas tienen claves de clasificación y las cargas de las tablas no están optimizadas para ordenarlas a medida que se insertan, debe utilizar el vacío para clasificar los datos (lo que puede ser crucial para el rendimiento). Para obtener más información, consulte Aspiración de tablas en la documentación de Amazon Redshift.
Análisis
La ANALYZE
operación actualiza los metadatos estadísticos de las tablas de una base de datos de Amazon Redshift. Mantener las estadísticas actualizadas mejora el rendimiento de las consultas, ya que permite que el planificador de consultas elija los planes óptimos. Amazon Redshift monitorea constantemente la base de datos y, de forma automática, realiza operaciones de análisis en segundo plano. Para minimizar el impacto en el rendimiento del sistema, la ANALYZE
operación se ejecuta automáticamente durante los períodos en los que las cargas de trabajo son escasas. Si decide ejecutarlo de forma explícitaANALYZE
, haga lo siguiente:
-
Ejecute el
ANALYZE
comando antes de ejecutar las consultas. -
Ejecute el
ANALYZE
comando en la base de datos de forma rutinaria al final de cada ciclo normal de carga o actualización. -
Ejecute el
ANALYZE
comando en las tablas nuevas que cree y en las tablas o columnas existentes que sufran cambios significativos. -
Considere la posibilidad de ejecutar
ANALYZE
las operaciones con distintos programas para distintos tipos de tablas y columnas, en función de su uso en las consultas y de su propensión a cambiar. -
Para ahorrar tiempo y recursos del clúster, utilice la
PREDICATE COLUMNS
cláusula al ejecutar elANALYZE
comando.
Configuración del clúster
Un clúster es un conjunto de nodos que se encargan del almacenamiento y el procesamiento reales de los datos. Es fundamental configurar el clúster de Amazon Redshift de la manera correcta si quiere lograr lo siguiente:
-
Alta escalabilidad y simultaneidad
-
Uso eficiente de Amazon Redshift
-
Mejor rendimiento
-
Menor costo
Tipo de nodo
Un clúster de Amazon Redshift puede utilizar uno de varios tipos de nodos (RA3 DC2, y DS2). Cada tipo de nodo ofrece diferentes tamaños y límites para ayudarlo a escalar su clúster de manera adecuada. El tamaño del nodo determina la capacidad de almacenamiento, la memoria, la CPU y el precio de cada nodo del clúster. La optimización de costos y rendimiento comienza con la elección del tipo y tamaño de nodo correctos. Para obtener más información sobre los tipos de nodos, consulte Descripción general de los clústeres de Amazon Redshift en la documentación de Amazon Redshift.
Tamaño de los nodos, cantidad de nodos y segmentos
Un nodo de computación está particionado en sectores. Más nodos significa más procesadores y segmentos, lo que permite que las consultas se procesen más rápido al ejecutar partes de la consulta simultáneamente en los segmentos. Sin embargo, un mayor número de nodos también implica un mayor gasto. Esto significa que debe encontrar el equilibrio entre coste y rendimiento adecuado para su sistema. Para obtener más información sobre la arquitectura de clústeres de Amazon Redshift, consulte Arquitectura del sistema de almacenamiento de datos en la documentación de Amazon Redshift.
Administración de la carga de trabajo
La administración de cargas de trabajo de Amazon Redshift (WLM) permite a los usuarios administrar de forma flexible las colas de carga de trabajo con prioridades, de modo que las consultas breves y de ejecución rápida no se queden atrapadas en las colas detrás de las consultas de larga duración. El WLM automático utiliza algoritmos de aprendizaje automático (ML) para perfilar las consultas y colocarlas en la cola adecuada con los recursos adecuados, a la vez que gestiona la simultaneidad de las consultas y la asignación de memoria. Para obtener más información sobre WLM, consulte Implementación de la administración de cargas de trabajo en la documentación de Amazon Redshift.
Aceleración de consultas cortas
La aceleración de consultas cortas (SQA) prioriza las consultas de corta duración antes que las consultas de larga duración. SQA ejecuta las consultas en un espacio dedicado para que las consultas SQA no se vean obligadas a esperar en colas tras consultas más largas. SQA solamente da prioridad a las consultas de corta ejecución y a las consultas que están en una cola definida por el usuario. Si utilizas SQA, las consultas de corta duración comienzan a ejecutarse más rápido y puedes ver los resultados antes. Si habilita SQA, puede reducir o eliminar las colas de WLM que se dedican a consultas de corta duración. Además, las consultas de larga duración no necesitan competir por los espacios de una cola de WLM. Esto significa que puede configurar las colas de WLM para que utilicen menos ranuras de consulta. Si utiliza una menor simultaneidad, el rendimiento de las consultas aumenta y el rendimiento general del sistema mejora para la mayoría de las cargas de trabajo. Para obtener más información sobre SQA, consulte Cómo trabajar con la aceleración de consultas cortas en la documentación de Amazon Redshift.
Consulta SQL
Una consulta de base de datos es una solicitud de datos de una base de datos. La solicitud debe venir en un clúster de Amazon Redshift con SQL. Amazon Redshift admite herramientas de cliente de SQL que se conectan a través de Java Database Connectivity (JDBC) y Open Database Connectivity (ODBC). Puede utilizar la mayoría de las herramientas de cliente SQL compatibles con los controladores JDBC u ODBC.
Estructura de consultas
La forma en que se escribe la consulta afecta en gran medida a su rendimiento. Le recomendamos que escriba consultas para procesar y devolver la menor cantidad de datos necesaria para satisfacer sus necesidades. Para obtener más información sobre cómo estructurar las consultas, consulte la sección Prácticas recomendadas para diseñar consultas de Amazon Redshift de esta guía.
Compilación de código
Amazon Redshift genera y compila código para cada plan de ejecución de consultas. El código compilado se ejecuta más rápido porque elimina la sobrecarga de tener que recurrir a un intérprete. Por lo general, la primera vez que se genera y compila el código tiene algunos gastos generales. Por este motivo, el rendimiento de la primera vez que ejecuta una consulta puede ser confuso. Los gastos generales pueden ser especialmente notables cuando se ejecutan consultas puntuales. Se recomienda ejecutar la consulta por segunda vez para determinar su rendimiento normal.
Amazon Redshift utiliza un servicio de compilación sin servidor para escalar las compilaciones de consultas más allá de los recursos informáticos de un clúster de Amazon Redshift. Los segmentos de código compilado se almacenan en caché de manera local en el clúster y en una caché virtualmente ilimitada. Esta caché se conserva después del reinicio del clúster. Las invocaciones posteriores de la misma consulta se ejecutan más rápido porque pueden saltarse la fase de compilación. La caché no es compatible con todas las versiones de Amazon Redshift, por lo que el código se vuelve a compilar cuando se ejecutan consultas después de una actualización de la versión. Mediante el uso de un servicio de compilación escalable, Amazon Redshift puede compilar código en paralelo para proporcionar un rendimiento constante y rápido. La magnitud de la aceleración de la carga de trabajo depende de la complejidad y la simultaneidad de las consultas.