Exécuter des travaux selon une planification ou en continu

Vous pouvez exécuter régulièrement votre travail Azure Databricks avec le type de déclencheur Planifié ou vous assurer qu’il existe toujours une exécution active du travail avec le type de déclencheur Continu.

Vous pouvez utiliser une planification pour exécuter automatiquement votre tâche Azure Databricks à des heures et des périodes spécifiées. Vous pouvez définir une planification pour exécuter votre travail à la minute, à l’heure, au quotidien, à la semaine ou au mois et à des heures précises. Vous pouvez également spécifier un fuseau horaire pour votre planification et suspendre un travail planifié à tout moment.

Lorsque vous exécutez votre travail avec le déclencheur continu, Azure Databricks Jobs garantit qu’il existe toujours une exécution active du travail. Une nouvelle exécution de travail démarre une fois l’exécution précédente terminée avec succès ou avec un état ayant échoué, ou s’il n’existe aucune instance de travail en cours d’exécution.

Ajouter une planification de tâche

Pour définir une planification pour le travail :

  1. Cliquez sur Workflows dans la barre latérale.
  2. Dans la colonne Nom de l’onglet Travaux, cliquez sur le nom du travail.
  3. Cliquez sur Add trigger (Ajouter un déclencheur) dans le volet Job details (Détails du travail) et sélectionnez Scheduled (Planifié) dans Trigger type (Type de déclencheur).
  4. Indiquez la période, l’heure de début et le fuseau horaire. Si vous le souhaitez, activez la case à cocher Show Cron Syntax (Afficher la syntaxe Cron) pour afficher et modifier la planification dans la syntaxe Quartz Cron.
  5. Cliquez sur Enregistrer.

Vous pouvez également planifier une tâche de notebook directement dans l’interface utilisateur du notebook.

Remarque

  • Azure Databricks applique un intervalle minimal de 10 secondes entre les exécutions suivantes déclenchées par la planification d’un travail quelle que soit la configuration en secondes de l’expression cron.
  • Vous pouvez choisir un fuseau horaire qui respecte l’heure d’été ou l’heure UTC. Si vous sélectionnez un fuseau horaire qui respecte l’heure d’été, une tâche horaire est ignorée ou peut sembler être décalée d’une heure ou deux lorsque l’heure d’été commence ou se termine. Pour exécuter toutes les heures (heure absolue), choisissez UTC.
  • Le planificateur de travaux n’est pas conçu pour les tâches à faible latence. En raison de problèmes de réseau ou de cloud, les exécutions de travaux peuvent parfois être retardées jusqu’à plusieurs minutes. Dans ce cas, les travaux planifiés sont exécutés immédiatement lorsque le service est disponible.

Suspendre et reprendre une planification de travail

Pour suspendre un travail, cliquez sur Suspendre dans le volet Détails du travail.

Pour reprendre une planification de travail suspendue, cliquez sur Reprendre.

Exécuter une tâche continue

  1. Cliquez sur Workflows dans la barre latérale.
  2. Dans la colonne Nom de l’onglet Travaux, cliquez sur le nom du travail.
  3. Cliquez sur Ajouter un déclencheur dans le volet Détails du travail, cliquez sur Ajouter un déclencheur dans le volet Détails du travail, sélectionnez Continu dans le Type de déclencheur, puis cliquez sur Enregistrer.

Pour arrêter un travail continu, cliquez sur Blue Down Caret à côté de Exécuter maintenant, puis cliquez sur Arrêter.

Remarque

  • Il ne peut y avoir qu’une seule instance en cours d’exécution d’un travail continu.
  • Il y a un petit délai entre la fin d’une exécution et le démarrage d’une nouvelle exécution. Ce délai doit être inférieur à 60 secondes.
  • Vous ne pouvez pas utiliser les dépendances de tâche avec un travail continu.
  • Vous ne pouvez pas utiliser de stratégies de nouvelle tentative avec un travail continu. Au lieu de cela, les travaux continus utilisent un backoff exponentiel pour gérer les échecs d’exécution des travaux.
  • Sélectionner Exécuter maintenant sur un travail continu qui est suspendu déclenche une nouvelle exécution de travail. Si le travail n’est pas suspendu, une exception est levée.
  • Pour que votre travail continu récupère une nouvelle configuration de travail, annulez l’exécution existante. Une nouvelle exécution démarre alors automatiquement. Vous pouvez également cliquer sur Redémarrer l’exécution pour redémarrer l’exécution du travail avec la configuration mise à jour.

Comment les échecs sont-ils gérés pour les travaux continus ?

Azure Databricks Jobs utilise un schéma de backoff exponentiel pour gérer des travaux continus avec plusieurs échecs consécutifs. Le backoff exponentiel permet aux travaux continus de s’exécuter sans interrompre et de revenir à un état sain lorsque des défaillances récupérables se produisent.

Lorsqu’un travail continu dépasse le seuil autorisé d’échecs consécutifs, la procédure suivante décrit comment les exécutions de travaux suivantes sont gérées :

  1. Le travail est redémarré après une période de nouvelle tentative définie par le système.
  2. Si l’exécution du travail suivante échoue, la période de nouvelle tentative est augmentée et le travail est redémarré après cette nouvelle période de nouvelle tentative.
    1. Pour chaque échec ultérieur de l’exécution d’un travail, la période de nouvelle tentative est à nouveau augmentée, jusqu’à une période de nouvelle tentative maximale définie par le système. Après avoir atteint la période de nouvelle tentative maximale, le travail continue d’être retenté à l’aide de la période maximale de nouvelle tentative. Le nombre de nouvelles tentatives pour un travail continu n’est pas limité.
    2. Si l’exécution du travail se termine correctement et démarre une nouvelle exécution, ou si l’exécution dépasse un seuil sans échec, le travail est considéré comme sain et la séquence d’interruption est réinitialisée.

Vous pouvez redémarrer un travail continu dans l’état de backoff exponentiel via l’interface utilisateur des travaux ou en transmettant l’ID de travail à la requête POST /api/2.1/jobs/run-now dans l’API Jobs 2.1 ou la requête POST /api/2.0/jobs/run-now dans l’API Jobs 2.0.