Prácticas recomendadas para usar Amazon Redshift Spectrum - AWS Guía prescriptiva

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.

Prácticas recomendadas para usar Amazon Redshift Spectrum

En esta sección se proporciona información general sobre las prácticas recomendadas para utilizar Amazon Redshift Spectrum. Le recomendamos que siga estas prácticas recomendadas para lograr un rendimiento óptimo al utilizar Redshift Spectrum:

  • Tenga en cuenta que los tipos de archivos tienen una influencia importante en el rendimiento de las consultas de Redshift Spectrum. Para mejorar el rendimiento, utilice archivos codificados en columnas como ORC o Parquet y utilice el formato CSV únicamente para las tablas de dimensiones muy pequeñas.

  • Utilice las particiones basadas en prefijos para aprovechar la poda de particiones. Esto significa que debe usar filtros que estén vinculados mediante claves a las particiones del lago de datos.

  • Redshift Spectrum se escala automáticamente para procesar solicitudes grandes, así que debería hacer todo lo posible en Redshift Spectrum (por ejemplo, inserir predicados).

  • Preste atención a los archivos de partición en las columnas que se filtran frecuentemente. Si los datos se dividen en una o más columnas filtradas, Redshift Spectrum puede aprovechar la poda de particiones y omitir los análisis en busca de particiones y archivos innecesarios. Una práctica habitual es particionar datos según el tiempo.

  • Puede comprobar la eficacia de sus particiones y la eficiencia de su consulta de Redshift Spectrum mediante la siguiente consulta.

    Select query, segment, max(assigned_partitions) as total_partitions, max(qualified_partitions) as qualified_partitions From svl_s3partition Where query=pg_last_query_id() Group by 1,2;

    En la consulta anterior se muestra lo siguiente:

    • total_partitions: número de particiones que ha reconocido el AWS Glue Data Catalog

    • qualified_partitions: número de prefijos en Amazon Simple Storage Service (Amazon S3) a los que se accede para la consulta de Redshift Spectrum

  • También puede comprobar la tabla del sistema SVL_S3QUERY_SUMMARY para obtener información sobre la eficacia de sus particiones y la eficiencia de la consulta de Redshift Spectrum. Para ello, utilice la siguiente instrucción.

    Select * From svl_s3query_summary Where query=pg_last_query_id();

    En la consulta anterior se devuelve incluso más información, incluidos los valores is_partitioned, s3_scanned_rows/bytes y s3_returned_rows/bytes, además de archivos que indican la eficacia de la poda de particiones.

Inserción de predicados en Redshift Spectrum

El uso de la inserción de predicados evita consumir recursos del clúster de Amazon Redshift. Puede inserir muchas operaciones de SQL a la capa de Redshift Spectrum. Recomendamos que aproveche esta opción siempre que sea posible.

Tenga en cuenta lo siguiente:

  • Dentro de la capa de Redshift Spectrum puede evaluar algunos tipos de operaciones de SQL completamente, incluidas las siguientes:

    • Cláusulas GROUP BY

    • Condiciones de comparación y búsqueda de coincidencias de patrones (por ejemplo, LIKE)

    • Funciones de agrupación (por ejemplo, COUNT, SUM, AVG, MIN y MAX)

    • regex_replace, to_upper, date_trunc y otras funciones

  • Algunas operaciones, como DISTINCT y ORDER BY, no se pueden enviar a la capa de Redshift Spectrum. Realice ORDER BY solo en el nivel superior de la consulta si es posible, ya que la clasificación se realiza en el nodo principal.

  • Examine el plan EXPLAIN de la consulta para comprobar si la inserción de predicados es efectiva. Para encontrar partes de Redshift Spectrum en un comando EXPLAIN, busque estos pasos:

    • S3 Seq Scan

    • S3 HashAggregate

    • S3 Query Scan

    • Seq Scan PartitionInfo

    • Partition Loop

  • Utilice el menor número de columnas en la consulta. Redshift Spectrum puede eliminar las columnas para analizar si los datos están en formato Parquet u ORC.

  • Haga un uso extensivo de las particiones para el procesamiento en paralelo y la eliminación de particiones, e intente que el tamaño de los archivos sea de al menos 64 MB si es posible.

  • Establezca TABLE PROPERTIES 'numRows'='nnn' si usa CREATE EXTERNAL TABLE o ALTER TABLE. Amazon Redshift no analiza las tablas externas para generar las estadísticas de las tablas que el optimizador de consultas emplea a la hora de crear un plan de consulta. Si no se establecen estas estadísticas, Amazon Redshift supone que las tablas externas son las más grandes, mientras que las tablas locales son las más pequeñas.

Consejos de ajuste de consultas para Redshift Spectrum

Le recomendamos que tenga en cuenta lo siguiente para ajustar las consultas:

  • El número de nodos de Redshift Spectrum que el clúster de Amazon Redshift puede utilizar para una consulta depende del número de sectores del clúster.

  • Aumentar el tamaño el clúster puede beneficiar a los perfiles de computación locales, los perfiles de almacenamiento y las capacidades de consulta de la consulta del lago de datos de Amazon S3.

  • El planificador de consultas de Amazon Redshift envía predicados y agrupaciones a la capa de consultas de Redshift Spectrum siempre que sea posible.

  • Cuando se devuelven grandes cantidades de datos de Amazon S3, el procesamiento se ve limitado por los recursos del clúster.

  • Como Redshift Spectrum se escala automáticamente para procesar solicitudes de gran tamaño, su rendimiento general mejora siempre que pueda transferir el procesamiento a la capa de Redshift Spectrum.