Introducción a la orquestación en Databricks
Azure Databricks proporciona una experiencia integrada para orquestar cargas de trabajo de procesamiento de datos, de modo que pueda coordinar y ejecutar varias tareas como parte de un flujo de trabajo mayor. Puede simplificar, optimizar y programar la ejecución de tareas frecuentes y repetibles, lo que facilita la administración de flujos de trabajo complejos.
En este artículo se presentan conceptos y opciones relacionados con la administración de cargas de trabajo de producción mediante trabajos de Databricks.
¿Qué son los trabajos?
En Databricks, se usa un trabajo para programar y organizar tareas en Databricks en un flujo de trabajo. Los flujos de trabajo comunes de procesamiento de datos incluyen flujos de trabajo de ETL, ejecución de cuadernos y flujos de trabajo de aprendizaje automático (ML), así como la integración con sistemas externos, como dbt y Azure Data Factory (ADF).
Los trabajos constan de una o varias tareas y admiten lógica de flujo de control personalizado, como bifurcación (instrucciones if / else) o bucles (para cada instrucciones) mediante una interfaz de usuario de creación visual. Las tareas pueden cargar o transformar datos en un flujo de trabajo de ETL, o bien crear, entrenar e implementar modelos de ML de una manera controlada y repetible como parte de las canalizaciones de aprendizaje automático.
Ejemplo: Procesamiento diario de datos y trabajo de validación
En el ejemplo siguiente se muestra un trabajo en Azure Databricks.
Este trabajo de ejemplo tiene las siguientes características:
- La primera tarea ingiere datos de ingresos.
- La segunda tarea es una comprobación if /else de valores NULL.
- Si no es así, se ejecuta una tarea de transformación.
- De lo contrario, ejecuta una tarea de cuaderno con una validación de calidad de datos.
- Está programado para ejecutarse todos los días a las 11:29 h.
Para obtener una introducción rápida a la creación de su propio trabajo, consulte Creación del primer flujo de trabajo con un trabajo de Azure Databricks.
Casos de uso comunes
Desde los principios fundamentales de ingeniería de datos hasta el aprendizaje automático avanzado y la integración sin problemas de herramientas, estos casos de uso comunes muestran la amplitud de las funcionalidades que impulsan el análisis moderno, la automatización de flujos de trabajo y la escalabilidad de la infraestructura.
| canalizaciones de ingeniería de datos | ETL (extracción, transformación, carga): Automatizar la extracción de datos de varios orígenes, transformar los datos en un formato adecuado y cargarlos en un almacén de datos o lago de datos. Consulte Ejecución de la primera carga de trabajo de ETL en Azure Databricks
Migración de datos: mover datos de un sistema a otro.
Procesamiento continuo de datos: use Trabajos para tareas de procesamiento de datos continuos, como transmitir datos de orígenes como Kafka y escribirlos en tablas Delta. | | Aprendizaje automático y ciencia de datos | Entrenamiento del modelo: programar y ejecutar trabajos de entrenamiento de modelos de Machine Learning para asegurarse de que los modelos se entrenan en los datos más recientes.
Inferencia por lotes: Automatice el proceso de realizar trabajos de inferencia por lotes para generar predicciones a partir de modelos entrenados.
Ajuste de hiperparámetros: orquesta los trabajos de ajuste de hiperparámetros para optimizar los modelos de aprendizaje automático. | | Análisis e informes | Consultas programadas: ejecute consultas SQL en un trabajo según una programación para generar informes o actualizar paneles.
Agregación de datos: realice tareas regulares de agregación de datos para preparar los datos para el análisis. | | Automatización de tareas | flujos de trabajo de varias tareas: cree flujos de trabajo complejos que impliquen varias tareas, como ejecutar una serie de cuadernos, archivos JAR, consultas SQL o canalizaciones de Delta Live Tables.
Lógica condicional: use lógica condicional para controlar el flujo de tareas en función del éxito o error de las tareas anteriores. | | Integración con otras herramientas | Airflow y Azure Data Factory (ADF): desencadenamiento de trabajos de Azure Databricks mediante herramientas de orquestación externas como Apache Airflow y Azure Data Factory, lo que permite flujos de trabajo más complejos e integrados.
Notificaciones y supervisión: configura notificaciones y supervisa los resultados de las ejecuciones de trabajos mediante la interfaz de usuario, la CLI o la API de Azure Databricks, o mediante integraciones con herramientas como Slack y webhooks. | | Infraestructura como código (IaC) | Conjuntos de recursos de Databricks: administrar trabajos y otros recursos como código para facilitar el control de versiones, la revisión de código y las prácticas de CI/CD (integración continua/implementación continua). |
Conceptos de orquestación
Hay tres conceptos principales al usar la orquestación en Azure Databricks: trabajos, tareas y desencadenadores.
Trabajo - Un trabajo es el recurso principal para coordinar, programar y ejecutar tus operaciones. Los trabajos pueden variar en complejidad desde una sola tarea que ejecuta un cuaderno de Azure Databricks hasta cientos de tareas con lógica condicional y dependencias. Las tareas de un trabajo se representan visualmente mediante un grafo Acíclico dirigido (DAG). Puede especificar propiedades para el trabajo, entre las que se incluyen:
- Desencadenador: define cuándo ejecutar el trabajo.
- Parámetros: parámetros en tiempo de ejecución que se insertan automáticamente en las tareas del trabajo.
- Notificaciones: correos electrónicos o webhooks que se enviarán cuando un trabajo falle o demore demasiado.
- Git: configuración de control de código fuente para las tareas de trabajo.
tarea: una tarea es una unidad de trabajo específica dentro de un trabajo. Cada tarea puede realizar una variedad de operaciones, entre las que se incluyen:
- Una tarea de cuaderno ejecuta un cuaderno de Databricks. Especifique la ruta de acceso al cuaderno y los parámetros que requiera.
- Una tarea de canalización ejecuta una canalización. Puede especificar una canalización de Delta Live Tables existente, como una vista materializada o una tabla de streaming.
- Una tarea de script de Python ejecuta un archivo de Python. Proporcione la ruta de acceso al archivo y los parámetros necesarios.
Hay muchos tipos de tareas. Para obtener una lista completa, consulte Tipos de tareas. Las tareas pueden tener dependencias en otras tareas y ejecutar condicionalmente otras tareas, lo que le permite crear flujos de trabajo complejos con lógica condicional y dependencias.
Activador: un activador es un mecanismo que inicia la ejecución de un trabajo en función de condiciones o eventos específicos. Un desencadenador puede basarse en el tiempo, como ejecutar un trabajo en una hora programada (por ejemplo, cada día a las 2:00) o en función de eventos, como ejecutar un trabajo cuando llegan nuevos datos al almacenamiento en la nube.
Supervisión y observabilidad
Los trabajos proporcionan compatibilidad integrada para la supervisión y la observabilidad. En los temas siguientes se proporciona información general sobre este soporte técnico. Para obtener más información sobre la supervisión de trabajos y orquestación, consulte Supervisión y observabilidad de trabajos de Databricks.
Supervisión y observabilidad del trabajo en la interfaz de usuario: en la interfaz de usuario de Azure Databricks puede ver trabajos, incluidos detalles como el propietario del trabajo y el resultado de la última ejecución y filtrar por propiedades de trabajo. Puede ver un historial de ejecuciones de trabajos y obtener información detallada sobre cada tarea del trabajo.
Estado y métricas de ejecución del trabajo: Databricks informa sobre el éxito de la ejecución del trabajo, y registra además los logs y las métricas de cada tarea dentro de una ejecución de trabajo para diagnosticar problemas y comprender el rendimiento.
Notificaciones y alertas: puede configurar notificaciones para eventos de trabajo a través de correo electrónico, Slack, webhooks personalizados y un host de otras opciones.
consultas personalizadas a través de tablas del sistema: Azure Databricks proporciona tablas del sistema que registran las ejecuciones de trabajos y tareas a lo largo de la cuenta. Puede usar estas tablas para consultar y analizar el rendimiento y los costos del trabajo. Puede crear paneles para visualizar las métricas y tendencias del trabajo, para ayudar a supervisar el estado y el rendimiento de los flujos de trabajo.
Limitaciones
Existen las siguientes limitaciones:
- Un área de trabajo está limitada a 2000 ejecuciones de tareas simultáneas. Se devuelve una respuesta
429 Too Many Requests
cuando se solicita una ejecución que no se puede iniciar inmediatamente. - El número de trabajos que puede crear un área de trabajo en una hora está limitado a 10000 (incluye "envío de ejecuciones"). Este límite también afecta a los trabajos creados por los flujos de trabajo de la API REST y del cuaderno.
- Un área de trabajo puede contener hasta 12 000 trabajos guardados.
- Un trabajo puede contener hasta 100 tareas.
¿Puedo administrar flujos de trabajo mediante programación?
Databricks tiene herramientas y API que permiten programar y orquestar los flujos de trabajo mediante programación, incluidos los siguientes:
- CLI de Databricks
- Conjuntos de recursos de Databricks
- Extensión de Databricks para Visual Studio Code
- SDK de Databricks
- API de REST de trabajos
Para obtener ejemplos de uso de herramientas y API para crear y administrar trabajos, consulte Automatización de la creación y administración de trabajos. Para obtener documentación sobre todas las herramientas de desarrollo disponibles, consulte Herramientas de desarrollo local.
Las herramientas externas usan las api y herramientas de Databricks para programar flujos de trabajo mediante programación. Puede programar los trabajos mediante herramientas como Azure Data Factory o Apache AirFlow.
Orquestación de flujos de trabajo con Apache AirFlow
Puede usar Apache Airflow para administrar y programar los flujos de trabajo de datos. Con Airflow, define el flujo de trabajo en un archivo de Python y Airflow administra la programación y la ejecución del flujo de trabajo. Consulte Orquestación de trabajos de Azure Databricks con Apache Airflow.
Orquestación de flujos de trabajo con Azure Data Factory
Azure Data Factory (ADF) es un servicio de integración de datos en la nube que permite componer servicios de almacenamiento, traslado y procesamiento de datos en canalizaciones de datos automatizadas. Puede usar ADF para organizar un trabajo de Azure Databricks como parte de una canalización de ADF.
ADF también tiene compatibilidad integrada para ejecutar cuadernos de Databricks, scripts de Python o código empaquetado en JAR en una canalización de ADF.
Para obtener información sobre cómo ejecutar un cuaderno de Databricks en una canalización de ADF, consulte Ejecución de un cuaderno de Databricks con la actividad del cuaderno de Databricks en Azure Data Factory, seguido de Transformación de datos mediante la ejecución de un cuaderno de Databricks.
Para obtener información sobre cómo ejecutar un script de Python en una canalización de ADF, consulte Transformación de datos mediante la ejecución de una actividad de Python en Azure Databricks.
Para más información sobre cómo ejecutar código empaquetado en un archivo JAR en una canalización de ADF, consulte Transformación de datos mediante la ejecución de una actividad JAR en Azure Databricks.