Partager via


Vue d’ensemble de l’orchestration sur Databricks

Azure Databricks offre une expérience intégrée pour l’orchestration des charges de travail de traitement des données, afin que vous puissiez coordonner et exécuter plusieurs tâches dans le cadre d’un flux de travail plus important. Vous pouvez simplifier, optimiser et planifier l’exécution de tâches fréquentes et reproductibles, ce qui facilite la gestion des flux de travail complexes.

Cet article présente les concepts et les options de gestion des charges de travail de production à l’aide de jobs Databricks.

Qu’est-ce que les emplois ?

Dans Databricks, une tâche est utilisée pour planifier et orchestrer des actions sur Databricks dans un flux de travail . Les flux de travail courants de traitement des données incluent des flux de travail ETL, l'exécution de notebooks, et les flux de travail d'apprentissage automatique (ML), en intégration avec des systèmes externes tels que dbt et Azure Data Factory (ADF).

Les travaux sont composés d’une ou plusieurs tâches et prennent en charge une logique de flux de contrôle personnalisée telle que l’embranchement (instructions if/else) ou la mise en boucle (instructions for each) à l’aide d’une interface utilisateur de création visuelle. Les tâches peuvent charger ou transformer des données dans un flux de travail ETL, ou créer, entraîner et déployer des modèles ML de manière contrôlée et reproductible dans le cadre de vos pipelines Machine Learning.

Exemple : Travail quotidien de traitement et de validation des données

L’exemple ci-dessous montre un travail dans Azure Databricks.

Exemple montrant un travail dans l’interface Azure Databricks avec 4 tâches et un déclencheur à exécuter quotidiennement.

Cet exemple de travail présente les caractéristiques suivantes :

  1. La première tâche ingère les données de revenus.
  2. La deuxième tâche est une vérification if/else pour les valeurs Null.
  3. Si ce n’est pas le cas, une tâche de transformation est exécutée.
  4. Sinon, il exécute une tâche de cahier avec une validation de qualité des données.
  5. Son exécution est programmée tous les jours à 11 h 29.

Pour obtenir une introduction rapide à la création de votre propre travail, consultez Créer votre premier flux de travail avec un travail Azure Databricks.

Cas d’utilisation courants

Des principes fondamentaux de l’ingénierie des données à l’intégration avancée du Machine Learning et des outils transparents, ces cas d’usage courants présentent l’étendue des fonctionnalités qui favorisent l’analytique moderne, l’automatisation des flux de travail et l’évolutivité de l’infrastructure.

| Ingénierie des données | Pipelines ETL, pour Extract, Transform, Load (extraire, transformer, charger) : Automatiser l’extraction de données à partir de diverses sources, transformer les données dans un format approprié et les charger dans un entrepôt de données ou un lac de données. Consultez Exécuter votre première charge de travail ETL sur Azure Databricks

migration de données: déplacez les données d’un système vers un autre.

Traitement continu des données: Utilisez des Jobs pour les tâches de traitement continu des données, telles que la diffusion en continu de données à partir de sources comme Kafka et l’écriture dans des tables Delta. | | Science des données et apprentissage automatique | Entraînement des modèles : Planifier et exécuter des tâches d’entraînement des modèles d’apprentissage automatique pour s’assurer que les modèles sont entraînés sur les données les plus récentes.

Inférence par lots: Automatisez le processus d'exécution de travaux d'inférence par lots pour générer des prédictions à partir de modèles entraînés.

paramétrage des hyperparamètres: orchestrer les travaux de réglage des hyperparamètres pour optimiser les modèles Machine Learning. | | Analytique et reporting | Requêtes planifiées : Exécuter des requêtes SQL dans un travail planifié pour générer des rapports ou mettre à jour des tableaux de bord.

Effectuez des tâches d’agrégation de données régulières pour préparer les données à des fins d’analyse. | | Automatisation des tâches | flux de travail multi-tâches: créez des flux de travail complexes impliquant plusieurs tâches, telles que l’exécution d’une série de notebooks, de fichiers JAR, de requêtes SQL ou de pipelines Delta Live Tables.

logique conditionnelle: utilisez la logique conditionnelle pour contrôler le flux des tâches en fonction de la réussite ou de l’échec des tâches précédentes. | | intégration avec d’autres outils | Airflow et Azure Data Factory (ADF): déclencher des travaux Azure Databricks à l’aide d’outils d’orchestration externes tels que Apache Airflow et Azure Data Factory, ce qui permet des flux de travail plus complexes et intégrés.

Notifications et surveillance : Configurer des notifications et surveiller les résultats de l’exécution des travaux à l’aide de l’interface utilisateur Azure Databricks, de l’interface de ligne de commande (CLI) ou de l’API, ou à l’aide d’intégrations avec des outils tels que Slack et les webhooks. | | Infrastructure as code (IaC) | Databricks Asset Bundles: gérez les travaux et d’autres ressources en tant que code pour faciliter le contrôle de version, la révision du code et les pratiques CI/CD (intégration continue/déploiement continu). |

Concepts d’orchestration

Il existe trois concepts principaux lors de l’utilisation de l’orchestration dans Azure Databricks : les travaux, les tâches et les déclencheurs.

Travail – Un travail est la ressource principale pour la coordination, la programmation et le fonctionnement de vos opérations. Les travaux peuvent varier en complexité d’une tâche unique exécutant un notebook Azure Databricks à des centaines de tâches avec une logique conditionnelle et des dépendances. Les tâches d’un travail sont visuellement représentées par un graphique Acyclique dirigé (DAG). Vous pouvez spécifier des propriétés pour la tâche, notamment :

  • Déclencheur : définit quand exécuter le travail.
  • Paramètres : paramètres d’exécution qui sont automatiquement transférés aux tâches au sein du job.
  • Notifications : e-mails ou webhooks à envoyer lorsqu’un travail échoue ou prend trop de temps.
  • Git : paramètres de contrôle de code source pour les tâches de travail.

