Tous les produits
Search
Centre de documentation

DataWorks:Configurer et utiliser les paramètres de contexte des nœuds

Dernière mise à jour :Oct 10, 2026

Les paramètres de contexte des nœuds constituent un mécanisme central dans DataWorks pour transmettre des données dynamiques entre les nœuds de tâche. Un nœud en amont (producteur) peut transmettre sa valeur de sortie à un ou plusieurs nœuds en aval. Les nœuds en aval peuvent ensuite référencer ces valeurs dans leur code afin d'ajuster dynamiquement leur comportement en fonction de la sortie du nœud en amont. Cela améliore considérablement la flexibilité et l'automatisation de vos flux de travail.

Fonctionnement

Les paramètres de contexte des nœuds permettent de transmettre des valeurs en définissant un paramètre de sortie dans un nœud en amont (producteur) et en référençant ce paramètre dans un nœud en aval (consommateur).

image
  • Nœud en amont (producteur) : génère une valeur et la fournit en tant que paramètre de sortie. Il existe deux méthodes pour fournir une valeur :

    • Transmettre une constante ou une variable : dans la section Node Output Parameters du nœud en amont, définissez un paramètre et attribuez-lui une valeur. La valeur peut être une constante, telle que 'abc', ou une variable de contexte système, telle que ${status}.

    • Transmettre le résultat d'une affectation : le système capture le dernier résultat de requête du code du nœud, par exemple SELECT 'table_A';, l'affecte à un paramètre de sortie intégré nommé outputs, puis transmet la valeur de ce paramètre aux nœuds en aval. La valeur du paramètre dépend du résultat d'exécution du code. Les nœuds d'affectation et certains nœuds SQL prennent en charge cette méthode.

  • Nœud en aval (consommateur) : reçoit et utilise la valeur fournie par le nœud en amont.

    1. Configurer les paramètres d'entrée : dans la section Node Input Parameters du nœud en aval, ajoutez un paramètre d'entrée et définissez sa source de valeur sur le paramètre de sortie du nœud en amont.

    2. Établir une dépendance de planification : après avoir configuré le paramètre d'entrée, le système crée automatiquement une dépendance de planification de même cycle du nœud en aval vers le nœud en amont.

    3. Référencer dans le code : dans le code du nœud en aval, référencez la valeur en utilisant le format ${InputParameterName}. Par exemple, si le nœud en amont transmet la valeur table_A, le code en aval SELECT * FROM ${input}; devient SELECT * FROM table_A; lors de l'exécution.

Limites

  • Édition : certains nœuds prennent en charge la fonctionnalité Add Assignment Parameter, utilisée pour transmettre les résultats de requête. Cette fonctionnalité nécessite DataWorks Standard Edition ou une édition ultérieure.

  • Type de nœud : les types de nœuds qui prennent en charge la fonctionnalité Add Assignment Parameter sont les suivants : EMR Hive, EMR Spark SQL, ODPS Script, Hologres SQL, ADB for PostgreSQL, ADB for MySQL, nœud ADB Spark SQL, ClickHouse SQL, nœud Lindorm Spark SQL, Lindorm OLAP, nœud Serverless Spark SQL, nœud Serverless Kyuubi et nœuds de base de données.

Procédure

Étape 1 : Configurer le nœud en amont pour produire des paramètres

  1. Connectez-vous à la console DataWorks. Basculez vers la région cible. Dans le volet de navigation de gauche, cliquez sur Data Development and O&M > DataStudio. Sélectionnez l'espace de travail souhaité dans la liste déroulante et cliquez sur Go to DataStudio.

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

  3. Sur le côté droit du canevas, cliquez sur Scheduling Settings. Dans la section Node Context Parameters, choisissez une méthode pour configurer les Node Output Parameters selon vos besoins.

Méthode 1 : Transmettre une constante ou une variable

  1. Dans la section Output Parameters of This Node, cliquez sur Add Parameter.

  2. Configurez les informations du paramètre.

    Paramètre

    Description

    Nom du paramètre

    Un nom personnalisé pour le paramètre de sortie, par exemple my_param.

    Valeur du paramètre

    La valeur du paramètre. Les types suivants sont pris en charge :

