Gérer les mises à jour pour des pipelines continus

Un pipeline continu s’exécute sans interruption, donc Azure Databricks ne peut pas attendre qu’il se termine avant d’appliquer des mises à jour de la plateforme telles que de nouvelles versions d’exécution ou la maintenance de l’infrastructure. Pour appliquer ces mises à jour, Azure Databricks redémarre le pipeline. Une fenêtre de maintenance vous permet de contrôler quand ces redémarrages ont lieu : vous sélectionnez un jour de la semaine, une heure de début et un fuseau horaire, et Azure Databricks ne commence la maintenance que dans cette fenêtre.

La fenêtre de maintenance est un réglage sur le travail continu qui fait tourner le pipeline. Si vous n’en définissez pas, la maintenance peut être effectuée à tout moment.

Comment Azure Databricks applique les mises à jour

Pour mettre à jour un pipeline continu, Azure Databricks lance une nouvelle mise à jour du pipeline sur un cluster neuf et ferme le précédent. Comme les pipelines continus suivent leur progression dans un point de contrôle en streaming, la nouvelle mise à jour reprend là où la précédente s’était arrêtée. Le traitement des données fait une courte pause pendant l’échange, puis continue sans perdre de données.

Azure Databricks ne commence la maintenance que dans une fenêtre d’une heure qui commence à l’heure de début du jour que vous sélectionnez. Le redémarrage lui-même est généralement court.

Choisissez un jour et une heure de départ où un bref redémarrage est acceptable pour votre charge de travail.

Quelles mises à jour sont incluses ?

La maintenance d’un pipeline continu peut inclure :

  • Mises à jour des versions Databricks Runtime
  • Correctifs et mises à jour de sécurité
  • Mises à jour de système d’exploitation
  • Fonctionnalités et améliorations de Spark Declarative Pipelines sur Lakeflow
  • Maintenance d’infrastructure serverless, comme le recyclage périodique de clusters serverless de longue date

Les mises à jour à l’exécution (mises à niveau de service) et la maintenance des infrastructures serverless respectent la fenêtre de maintenance configurée.

Important

Les clusters serverless ont une durée de vie maximale. Si cette limite est atteinte avant votre prochaine fenêtre de maintenance, Azure Databricks redémarre le pipeline afin de respecter cette limite, même si l’heure actuelle se situe en dehors de cette fenêtre. Cela garantit qu’un pipeline de longue durée est finalement recyclé.

À quelle fréquence les mises à jour sont-elles appliquées ?

Azure Databricks applique une mise à jour uniquement lorsque la maintenance est nécessaire. De nouvelles versions d’exécution sont publiées périodiquement, et la maintenance de l’infrastructure serverless se fait de façon récurrente. La fréquence à laquelle un pipeline individuel redémarre dépend de :

  • La cadence des nouvelles versions Databricks Runtime qui s’appliquent à votre pipeline
  • Pour les pipelines sans serveur, la planification du recyclage du cluster sans serveur
  • À quelle fréquence votre fenêtre de maintenance se produit

Lorsque votre fenêtre de maintenance arrive et qu’aucune mise à jour n’est en attente, la fenêtre passe sans redémarrage.

Configurez une fenêtre de maintenance

Vous pouvez définir une fenêtre de maintenance dans l’interface utilisateur Azure Databricks, avec l’API Jobs REST, ou avec des bundles d’automatisation déclarative.

Une fenêtre de maintenance comporte trois parties requises :

Setting Description
Jour de la semaine Une seule journée, du lundi au dimanche.
Heure de début L’heure de démarrage de la fenêtre, en entier de 0 à 23, dans un temps de 24 heures.
Fuseau horaire Un identifiant de fuseau horaire Java, tel que America/New_York. Azure Databricks évalue la fenêtre dans ce fuseau horaire.

Note

Les fenêtres de maintenance ne s’appliquent qu’aux tâches continues et aux pipelines continus. Ce paramètre n’est pas disponible pour les tâches qui s’exécutent selon un planning ou un type de déclencheur différent.

Configurez une fenêtre de maintenance dans l’interface utilisateur

Vous pouvez configurer une fenêtre de maintenance depuis l’interface Jobs ou celle des pipelines.

