Tous les produits
Search
Centre de documentation

DataWorks:Configurer la planification des nœuds

Dernière mise à jour :Sep 09, 2026

Configurez les propriétés de planification des tâches (nœuds) dans DataWorks, notamment le calendrier, les dépendances, les politiques d'exécution et les paramètres, afin de garantir l'exécution automatique et fiable des tâches.

Concepts clés

Avant de configurer les propriétés de planification, familiarisez-vous avec les concepts fondamentaux suivants :

  • Tâches et instances : Une tâche (ou nœud) correspond au code métier développé dans DataWorks. Lorsqu'une tâche s'exécute selon ses Scheduling Settings, une ou plusieurs instances d'exécution sont générées. Dans le Operation and Maintenance Center, vous gérez et surveillez les instances en cours d'exécution des tâches, par exemple en consultant les journaux ou en relançant des instances.

  • Instances périodiques : Pour les tâches planifiées périodiquement, le système de planification génère des instances correspondant à la Scheduling Frequency configurée (quotidienne, horaire, etc.), produisant ainsi les instances périodiques associées. Par exemple, une tâche horaire génère 24 instances horaires en attente chaque jour.

  • Date métier : Il s'agit de la date de traitement des données pour une instance, généralement T-1 (la veille). Par exemple, une instance exécutée tôt le matin du 02/01/2023 a pour date métier le 01/01/2023, ce qui signifie qu'elle traite les données du 1er janvier. Le remplacement des paramètres de planification se fait généralement sur la base de la date métier.

Prérequis

  • Un nœud a été créé. DataWorks utilise des nœuds pour le développement de tâches. Les tâches de différents moteurs sont encapsulées sous forme de types de nœuds distincts. Sélectionnez le nœud approprié à vos besoins. Pour plus de détails, consultez la section Présentation du développement de nœuds.

  • L'interrupteur Enable Periodic Scheduling est activé dans la page Scheduling Settings. Une fois activé, toutes les tâches de l'espace de travail peuvent s'exécuter automatiquement selon leur configuration. Pour plus de détails, consultez la section Configurer les propriétés de planification de l'espace de travail.

Configurer les propriétés de planification

Dans le panneau Scheduling Settings situé à droite de la page de l'éditeur de nœuds, définissez diverses propriétés pour déterminer le comportement automatisé de la tâche.

1. Accéder à la page de configuration de la planification

  1. Accédez à la page Workspaces dans la console DataWorks. Dans la barre de navigation supérieure, sélectionnez la région souhaitée. Repérez l'espace de travail cible et choisissez Shortcuts > Data Studio dans la colonne Actions.

  2. Dans Data Studio, double-cliquez sur le nœud cible pour ouvrir sa page d'édition.

  3. Cliquez sur Scheduling Settings à droite de la page de l'éditeur de nœuds pour ouvrir le panneau de configuration.

2. Configurer les propriétés de planification

Le panneau de configuration de la planification comprend les onglets Scheduling time, Scheduling Dependency, Scheduling Policy, Scheduling Parameters, Node output parameters et Associated Role. Configurez-les selon vos besoins.

Heure de planification : Définir quand une tâche s'exécute

Définissez le moment et la fréquence d'exécution automatique d'une tâche.

Remarque

Pour les nœuds intégrés à un workflow, l'Scheduling time est configurée uniformément par le workflow et ne peut pas être modifiée ici. Pour les nœuds autonomes, effectuez la configuration à cet endroit.

Paramètre

Description

Scheduling Frequency

Définit la fréquence d'exécution automatique d'une tâche en production. Prend en charge les périodes à la minute, à l'heure, quotidiennes, hebdomadaires, mensuelles et annuelles.

  • Planification à la minute : S'exécute à un Time interval défini (N minutes) dans une plage horaire quotidienne spécifiée. La granularité minimale est de 1 minute.

  • Planification horaire : S'exécute à un intervalle de temps défini (N heures) dans une plage horaire quotidienne spécifiée.

  • Planification quotidienne : S'exécute une fois par jour à l'heure spécifiée.

  • Planification hebdomadaire : S'exécute une fois certains jours de la semaine à une heure spécifique.

  • Planification mensuelle : S'exécute une fois certains jours du mois à une heure spécifique.

  • Planification annuelle : S'exécute une fois certains jours de l'année à une heure spécifique.

