Uso de Spark optimizador basado en costes - 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.

Uso de Spark optimizador basado en costes

Spark la versión 2.09 y las posteriores pueden usar un optimizador basado en costos (CBO). La CBO selecciona el plan de ejecución más económico para una consulta basándose en varias estadísticas de tablas. La CBO intenta optimizar la ejecución de la consulta con respecto a la utilización de la CPU y las E/S, por lo que se recupera lo más rápido posible. Sin embargo, en la mayoría de los casos, las estadísticas de datos suelen estar ausentes, especialmente cuando la recopilación de estadísticas es incluso más costosa que el procesamiento de datos. Incluso si las estadísticas están disponibles, es probable que estén desactualizadas. Las siguientes son las mejores prácticas para utilizar la CBO:

  • Recopile estadísticas sobre todas las columnas que se utilizan en las operaciones, como las uniones, los filtros y las compras de grupos. Esto ayuda al optimizador a tomar mejores decisiones. Se utiliza ANALYZE TABLE para recopilar estadísticas.

  • Aumente la frecuencia de la recopilación de estadísticas si los datos cambian rápidamente. Las estadísticas desactualizadas pueden hacer que los planes no estén optimizados.

  • Comience con los parámetros de la CBO predeterminados y ajústelos solo si es necesario. Las optimizaciones agresivas pueden aumentar los tiempos de ejecución.

  • Compruebe si la CBO elige los planes óptimos forzando el plan optimizado y comparando el rendimiento. Habilite el registro del optimizador para comparar los planes.

  • Para obtener mejores optimizaciones, utilice la CBO en combinación con sugerencias de particionamiento, agrupamiento y sesgo de datos. La creación de particiones puede ayudar a la CBO a escalar.

  • Para detectar las regresiones del plan de forma temprana, supervise de forma continua el rendimiento de las consultas después de activar la CBO.