D’après l’interface d’offres d’emploi

  1. Dans la barre latérale de votre espace de travail Azure Databricks, cliquez sur l’icône Workflows.Jobs & Pipelines.
  2. Cliquez sur le nom du poste.
  3. Dans le panneau des détails du poste , ouvrez le déclencheur Continu et dépliquez Avancé pour trouver la fenêtre Maintenance.
  4. Sélectionnez un jour de la semaine, une heure de début et un fuseau horaire.
  5. Cliquez sur Enregistrer.

D’après l’interface Pipelines

  1. Dans la barre latérale de votre espace de travail Azure Databricks, cliquez sur l’icône Workflows.Jobs & Pipelines.
  2. Cliquez sur le nom du pipeline.
  3. Ouvre Planning et déploie les paramètres avancés pour trouver la fenêtre Maintenance.
  4. Sélectionnez un jour de la semaine, une heure de début et un fuseau horaire.
  5. Cliquez sur Enregistrer.

Configurez une fenêtre de maintenance avec l’API Jobs

Définissez le champ maintenance_window dans les paramètres continuous lorsque vous créez ou mettez à jour une tâche avec l’API REST Jobs. L’exemple suivant configure la maintenance pour commencer à 2h du matin, heure de l’Est, le mardi :

{
  "continuous": {
    "pause_status": "UNPAUSED",
    "maintenance_window": {
      "start_hour": 2,
      "day_of_week": "TUESDAY",
      "timezone_id": "America/New_York"
    }
  }
}

Les trois champs (start_hour, day_of_week, et timezone_id) sont obligatoires lorsque vous définissez une fenêtre de maintenance. start_hour doit être un entier de 0 vers 23.

Configurez une fenêtre de maintenance avec des bundles d’automatisation déclarative

Placez le maintenance_window mappage à l’intérieur du mappage du job continuous. La maintenance_window correspondance nécessite la version 1.16.0 ou supérieure de Databricks CLI. Pour faire échouer la validation sur les versions antérieures, réglez bundle.databricks_cli_version sur '>= 1.16.0'. L’exemple suivant configure la maintenance pour commencer à 2h du matin, heure de l’Est, le mardi :

bundle:
  name: continuous_pipeline_bundle
  databricks_cli_version: '>= 1.16.0'

resources:
  jobs:
    continuous_pipeline_job:
      name: continuous_pipeline_job
      continuous:
        pause_status: UNPAUSED
        maintenance_window:
          start_hour: 2
          day_of_week: TUESDAY
          timezone_id: America/New_York
      tasks:
        - task_key: refresh_pipeline
          pipeline_task:
            pipeline_id: ${resources.pipelines.example_pipeline.id}

Configurer les notifications de maintenance

Azure Databricks peut vous notifier lorsqu’un redémarrage de maintenance commence et lorsqu’il se termine. Les notifications de maintenance utilisent le système standard de notifications Lakeflow Jobs, ce qui vous permet de les envoyer à des adresses e-mail ou à des destinations système telles que Slack, PagerDuty ou Microsoft Teams. Voir Ajouter des notifications dans une tâche.

Deux événements sont disponibles pour une tâche continue :

  • Démarrage de maintenance : envoyé au début d’un redémarrage de maintenance. Cela inclut le travail, la cause (par exemple, une mise à niveau du service) et l’heure de début.
  • Maintenance terminée : envoyé à la fin du redémarrage. Inclut la cause, le temps d’achèvement, la durée du redémarrage et le statut du pipeline après le redémarrage.

Transitions à l’heure d’été

Azure Databricks interprète la fenêtre de maintenance dans le fuseau horaire que vous configurez, de sorte que la fenêtre suit les changements d’heure de ce fuseau. La plupart du temps, la fenêtre commence à l’heure locale configurée par vous. Lorsque les horloges changent de jour, le démarrage peut se décaler jusqu’à une heure. Choisissez un fuseau horaire qui correspond à votre emploi du temps d’activité.

Gérer les interruptions lors des mises à jour

Un redémarrage de maintenance met en pause le traitement des données pendant que la nouvelle mise à jour prend le relais. Les sources de streaming continuent d’accumuler des données pendant la pause, et la nouvelle mise à jour reprend depuis le point de contrôle du pipeline, donc aucune donnée n’est perdue.

Si votre pipeline a des exigences strictes de latence, sélectionnez une fenêtre de maintenance pendant une période où une courte pause est acceptable. Pour confirmer que le pipeline est revenu à un état sain après un redémarrage, surveillez la notification de complétion de maintenance .