DataWorks vous permet de créer des dépendances entre des tâches déclenchées automatiquement qui ont des fréquences de planification différentes, telles que la minute, l'heure, le jour, la semaine, le mois et l'année. Chaque exécution de tâche constitue une instance, et la fréquence de planification détermine le nombre d'instances générées. Cette rubrique explique comment DataWorks établit des dépendances entre les instances des tâches ascendantes et descendantes lorsque leurs fréquences de planification diffèrent.
Contexte
Dans DataWorks, une tâche déclenchée automatiquement génère des instances en fonction de sa fréquence de planification. Par exemple, une tâche horaire génère un nombre correspondant d'instances chaque jour. Les dépendances entre les tâches sont établies au niveau de leurs instances. Lorsque les tâches ascendantes et descendantes ont des fréquences de planification différentes, le nombre d'instances et la manière dont elles dépendent les unes des autres varient.
DataWorks prend en charge divers scénarios de dépendance de planification. Vous pouvez choisir de configurer une dépendance de planification au sein du même cycle ou une dépendance de planification inter-cycles. Pour plus d'informations, consultez Configurer une dépendance de planification au sein du même cycle et Configurer une dépendance de planification inter-cycles.
Pour les scénarios transfrontaliers où une tâche quotidienne dépend de tâches horaires ou basées sur les minutes, outre la réalisation indirecte via l'auto-dépendance et le principe de proximité, vous pouvez activer la Configuration avancée des dépendances de planification pour utiliser directement la dépendance Plage spécifiée afin de configurer la plage de dépendance requise (par exemple [-5, 19]), ou utiliser la dépendance Ensemble spécifié pour configurer avec précision les dépendances sur des instances à des heures fixes, sans avoir besoin de définir une auto-dépendance pour les tâches horaires en amont. Pour plus d'informations, consultez Configurer une dépendance de planification au sein du même cycle.
Assimilez ces concepts avant de configurer une dépendance de planification.
N° | Description | Références |
1 | DataWorks prend en charge plusieurs fréquences de planification, notamment la minute, l'heure, le jour, la semaine, le mois et l'année. Lorsqu'une tâche ascendante et une tâche descendante ont des fréquences de planification différentes, DataWorks établit la dépendance de planification en utilisant le principe de proximité temporelle de planification. Remarque
| |
2 | Une dépendance de planification établit une dépendance de données entre les tâches. La tâche descendante ne s'exécute pas tant que sa tâche ascendante n'est pas terminée avec succès, indépendamment de l'heure de planification propre à la tâche descendante. | |
3 | Vous pouvez approfondir votre compréhension du principe de proximité grâce aux exemples de scénarios suivants. | Annexe 1 : Résumé des scénarios de dépendances complexes Les scénarios incluent : |
Résolution des dépendances : Le principe de proximité temporelle de planification
Lorsqu'une tâche déclenchée automatiquement s'exécute dans DataWorks, plusieurs instances sont générées. Les instances descendantes dépendent des instances ascendantes. Sauf si une instance ascendante spécifique est désignée, l'instance descendante suit le principe de proximité lors de l'établissement des dépendances. Cela signifie que l'instance descendante dépend de l'instance ascendante dont l'heure de planification est la plus proche mais non postérieure à l'heure de planification de la descendante, et qui n'a pas été réclamée par une autre instance descendante. Les principes de dépendance pour différents scénarios sont les suivants :
Si l'heure de planification de la tâche descendante est antérieure à celle de la tâche ascendante, la tâche descendante ne sera pas planifiée même lorsque son heure programmée arrive. Elle doit attendre que la tâche ascendante soit terminée avant de pouvoir être planifiée.
Lorsque les dépendances sont établies selon le principe de proximité, si aucune instance ascendante n'est planifiée avant la première instance de la tâche descendante un jour donné, l'instance descendante dépend par défaut de la première instance ascendante de ce jour-là.
Scénario | Description | Schéma |
Dépendances entre les tâches horaires et les tâches basées sur les minutes |
| La figure suivante présente une vue d'ensemble des scénarios détaillés pour les dépendances entre les tâches horaires et les tâches basées sur les minutes : Exemple : Une tâche horaire dépend d'une autre tâche horaire.
|
Tâche quotidienne dépendant d'une tâche horaire ou basée sur les minutes | Comportement par défaut : Par défaut, une tâche quotidienne dépend de toutes les instances générées par ses tâches ascendantes horaires ou basées sur les minutes le même jour. La tâche quotidienne ne démarre qu'après le traitement de toutes les données de cette journée provenant des tâches ascendantes. Autres cas : Si la tâche quotidienne doit seulement dépendre de l'instance horaire ou basée sur les minutes la plus proche de sa propre heure de planification, vous pouvez configurer une auto-dépendance pour la tâche horaire ou basée sur les minutes. Après cette configuration, la tâche quotidienne démarre dès que cette instance horaire ou basée sur les minutes est terminée. |
Pour plus de détails sur les dépendances et le comportement d'exécution dans divers scénarios de planification, consultez Annexe 1 : Résumé des scénarios de dépendances complexes.
Comment les dépendances affectent l'exécution des tâches
Une fois qu'une tâche descendante a une dépendance configurée, la tâche ne s'exécutera pas à l'heure prévue si la tâche ascendante n'est pas terminée avec succès.
Par exemple, la tâche horaire B dépend de la tâche quotidienne A, et la tâche horaire B n'a pas d'auto-dépendance configurée.
Tâche quotidienne A : L'heure de planification est définie sur
07:00.Tâche horaire B : Les heures de planification sont définies sur
00:00,08:00, et16:00.
Si la tâche quotidienne A n'est pas terminée, la tâche horaire B ne s'exécutera pas même lorsque son heure prévue 00:00 arrive. L'heure d'exécution réelle la plus précoce de la tâche descendante B est 07:00.
Annexe 1 : Résumé des scénarios de dépendances complexes
Si l'heure de planification d'une tâche descendante est antérieure à celle de sa tâche ascendante, la tâche descendante ne sera pas distribuée même lorsque son heure prévue arrive. Elle doit attendre que la tâche ascendante soit terminée. Pour la première instance de la tâche descendante un jour donné, si la tâche ascendante n'a aucune instance planifiée plus tôt, la tâche descendante dépend par défaut de la première instance de la tâche ascendante de ce jour-là.
Tâche horaire dépendant d'autres tâches
Tâche quotidienne dépendant d'autres tâches
Tâche basée sur les minutes dépendant d'autres tâches
Autres tâches dépendant de tâches hebdomadaires, mensuelles ou annuelles
Annexe 2 : Planification de workflow
DataWorks vous permet d'ajouter des nœuds ascendants et descendants à un workflow dans son ensemble. Pour plus de détails sur la planification de workflow, consultez Planification de workflow.
Annexe 3 : Agrégation globale de données transfrontalière (dépendance de plage spécifiée)
Lorsqu'un entrepôt de données en Chine traite centralisé des données provenant de plusieurs régions du monde, les tâches ascendantes horaires de chaque région s'exécutent selon l'heure locale, tandis que la tâche quotidienne descendante agrège les données quotidiennes selon le fuseau horaire de la Chine. En raison des différences de fuseaux horaires, la tâche quotidienne descendante doit utiliser une dépendance de plage spécifiée pour dépendre de toutes les instances des tâches ascendantes horaires de chaque région dans une fenêtre temporelle spécifique.
Exemple de scénario (horodatage des données : 2026-01-22)
|
Région |
Différence horaire avec la Chine |
Type de dépendance |
Configuration du décalage |
Instances dépendantes réelles |
|
Inde |
2,5 heures de retard |
Plage spécifiée |
[-3, 21] |
01-21 21:00 ~ 01-22 21:00 (24 instances) |
|
Arabie saoudite |
5 heures de retard |
Plage spécifiée |
[-5, 19] |
01-21 19:00 ~ 01-22 19:00 (24 instances) |
Comportement des dépendances inter-jours dans les scénarios de backfill
Le comportement des dépendances inter-jours des instances générées par les tâches de backfill diffère de celui des instances de planification régulières.
1. Dépendances inter-jours configurées par plage spécifiée ou ensemble spécifié
Lorsque vous exécutez une tâche de backfill, les dépendances inter-jours configurées par une plage spécifiée ou un ensemble spécifié ne prennent pas effet.
Comportement spécifique : Lorsque des instances de backfill sont générées pour plusieurs dates métier, le système ignore automatiquement toutes les dépendances qui traversent les limites des dates métier lors de la résolution des dépendances. Cela signifie qu'une instance de backfill ne monte que les instances en amont de la même date métier, et ne monte pas les instances en amont qui pointent vers la veille ou le lendemain tel que défini dans la configuration.
Exemple : Une tâche quotidienne est configurée avec une dépendance de plage sur une tâche horaire en amont
[-4h, 0](dépendant des 4 instances avant 00:00 du jour actuel). Lors de la planification régulière, l'instance du11 maidépend des instances du10 mai, 20:00-23:00. Cependant, lorsque vous effectuez un backfill des données pour le11 mai, cette dépendance inter-jours est ignorée, et l'instance ne montera aucune instance en amont.
2. Dépendance inter-jours par défaut dans le backfill (mécanisme de sérialisation)
Par défaut, lorsque vous exécutez un backfill par lot non groupé, une dépendance série implicite existe entre les instances de différentes dates métier.
Comportement spécifique : Toutes les instances de backfill pour la date métier
Dattendent que toutes les instances de backfill pour la date métierD-1soient terminées avec succès avant de commencer à s'exécuter. Cela signifie que si une instance de la dateD-1échoue, aucune des instances de la dateDne sera planifiée.Exception : Si vous sélectionnez une exécution groupée pour le backfill, ce mécanisme de sérialisation ne prend pas effet. Les instances de tâches au sein de chaque groupe d'exécution s'exécutent indépendamment et ne sont pas affectées par le statut des instances des autres groupes.