Par défaut, les tâches déclenchées automatiquement de DataWorks utilisent le mode T+1 : les instances générées le lendemain du déploiement reflètent le contenu nouvellement déployé. Pour qu'une tâche nouvellement déployée ou modifiée prenne effet le jour même, utilisez le mode Immediately After Deployment.
Fonctionnement
Après avoir modifié une tâche et cliqué sur Submit, la nouvelle configuration prend effet soit le jour même, soit le lendemain, selon le mode de génération des instances.
Le lendemain (par défaut)
Cette option par défaut, recommandée, maximise la stabilité de votre environnement de production en isolant les modifications des instances en cours d'exécution ce jour-là.
Principe de fonctionnement : Un déploiement effectué le jour T ne modifie que la définition de la tâche et n'interfère pas avec l'exécution des instances ce jour-là.
-
Impact le jour T (jour du déploiement) :
Le système met uniquement à jour le code et les définitions des propriétés de la tâche. Les instances déjà générées ou planifiées le jour T ne sont pas affectées et s'exécutent selon la configuration précédant le déploiement.
Si vous souhaitez appliquer la nouvelle logique aux données du jour en cours, effectuez manuellement une opération de backfill data pour les instances du jour T après le déploiement.
Impact le jour T+1 (lendemain) : Toutes les modifications prennent effet à partir de la première instance déclenchée automatiquement le lendemain du déploiement (jour T+1). Ces instances sont générées et exécutées selon la nouvelle configuration.
Immédiatement après le déploiement
Ce mode applique les modifications de tâche le jour du déploiement. Le système compare l'heure de déploiement de la tâche avec l'heure de planification de chaque instance afin de déterminer comment les instances s'exécutent le jour T.
Principe de fonctionnement : Le système compare l'heure de planification de chaque instance déclenchée automatiquement le jour T avec l'heure de déploiement de la tâche, augmentée d'une marge système de 10 minutes.
-
Heure de planification < Heure de déploiement + 10 minutes
Résultat : Les nouvelles tâches effectuent un dry run ; les tâches modifiées ne génèrent pas d'instance.
Pour les nouvelles tâches qui n'ont jamais été déployées, l'instance expire et effectue un dry run sans exécuter la logique métier. Pour les tâches modifiées et redéployées, les instances expirées ne sont pas générées.
-
Heure de planification > Heure de déploiement + 10 minutes
Résultat : Exécution normale.
Le système génère et exécute l'instance selon la nouvelle configuration.
Impact le jour T+1 (lendemain) : Toutes les instances déclenchées automatiquement du lendemain (jour T+1) sont générées selon la nouvelle configuration.
Les déploiements soumis entre 22 h 00 et minuit prennent effet le jour T+2, quel que soit le mode de génération sélectionné.
Limites
Moment d'application de la modification : Le système génère les instances par lots de
22:00à24:00tous les jours. Pour les déploiements soumis durant cette période, les modifications prennent effet dans les instances déclenchées automatiquement générées le jour T+2.Limites liées aux modifications de la source de données : Si vous modifiez uniquement la source de données d'un nœud, les instances déclenchées automatiquement déjà générées pour la journée ne sont pas mises à jour, même si vous sélectionnez
Immediately After Deployment. Elles continuent de s'exécuter avec la source de données configurée précédemment. Pour appliquer immédiatement la modification, utilisez la fonctionnalité backfill data.
Scénarios de déploiement immédiat
Le mode Immediately After Deployment présente un risque plus élevé. Une utilisation inappropriée peut entraîner des dépendances de planification désordonnées, la suppression ou le remplacement inattendus d'instances, et compromettre la stabilité des tâches du jour même.
Cas d'utilisation recommandés
Utilisez ce mode avec prudence et uniquement dans les scénarios suivants :
Nouvelles tâches devant s'exécuter le jour même : Utilisez ce mode pour les nouvelles tâches sans dépendances ascendantes ou descendantes complexes qui doivent s'exécuter le jour du déploiement.
Remplacement d'instances existantes : Utilisez ce mode pour remplacer une instance déclenchée automatiquement en attente, qui a été générée pour le jour en cours mais ne s'est pas encore exécutée.
Scénarios à haut risque (non recommandés)
Évitez d'utiliser ce mode dans les scénarios suivants, car il peut compliquer les dépendances de planification du jour même et provoquer des échecs de planification :
Modification de la planification d'une tâche déployée : Cette opération est particulièrement risquée pour les tâches présentant des dépendances ascendantes et descendantes complexes. La modification du cycle de planification (par exemple, de quotidien à horaire) et le déploiement immédiat peuvent entraîner un mélange d'anciennes instances conservées et de nouvelles instances créées, ce qui conduit à des dépendances désordonnées.
-
Échec de l'actualisation du schéma de table : Après avoir modifié le cycle de planification, le schéma ou les partitions de la table de sortie (telle qu'une table MaxCompute) peuvent ne pas s'actualiser pour refléter le dernier résultat. En mode
Immediately After Deployment, la modification du cycle de planification crée de nouvelles instances mais ne supprime pas automatiquement les anciennes. Tant que les anciennes et les nouvelles instances coexistent, les anciennes instances continuent de s'exécuter avec l'ancienne configuration, de sorte que le schéma ou les partitions de la table de sortie ne sont pas mis à jour en conséquence.Étapes de dépannage :
Vérifiez si le cycle de planification a été modifié le jour du déploiement.
Dans Operation Center, vérifiez si les anciennes et les nouvelles instances coexistent pour la tâche.
Identifiez quelles instances s'exécutent toujours avec l'ancienne configuration et maintiennent la table de sortie obsolète.
Solution :
Basculez la tâche en mode
T+1et redéployez-la.Effectuez une opération de backfill data pour les instances du jour en cours.
Modes de génération d'instances incohérents pour les tâches ascendantes et descendantes : Par exemple, une tâche ascendante utilise le mode
T+1, tandis qu'une tâche descendante utiliseImmediately After Deployment. Cette configuration empêche les instances de la tâche descendante générées le jour même de trouver leurs dépendances ascendantes, ce qui les transforme enisolated tasksincapables de s'exécuter automatiquement.
Solution alternative
Pour les scénarios impliquant des modifications d'une tâche déployée, une approche plus sûre consiste à :
Utiliser le mode par défaut
T+1pour déployer les tâches.Une fois le déploiement réussi, effectuer une opération de backfill data sur la tâche afin de déclencher manuellement une instance pour le jour en cours.
Scénarios
Scénario 1 : Nouvelle tâche
Après le déploiement d'une nouvelle tâche, l'exécution de l'instance dépend du fait que son heure de planification soit antérieure ou postérieure à l'heure de déploiement majorée d'une marge de 10 minutes.
|
Heure de planification |
Comportement |
|
Postérieure à (heure de déploiement + 10 minutes) |
Le système génère une instance déclenchée automatiquement normale qui s'exécute à l'heure planifiée. |
|
Antérieure ou égale à (heure de déploiement + 10 minutes) |
Le système génère une instance expirée générée en temps réel. Cette instance est en état de dry-run et ne s'exécute pas réellement. Si vous devez traiter les données du jour en cours, vous pouvez effectuer un backfill data pour l'horodatage des données de ce jour. Cette opération comporte également un délai de 10 minutes avant la génération de l'instance. Pour plus d'informations, consultez la section Fonctionnement. |
Par exemple : Si une tâche est déployée dans l'environnement de production à 12:00, l'instance en temps réel devient effective à 12:10.
Si l'heure de planification de la tâche est postérieure à
12:10, la tâche sera planifiée pour exécution.Si l'heure de planification d'une tâche est antérieure à
12:10, la tâche effectue un dry-run et le statut de son instance est instance expirée générée en temps réel.
Scénario 2 : Mise à jour du cycle de planification
Si vous mettez à jour les propriétés de planification (telles que la fréquence et l'heure) d'une tâche de production et déployez les modifications, des instances antérieures et postérieures à la modification peuvent coexister le même jour, ce qui entraîne des dépendances de planification complexes.
Ce scénario ne se produit que le jour où la tâche est déployée avec génération immédiate. Le lendemain, la tâche génère normalement des instances déclenchées automatiquement selon la nouvelle configuration.
Le comportement spécifique est le suivant :
-
Si la nouvelle heure de planification est dans le futur :
DataWorks remplace les instances déjà générées pour les créneaux horaires futurs par de nouvelles instances basées sur la dernière configuration de planification.
-
Si la nouvelle heure de planification est dans le passé :
DataWorks conserve les instances planifiées avant la nouvelle heure et remplace ou supprime les instances planifiées après celle-ci.
Scénario 3 : Modes incohérents
Si une tâche ascendante et sa tâche descendante sont toutes deux nouvelles mais utilisent des modes de génération d'instances différents, la tâche descendante peut devenir une tâche isolée. Par exemple, si la tâche ascendante utilise Next Day et la tâche descendante utilise Immediately After Deployment, la tâche descendante peut devenir une tâche isolée. Une tâche isolée ne s'exécute pas automatiquement. Si elle possède de nombreuses dépendances descendantes, cela peut provoquer de graves perturbations dans les processus métier en aval.
Scénario 4 : Modification de la planification de la tâche ascendante
Si vous modifiez la planification d'une tâche ascendante qui possède des tâches descendantes avec des fréquences de planification différentes, les dépendances des tâches descendantes sont ajustées en fonction de la dernière configuration de planification de la tâche ascendante (par exemple, quotidienne, mensuelle ou horaire).
Lorsque vous modifiez la planification d'une tâche de production, les dépendances de ses instances descendantes sont rétablies en fonction de la nouvelle planification. Cela affecte à la fois les instances nouvellement générées et les anciennes instances non remplacées. Pour plus de détails sur les scénarios de dépendance horaire et au niveau de la minute, consultez la rubrique Principles and samples of scheduling configurations in complex dependency scenarios. Ce scénario s'applique uniquement lorsque la version de la tâche à déployer a son Instance Generation Mode défini sur Immediately After Deployment et inclut également une modification de l'heure de planification.
Voici des exemples de scénarios :
Scénario 1 : La planification d'une tâche ascendante passe de toutes les 6 heures à toutes les 8 heures (00:00, 08:00, 16:00), et le mode Immediately After Deployment est sélectionné.

Scénario 2 : La planification d'une tâche ascendante passe de toutes les 6 heures à 16:00 quotidiennement, et le mode Immediately After Deployment est sélectionné.