Effective Date

Définissez les dates de début et de fin pour la planification automatique des tâches. Après la période de validité, la tâche ne génère plus de nouvelles instances périodiques.

Cron expression

Cette expression est générée automatiquement en fonction des propriétés temporelles configurées dans l'interface utilisateur. Aucune configuration manuelle n'est nécessaire.

Remarque
  • Heure de planification vs heure d'exécution réelle : L'Scheduling time configurée ici représente l'heure de démarrage prévue de la tâche. L'heure de démarrage réelle dépend également de la finalisation des tâches en amont, de la disponibilité du groupe de ressources et d'autres facteurs.

  • Mécanisme de test à blanc les jours non planifiés : Pour les tâches hebdomadaires, mensuelles ou annuelles, les jours non désignés pour la planification, le système génère une instance de test à blanc. Cette instance aboutit immédiatement et déclenche les tâches en aval, mais n'exécute aucun code ni ne consomme de ressources de calcul.

  • Indépendance de la fréquence de planification : La fréquence de planification d'une tâche est déterminée uniquement par sa propre Scheduling Frequency, indépendamment des tâches en amont. DataWorks prend en charge les dépendances entre tâches ayant des périodes de planification différentes (par exemple, une tâche horaire dépendant d'une tâche quotidienne).

Dépendances de planification : Définir les prérequis pour l'exécution des tâches

Définissez quelles tâches en amont doivent être terminées avec succès avant que la tâche actuelle ne puisse démarrer. Une configuration correcte des dépendances est essentielle pour garantir l'ordre de traitement des données et l'exactitude des résultats.

DataWorks analyse automatiquement et recommande les dépendances en amont en se basant sur la lignée des tables dans le code afin de garantir l'intégrité des données. Vous pouvez également ajouter ou modifier manuellement les dépendances si nécessaire.

image
Configurer les dépendances en amont
  1. Dans l'onglet Scheduling Dependency, consultez la liste des nœuds de dépendance en amont analysés à partir du code par le système.

  2. Sélectionnez le mode de dépendance pour chaque nœud en amont :

    • Dépendance de même cycle : L'instance en aval d'aujourd'hui (T) dépend de l'instance en amont d'aujourd'hui (T). Il s'agit de la dépendance la plus courante. Par exemple, si la tâche quotidienne B lit une table produite par la tâche quotidienne A, la tâche B doit dépendre du même cycle de la tâche A.

    • Dépendance de cycle précédent : L'instance en aval d'aujourd'hui (T) dépend de l'instance en amont d'hier (T-1). Par exemple, la tâche d'aujourd'hui doit lire les données agrégées d'hier. Pour plus de détails, consultez la section Dépendances inter-cycles.

  3. (Facultatif) Si le système n'a pas analysé automatiquement les dépendances ou si vous devez dépendre d'un nœud ne produisant pas de données (tel qu'un nœud à charge nulle), cliquez sur Add upstream node pour configurer manuellement.

Remarque
  • Dépendances de workflow : Les dépendances entre nœuds au sein d'un workflow sont gérées uniformément par le workflow. Cette section couvre uniquement la configuration des dépendances pour les nœuds autonomes. Pour la configuration de la planification des workflows, consultez la section Configurer les propriétés de planification du workflow.

  • Scénarios de dépendance complexes : DataWorks prend en charge divers scénarios de dépendance complexes. Avant de procéder à la configuration, consultez la documentation sur la configuration des dépendances complexes pour comprendre les règles de dépendance prédéfinies.

  • Scénarios de dépendance non pris en charge : Pour les données non produites par la planification périodique de DataWorks (telles que les tables synchronisées en temps réel, les tables téléchargées manuellement ou les tables de dimension), le système ne peut pas détecter l'état de mise à jour des données ; il est donc impossible de configurer des dépendances de planification. Dans ces scénarios, dépendez du nœud racine de l'espace de travail ou d'un nœud à charge nulle pour une orchestration de planification unifiée.

Politique de planification : Définir le comportement d'exécution et les ressources des tâches

Définissez comment les instances sont générées, le comportement d'exécution (comme le délai d'expiration et la relance) ainsi que les ressources requises.

Paramètre

Description

Instance generation method

