Procedimientos recomendados de configuración de proceso

En este artículo se describen las recomendaciones para establecer configuraciones de proceso opcionales. Para reducir las decisiones de configuración, Azure Databricks recomienda aprovechar las directivas de proceso y proceso sin servidor.

  • El proceso sin servidor no requiere configurar las opciones de proceso. El proceso sin servidor siempre está disponible y se escala según la carga de trabajo. Vea Tipos de proceso.

  • Las directivas de proceso permiten crear un proceso preconfigurado diseñado para casos de uso específicos, como proceso personal, proceso compartido, usuarios avanzados y trabajos. Si no tiene acceso a las directivas, póngase en contacto con el administrador del área de trabajo. Vea Directivas predeterminadas y familias de directivas.

Si decide crear un proceso con sus propias configuraciones, en las secciones siguientes se proporcionan recomendaciones para casos de uso típicos.

Nota:

En este artículo se da por supuesto que tiene la creación de clústeres sin restricciones. Los administradores del área de trabajo solo deben conceder este privilegio a los usuarios avanzados.

Consideraciones de dimensionamiento de procesos

Las personas suelen pensar en el tamaño de proceso en términos del número de roles de trabajo, pero hay otros factores importantes que se deben tener en cuenta:

  • Totalidad de núcleos de ejecutores (proceso): número total de núcleos en todos los ejecutores. Esto determina el paralelismo máximo de un proceso.
  • Memoria total de los ejecutores: cantidad total de RAM en todos los ejecutores. Determina cuántos datos se pueden almacenar en la memoria antes de volcarlos en el disco.
  • Almacenamiento local del ejecutor: el tipo y la cantidad de almacenamiento en el disco local. El disco local se usa principalmente en el caso de desbordamientos durante los ordenes aleatorios y el almacenamiento en caché.

Entre las consideraciones adicionales se incluyen el tamaño y el tipo de instancia de trabajo, que también influyen en los factores anteriores. Al dimensionar procesos, tenga en cuenta:

  • ¿Cuántos datos consumirá la carga de trabajo?
  • ¿Cuál es la complejidad computacional de la carga de trabajo?
  • ¿Desde dónde se leen los datos?
  • ¿Cómo se realiza la partición de los datos en el almacenamiento externo?
  • ¿Cuánto paralelismo se necesita?

Al responder a estas preguntas, podrá determinar la configuración de procesos óptima en función de las cargas de trabajo.

Existe una acción de equilibrio entre la cifra de trabajos y el tamaño de los tipos de instancia de trabajo. La configuración del proceso con dos trabajos, cada uno con 40 núcleos y 100 GB de RAM, tiene el mismo proceso y memoria que la configuración del proceso con 10 núcleos y 25 GB de RAM.

Ejemplos de dimensionamiento de procesos

Los siguientes ejemplos muestran recomendaciones para los procesos en función de tipos específicos de cargas de trabajo. Los ejemplos también incluyen opciones de configuración que se deben evitar y las razones por las cuales esas no son apropiadas para las cargas de trabajo.

Análisis de datos

Los analistas de datos suelen realizar el procesamiento que requiere datos de varias particiones, lo que provoca muchas operaciones de orden aleatorio. El proceso con un número menor de nodos puede reducir la red y la E/S de disco necesarias para realizar estos ordenes aleatorios.

Si solo escribe SQL, la mejor opción para el análisis de datos será un almacenamiento SQL sin servidor.

Nota:

Si el área de trabajo está habilitada para la versión preliminar pública de proceso sin servidor, puede usar el proceso sin servidor para ejecutar análisis en Python o SQL. Vea Proceso sin servidor para cuadernos.

Si debe configurar un nuevo proceso, es probable que un proceso de un solo nodo con un tipo de máquina virtual grande sea la mejor opción, especialmente para un único analista.

Es probable que las cargas de trabajo analíticas requieran leer los mismos datos repetidamente, por lo que los tipos de nodo recomendados están optimizados para el almacenamiento con la memoria caché de disco habilitada.

Entre las características adicionales recomendadas para las cargas de trabajo analíticas se incluyen:

  • Habilite la terminación automática para asegurarse de que el proceso finaliza después de un período de inactividad.
  • Considerar la posibilidad de habilitar el escalado automático en función de la carga de trabajo típica del analista.
  • Considere la posibilidad de usar grupos, lo que permitirá restringir los procesos a los tipos de instancia aprobados previamente y garantizar configuraciones de proceso coherentes.

ETL por lotes básica

Nota:

Si el área de trabajo está habilitada para el proceso sin servidor para flujos de trabajo (versión preliminar pública), puede usar el proceso sin servidor para ejecutar los trabajos. Vea Proceso sin servidor para cuadernos.

Los trabajos ETL de lotes simples que no requieren transformaciones amplias, como combinaciones o agregaciones, suelen beneficiarse de los tipos de trabajo optimizados para proceso.

Los trabajos optimizados para proceso tienen requisitos más bajos para la memoria y el almacenamiento y pueden dar lugar a ahorros de costos en otros tipos de trabajo.

ETL de lote complejo

Nota:

Si el área de trabajo está habilitada para el proceso sin servidor para flujos de trabajo (versión preliminar pública), puede usar el proceso sin servidor para ejecutar los trabajos. Vea Proceso sin servidor para cuadernos.

Para un trabajo complejo de ETL, como uno que requiere uniones y combinaciones en varias tablas, Databricks recomienda reducir el número de trabajadores para reducir la cantidad de datos aleatorios.

Las transformaciones complejas pueden ser de proceso intensivo. Si observa un desbordamiento significativo en el disco o errores de OOM, debe agregar nodos adicionales.

Databricks recomienda tipos de trabajo optimizados para proceso. Los trabajos optimizados para proceso tienen requisitos más bajos para la memoria y el almacenamiento y pueden dar lugar a ahorros de costos en otros tipos de trabajo. Opcionalmente, use grupos para reducir los tiempos de inicio de proceso y reducir el tiempo de ejecución total al ejecutar canalizaciones de trabajo.

Entrenamiento de modelos de Machine Learning

Databricks recomienda un proceso de nodo único con un tipo de nodo grande para la experimentación inicial con modelos de aprendizaje automático de entrenamiento. Tener menos nodos reduce el impacto de los orden aleatorios.

Agregar más trabajadores puede ayudar con la estabilidad, pero debe evitar agregar demasiados trabajos debido a la sobrecarga de los datos aleatorios.

Los tipos de trabajo recomendados están optimizados para el almacenamiento en caché de disco habilitado para tener en cuenta las lecturas repetidas de los mismos datos y para habilitar el almacenamiento en caché de los datos de entrenamiento. Si las opciones de proceso y almacenamiento proporcionadas por los nodos optimizados para almacenamiento no son suficientes, considere la posibilidad de usar nodos optimizados para GPU. Una posible desventaja es la falta de compatibilidad con el almacenamiento en caché de disco con estos nodos.

Entre las características adicionales recomendadas para las cargas de trabajo de aprendizaje automático se incluyen:

  • Habilite la terminación automática para asegurarse de que el proceso finaliza después de un período de inactividad.
  • Utilice grupos, que permitirán restringir los procesos a los tipos de instancia aprobados previamente y garantizar configuraciones de proceso coherentes.