Méthode 2 : Transmettre le résultat d'une affectation

  1. Utiliser un nœud d'affectation

    Un nœud d'affectation (le nœud en amont) prend en charge MaxCompute SQL, Python 2 et Shell. Il affecte automatiquement le résultat de la dernière requête ou sortie au paramètre de sortie du nœud (outputs). Les nœuds en aval peuvent ensuite référencer ce paramètre pour récupérer le résultat de sortie du nœud d'affectation. Pour plus d'informations, consultez la rubrique Nœud d'affectation.

  2. Utiliser un paramètre d'affectation

    Dans un nœud qui prend en charge les paramètres d'affectation, procédez comme suit :

    1. Dans la section Node Output Parameters, cliquez sur Add Assignment Parameter.

    2. Le système ajoute automatiquement un paramètre de sortie nommé outputs. Vous n'avez pas besoin de configurer ce paramètre. Sa valeur correspond au dernier résultat de requête du code du nœud.

    3. Cliquez sur Save.

      Remarque

      Après avoir cliqué sur Add Assignment Parameter, le paramètre d'affectation transmet le résultat de la requête de ce nœud à tout nœud en aval qui le référence. Si le résultat est vide, l'exécution de ce nœud n'est pas bloquée, mais les nœuds en aval qui référencent le paramètre peuvent échouer.

    Pour un exemple spécifique, consultez l'exemple de langage MaxCompute dans la rubrique Nœud d'affectation.

Important

Les paramètres de sortie peuvent être supprimés. Avant de supprimer un paramètre de sortie, assurez-vous qu'aucun nœud en aval ne l'utilise. Sinon, l'exécution des tâches en aval sera affectée.

Étape 2 : Configurer le nœud en aval pour utiliser le paramètre

  1. Configurer les paramètres d'entrée

    1. Ouvrez la page d'édition du nœud en aval. Accédez à la page de configuration Scheduling Settings > Node Context Parameters. Dans la section Node Input Parameters, cliquez sur Add Parameter.

    2. Configurez le paramètre d'entrée. Sélectionnez un paramètre de sortie d'un nœud en amont comme Value Source pour ce paramètre, et définissez un Parameter Name pour ce nœud.

    3. Dans la barre d'outils, cliquez sur Save pour enregistrer le paramètre.

  2. Établir les dépendances

    Après avoir attaché le paramètre de sortie du nœud en amont, le système ajoute automatiquement une dépendance de même cycle sur ce nœud. Vous n'avez pas besoin de la configurer manuellement.

  3. Référencer les paramètres

    Dans le code du nœud en aval, référencez le paramètre en utilisant le format ${InputParameterName}.

    L'exemple suivant montre comment référencer le paramètre d'entrée param dans un nœud Shell :

    echo "The value from upnode is ${param}"

    Si le nœud en amont transmet un résultat d'affectation au nœud en aval, la valeur du paramètre est généralement un tableau bidimensionnel ou un tableau unidimensionnel séparé par des virgules. Vous pouvez accéder aux valeurs du tableau comme suit :

    • Si le nœud en amont est un nœud SQL (tableau bidimensionnel) :

      • Ligne : ${param}.

      • Cellule : ${param[j]}.

    • Si le nœud en amont est un nœud Python/Shell (tableau unidimensionnel) : Ligne : ${param}.

    Tous les index commencent à 0.

Étape 3 : Déboguer et exécuter

Les paramètres de contexte sont transmis dans l'ordre de planification uniquement dans les instances récurrentes déclenchées par un workflow. L'exécution indépendante d'un nœud en aval ne permet pas de récupérer les paramètres en amont et entraîne l'échec de la tâche. Lors du débogage, vous devez commencer par le nœud en amont et exécuter les nœuds dans l'ordre du flux métier.

  1. Revenez au workflow. Dans la barre d'outils située au-dessus du workflow, cliquez sur Run, ou faites un clic droit sur le nœud en aval et sélectionnez Run to this node.

  2. Dans l'instance de graphe orienté acyclique (DAG) générée, cliquez sur un nœud pour afficher son journal d'opération et vérifier si le résultat est conforme aux attentes.

Variables de contexte système

Variable système

Description

${projectId}

ID du projet.

${projectName}

Nom du projet MaxCompute.

${nodeId}

ID du nœud.

${gmtdate}

L'heure 00:00:00 du jour de l'heure planifiée de l'instance. Le format est yyyy-MM-dd 00:00:00.

${taskId}

ID de l'instance de tâche.

${seq}

Le numéro ordinal de l'instance de tâche, qui indique sa séquence parmi les instances du même nœud le même jour.

${cyctime}

L'heure planifiée de l'instance.

${status}

L'état de l'instance : succès (SUCCESS) ou échec (FAILURE).

${bizdate}

L'horodatage des données.

${finishTime}

L'heure de fin de l'instance.

${taskType}

Le type d'exécution de l'instance : Normal (NORMAL), Manuel (MANUAL), Pause (PAUSE), Test à blanc (SKIP), Non sélectionné (UNCHOOSE) ou Ignorer le cycle (SKIP_CYCLE).

${nodeName}

Le nom du nœud.