Définit le moment où les instances périodiques commencent à être générées après le déploiement d'une tâche.

  • T +1 generated next day : (Recommandé) La planification automatique commence le lendemain du déploiement. Pour une exécution le jour même, exécutez manuellement un backfill.

  • Instant generation after publishing : La planification automatique commence le jour même du déploiement. Pour plus de détails, consultez la section Générer des instances immédiatement après le déploiement.

Scheduling Type

  • Normal scheduling : La tâche s'exécute normalement, en exécutant le code et en consommant des ressources.

  • Pause scheduling : Après la génération d'une instance, son statut est défini sur « Frozen ». Elle ne s'exécute pas et bloque toutes les tâches en aval.

  • Empty Run Scheduling : Après la génération d'une instance, celle-ci aboutit immédiatement sans exécuter de code ni consommer de ressources, mais déclenche normalement les tâches en aval.

Timeout Definition

Définissez la durée maximale d'exécution de la tâche. Au-delà de ce délai, la tâche est automatiquement arrêtée et marquée comme échouée. La valeur par défaut est de 3 à 7 jours, avec un réglage manuel maximal de 168 heures (7 jours).

RUN Attribute

Définissez les conditions dans lesquelles la tâche peut être relancée manuellement.

  • Allow Rerun After Success or Failure : Pour les tâches pouvant être exécutées de manière répétée sans affecter les résultats (tâches idempotentes).

  • Deny Rerun After Success, Allow Rerun After Failure : Pour les tâches dont la relance après succès entraînerait des effets secondaires (comme l'insertion de données en double).

  • Deny Rerun After Success or Failure : Pour les tâches sensibles où toute relance affecterait les résultats (comme certaines tâches de synchronisation de données).

    Remarque

    Après avoir sélectionné cette option, le système ne relance pas automatiquement la tâche même après la récupération d'une défaillance système, et l'option Auto Rerun upon Failure ne peut pas être activée.

Auto Rerun upon Failure

Lorsque cette option est activée, si une tâche échoue en raison de problèmes transitoires (comme des fluctuations réseau), le système réessaie automatiquement pour améliorer la stabilité de la planification.

  • Number of Reruns : Configurable de 1 à 10 fois.

  • Rerun interval : Intervalle entre les relances, configurable de 1 à 30 minutes.

Remarque

Les tâches qui échouent en raison d'un délai d'expiration ne déclenchent pas de relances automatiques.

Max Parallel Instances

Limite le nombre maximal d'instances concurrentes de la même tâche pour le contrôle de la concurrence. La plage de valeurs est de 1 à 10 000. Lorsque cette option est activée, les instances excédentaires sont mises en file d'attente jusqu'à ce que les instances existantes soient terminées.

Resource Group

Configurez le groupe de ressources de planification pour la tâche.

Compute Resource/Compute quota

Configurez les ressources du moteur de calcul (telles que MaxCompute Quota) pour la tâche.

Datasets

Montez un dataset (tel que Object Storage Service (OSS) ou Apsara File Storage (NAS)) sur des types de nœuds spécifiques (comme Shell) afin qu'ils puissent être accessibles comme des fichiers locaux dans le code. Vous pouvez configurer le Mount Path, les Advanced Settings (comme la read method) et les autorisations Read Only.

Configuration des paramètres : Activer le passage dynamique de valeurs entre les tâches

La configuration paramétrée rend le code des tâches plus flexible, permettant le passage dynamique de valeurs et le transfert de contexte entre les tâches.

Paramètres de planification (paramètres d'entrée)

Si des variables sont utilisées dans le code du nœud (comme ${pt_time}), attribuez-leur des valeurs ici. Les valeurs peuvent être des constantes fixes ou des expressions dynamiques utilisant les paramètres intégrés de DataWorks (comme $bizdate).

Utilisez Add parameters pour définir manuellement, ou utilisez Loading parameters in code pour une identification automatique. De plus, vous pouvez utiliser l'icône image pour lier les valeurs des paramètres aux paramètres de sortie des nœuds en amont.

Remarque

La valeur finale des paramètres de planification est déterminée par la date métier de l'instance et les expressions de paramètre de planification configurées.

Bonnes pratiques : Après le déploiement d'une tâche, vérifiez la configuration des paramètres de planification sur la page Operation and Maintenance Center > Auto Triggered Task en production pour vous assurer que la configuration répond aux attentes.

Paramètres de sortie du nœud (paramètres de sortie)

Définissez la sortie du nœud actuel sous forme de paires clé-valeur pour que les nœuds en aval puissent les référencer. Les nœuds en aval peuvent consommer ces valeurs via la configuration des Scheduling Parameters grâce à l'option Associate Output Parameter of Ancestor Node.

La Parameter Value peut être une Constant (chaînes fixes) ou une Variable (référençant des paramètres système ou d'entrée personnalisés).

Remarque
  • Types de nœuds pris en charge : EMR Hive, EMR Spark SQL, ODPS Script, Hologres SQL, AnalyticDB for PostgreSQL et MySQL.

  • Transmettre les résultats de requête : Les Node output parameters ne peuvent transmettre que des valeurs de type chaîne. Pour transmettre les jeux de résultats de requêtes SQL en amont vers l'aval, utilisez un nœud d'affectation.

Rôle associé : Accéder en toute sécurité à d'autres ressources cloud

Spécifiez un rôle RAM pour une tâche afin d'obtenir dynamiquement des identifiants d'accès temporaires via Alibaba Cloud STS (Security Token Service) au moment de l'exécution. Cela permet d'accéder à d'autres ressources cloud (comme OSS) sans coder en dur les paires AccessKey, améliorant ainsi la sécurité.

Important

Limites

  • Restriction de groupe de ressources : Seuls les nœuds s'exécutant sur des groupes de ressources serverless sont pris en charge.

  • Restriction de type de nœud : Seuls les nœuds Python, Shell, Notebook, PyODPS 2, PyODPS 3 et PAI DLC sont pris en charge.

1. Configurer le rôle associé pour un nœud
  1. À droite de la page de l'éditeur de nœuds, repérez et cliquez sur Run Configuration.

  2. Dans le panneau de configuration de la planification, basculez vers l'onglet Associated Role.

  3. Dans la liste déroulante RAM Role, sélectionnez le rôle RAM que vous avez préparé.

    Important

    Si la liste déroulante est vide ou si vous ne trouvez pas le rôle souhaité, consultez la section Configurer un rôle associé à l'aide de STS pour terminer la configuration du rôle RAM.

  4. Une fois la configuration terminée, soumettez le nœud. Cette configuration prend effet uniquement pour les exécutions de débogage.

2. Exécuter et vérifier
Important

PyODPS : Lors de l'accès à d'autres produits cloud (comme OSS), l'identité du rôle RAM configuré est utilisée. Cependant, lors de l'accès aux données MaxCompute, l'identité d'accès configurée pour les ressources de calcul (au niveau du projet) est toujours utilisée automatiquement.

Configurer les propriétés de planification

Après avoir débogué le nœud, synchronisez la Run Configuration depuis Associated Role vers les Scheduling Settings dans Associated Role > RAM Role. Après le déploiement, la tâche s'exécute avec l'identité du rôle spécifié.

Si vous avez configuré une image personnalisée dans Run Configuration , vous devez également synchroniser les paramètres avec la configuration de planification.

Afficher le rôle d'exécution dans Operation Center

Une fois la tâche terminée, dans l'Operation and Maintenance Center, consultez les détails de l'instance de tâche pour confirmer que le rôle spécifié a bien été utilisé.

  1. Accédez à Operation and Maintenance Center > Auto Triggered Task O&M > Cycle Examples.

  2. Repérez l'instance de nœud que vous avez exécutée et cliquez dessus pour ouvrir sa page de détails.

  3. Dans la page de détails, vérifiez le champ Execution Identity pour confirmer que la tâche a bien utilisé le rôle RAM spécifié.

3. (Facultatif) Afficher ou utiliser les identifiants temporaires dans le code

Après avoir configuré un rôle associé, la tâche utilise automatiquement l'identité du rôle RAM pour accéder à d'autres ressources cloud au moment de l'exécution. Dans la plupart des cas, vous pouvez exécuter la tâche sans obtenir explicitement les identifiants dans votre code.

Si vous devez utiliser explicitement les identifiants temporaires dans votre code ou si vous souhaitez afficher les identifiants temporaires injectés par le système, vous pouvez les obtenir en utilisant les méthodes suivantes. DataWorks obtient automatiquement les identifiants temporaires au moment de l'exécution et les injecte dans l'environnement d'exécution sous forme de variables d'environnement.

Important

Les nœuds PAI DLC ne prennent pas en charge l'obtention d'identifiants temporaires selon les méthodes décrites dans cette section.

Méthode 1 : Lire les variables d'environnement (recommandé pour Shell et Python)

Le système définit automatiquement les trois variables d'environnement suivantes, que vous pouvez lire directement dans votre code.

  • LINKED_ROLE_ACCESS_KEY_ID : L'ID AccessKey temporaire.

  • LINKED_ROLE_ACCESS_KEY_SECRET : La clé secrète AccessKey temporaire.

  • LINKED_ROLE_SECURITY_TOKEN : Le jeton de sécurité temporaire.

Exemple de code (Python) :

Important

Cet exemple nécessite une image Python personnalisée avec oss2 installé. Pour plus de détails, consultez la section Image personnalisée.

import os
import oss2

# 1. Obtain temporary credentials from environment variables
access_key_id = os.environ.get('LINKED_ROLE_ACCESS_KEY_ID')
access_key_secret = os.environ.get('LINKED_ROLE_ACCESS_KEY_SECRET')
security_token = os.environ.get('LINKED_ROLE_SECURITY_TOKEN')

# Verify credentials obtained
if not all([access_key_id, access_key_secret, security_token]):
    raise Exception("Failed to get linked role credentials from environment variables.")

# 2. Initialize the OSS client with temporary credentials
# Assume the role has been granted access to 'your-bucket-name'
auth = oss2.StsAuth(access_key_id, access_key_secret, security_token)
bucket = oss2.Bucket(auth, 'http://oss-<regionID>-internal.aliyuncs.com', 'your-bucket-name')

# 3. Access OSS resources using the client
try:
# List objects in the bucket
    for obj in oss2.ObjectIterator(bucket):
        print('object name: ' + obj.key)
    print("Successfully accessed OSS with linked role.")
except oss2.exceptions.OssError as e:
    print(f"Error accessing OSS: {e}")

Exemple de code (Shell) :

#!/bin/bash
access_key_id=${LINKED_ROLE_ACCESS_KEY_ID}
access_key_secret=${LINKED_ROLE_ACCESS_KEY_SECRET}
security_token=${LINKED_ROLE_SECURITY_TOKEN}

# Access OSS. Replace regionID, bucket_name, and file_name with actual values
echo "ID:"$access_key_id
echo "token:"$security_token
ls -al /home/admin/usertools/tools/

# Example: Download a file from OSS to local test_dw.py using ossutil and print its content.
/home/admin/usertools/tools/ossutil64 cp --access-key-id $access_key_id --access-key-secret $access_key_secret --sts-token $security_token --endpoint http://oss-<regionID>-internal.aliyuncs.com oss://<bucket_name>/<file_name> test_dw.py
echo "************************ Success ************************, printing"
cat test_dw.py

Méthode 2 : Utiliser Credentials Client (recommandé pour Python)

Exemple de code (Python) :

Important

Cet exemple nécessite une image Python personnalisée avec oss2 et alibabacloud_credentials installés. Pour plus de détails, consultez la section Image personnalisée.

from alibabacloud_credentials.client import Client as CredentialClient
import oss2

# 1. Use the SDK to automatically obtain credentials
# It automatically reads LINKED_ROLE_* credential info from environment variables
cred_client = CredentialClient()
credential = cred_client.get_credential()

access_key_id = credential.get_access_key_id()
access_key_secret = credential.get_access_key_secret()
security_token = credential.get_security_token()

if not all([access_key_id, access_key_secret, security_token]):
    raise Exception("Failed to get linked role credentials via SDK.")

# 2. Initialize the OSS client with credentials
auth = oss2.StsAuth(access_key_id, access_key_secret, security_token)
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', 'your-bucket-name')

# 3. Access OSS
print("Listing objects in bucket...")
for obj in oss2.ObjectIterator(bucket):
    print(' - ' + obj.key)
print("Successfully accessed OSS with linked role via SDK.")

Étapes suivantes : Soumettre et déployer

Les configurations de planification ne prennent pas effet immédiatement après leur définition dans l'environnement de développement. Le nœud doit être soumis et déployé dans l'environnement de production avant que le système de planification ne génère des instances périodiques et n'exécute automatiquement les tâches selon la dernière configuration.

Documentation connexe