Recomendaciones de optimización en Azure Databricks
Azure Databricks ofrece muchas optimizaciones que admiten una variedad de cargas de trabajo en el almacén de lago, que van desde el procesamiento de extracción, transformación y carga de datos a gran escala hasta consultas ad hoc interactivas. Muchas de estas optimizaciones tienen lugar automáticamente. Sus ventajas se obtienen simplemente al usar Azure Databricks. Además, la mayoría de las características de Databricks Runtime requieren Delta Lake, el formato predeterminado que se usa para crear tablas en Azure Databricks.
Azure Databricks configura los valores predeterminados que optimizan la mayoría de las cargas de trabajo. Pero, en algunos casos, cambiar las opciones de configuración mejora el rendimiento.
Mejoras de rendimiento de Databricks Runtime
Nota:
Use la versión más reciente de Databricks Runtime para aprovechar las mejoras de rendimiento más recientes. Todos los comportamientos documentados aquí están habilitados de manera predeterminada en Databricks Runtime 10.4 LTS y versiones posteriores.
- El almacenamiento en caché de disco acelera las lecturas repetidas en archivos de datos de Parquet mediante la carga de datos en volúmenes de disco conectados a clústeres de proceso.
- La eliminación dinámica de archivos mejora el rendimiento de las consultas al omitir los directorios que no contienen archivos de datos que coinciden con predicados de consulta.
- La combinación de orden aleatorio bajo reduce el número de archivos de datos que reescriben las operaciones
MERGE
y reduce la necesidad de volver a calcular los clústeresZORDER
. - Apache Spark 3.0 introdujo la ejecución de consultas adaptables, que proporciona un rendimiento mejorado para muchas operaciones.
Recomendaciones de Databricks para mejorar el rendimiento
- Puede clonar tablas en Azure Databricks para hacer copias profundas o superficiales de los conjuntos de datos de origen.
- El optimizador basado en costos acelera el rendimiento de las consultas al aprovechar las estadísticas de las tablas.
- Puede usar Spark SQL para interactuar con cadenas JSON sin analizar cadenas.
- Las funciones de orden superior ofrecen un rendimiento integrado y optimizado para muchas operaciones que no tienen operadores comunes de Spark. Las funciones de orden superior brindan una ventaja de rendimiento frente a las funciones definidas por el usuario.
- Azure Databricks proporciona una serie de operadores integrados y sintaxis especial para trabajar con tipos de datos complejos, incluidas matrices, estructuras y cadenas JSON.
- Puede ajustar manualmente la configuración de las combinaciones de intervalo. Consulte Optimización de la combinación de intervalos.
Comportamientos opcionales
- Azure Databricks ofrece una garantía de aislamiento serializable de escritura de manera predeterminada; cambiar el nivel de aislamiento a serializable puede reducir el rendimiento de las operaciones simultáneas, pero puede ser necesario cuando se requiera la serialización de lectura.
- Puede usar índices de filtro de Bloom para reducir la probabilidad de examinar archivos de datos que no contengan registros que coincidan con una condición determinada.