tâche : une tâche est une unité de travail spécifique au sein d’un travail. Chaque tâche peut effectuer diverses opérations, notamment :

  • Une tâche de notebook exécute un notebook Databricks. Vous spécifiez le chemin d’accès au bloc-notes et les paramètres dont il a besoin.
  • Une tâche de pipeline exécute un pipeline. Vous pouvez spécifier un pipeline Delta Live Tables existant, tel qu’une vue matérialisée ou une table de streaming.
  • Une tâche de script Python exécute un fichier Python. Vous fournissez le chemin d’accès au fichier et les paramètres nécessaires.

Il existe de nombreux types de tâches. Pour obtenir une liste complète, consultez Types de tâches. Les tâches peuvent avoir des dépendances sur d’autres tâches et exécuter conditionnellement d’autres tâches, ce qui vous permet de créer des flux de travail complexes avec une logique conditionnelle et des dépendances.

déclencheur : un déclencheur est un mécanisme qui lance l’exécution d’un travail en fonction de conditions ou d’événements spécifiques. Un déclencheur peut être basé sur le temps, tel que l’exécution d’un travail à une heure planifiée (par exemple, un jour à 2 heures) ou basée sur des événements, comme l’exécution d’un travail lorsque de nouvelles données arrivent dans le stockage cloud.

Surveillance et observabilité

Les travaux fournissent un support intégré pour la surveillance et l’observabilité. Les rubriques suivantes donnent une vue d’ensemble de ce support. Pour plus de détails sur la surveillance des travaux et l’orchestration, consultez Surveillance et observabilité des projets Databricks.

surveillance et observabilité des travaux dans l’interface utilisateur : dans l’interface utilisateur Azure Databricks, vous pouvez afficher des travaux, y compris des détails tels que le propriétaire du travail et le résultat de la dernière exécution, et filtrer par propriétés de travail. Vous pouvez afficher un historique des exécutions de travaux et obtenir des informations détaillées sur chaque tâche du travail.

État et mesures de l’exécution des travaux – Databricks signale le succès de l’exécution d’un travail, ainsi que les journaux et les mesures pour chaque tâche au sein d’un travail, afin de diagnostiquer les problèmes et de comprendre les performances.

notifications et alertes : vous pouvez configurer des notifications pour les événements de travail par e-mail, Slack, webhooks personnalisés et une foule d’autres options.

Requêtes personnalisées via des tables système - Azure Databricks fournit des tables système qui enregistrent les exécutions de tâches et les tâches sur l'ensemble du compte. Vous pouvez utiliser ces tables pour interroger et analyser les performances et les coûts des travaux. Vous pouvez créer des tableaux de bord pour visualiser les métriques et tendances des travaux, afin de surveiller l’intégrité et les performances de vos flux de travail.

Limites

Les limites suivantes existent :

  • Un espace de travail est limité à 2 000 exécutions de tâches simultanées. Une réponse 429 Too Many Requests est retournée lorsque vous demandez une exécution qui ne peut pas démarrer immédiatement.
  • Le nombre de travaux qu’un espace de travail peut créer en une heure est limité à 10 000 (« envoi d’exécutions » inclus). Cette limite affecte également les travaux créés par les workflows de l’API REST et des notebooks.
  • Un espace de travail peut contenir jusqu’à 12 000 travaux enregistrés.
  • Un travail peut contenir jusqu’à 100 tâches.

Comment puis-je gérer des workflows de manière programmatique ?

Databricks dispose d’outils et d’API qui vous permettent de planifier et d’orchestrer vos flux de travail de manière programmatique, y compris ce qui suit :

Pour obtenir des exemples d’utilisation d’outils et d’API pour créer et gérer des travaux, consultez Automatiser la création et la gestion des travaux. Pour obtenir de la documentation sur tous les outils de développement disponibles, consultez outils de développement local.

Les outils externes utilisent les outils et LES API Databricks pour planifier des workflows par programmation. Vous pouvez planifier vos travaux à l’aide d’outils tels qu’Azure Data Factory ou Apache AirFlow.

Orchestration de workflow avec Apache AirFlow

Vous pouvez utiliser Apache Airflow pour gérer et planifier vos workflows de données. Avec Airflow, vous définissez votre workflow dans un fichier Python et Airflow gère la planification et l’exécution du workflow. Consultez Orchestrer des travaux Azure Databricks avec Apache Airflow.

Orchestration de workflow avec Azure Data Factory

Azure Data Factory (ADF) est un service d’intégration des données cloud permettant de composer des services de stockage, de déplacement et de traitement des données dans des pipelines de données automatisés. Vous pouvez utiliser ADF pour orchestrer un travail Azure Databricks dans le cadre d’un pipeline ADF.

ADF fournit également la prise en charge prédéfinie de l’exécution de notebooks Databricks, de scripts Python ou de package de code dans des JAR dans un pipeline ADF.

Pour savoir comment exécuter un notebook Databricks dans un pipeline ADF, consultez Exécuter un notebook Databricks avec l’activité Databricks Notebook dans Azure Data Factory, puis Transformer les données en exécutant un notebook Databricks.

Pour savoir comment exécuter un script Python dans un pipeline ADF, consultez Transformer des données en exécutant une activité Python dans Azure Databricks.

Pour savoir comment exécuter du package de code dans un fichier JAR dans un pipeline ADF, consultez Transformer des données en exécutant une activité JAR dans Azure Databricks.