Le contexte du nœud permet de transmettre automatiquement des paramètres entre les nœuds en amont et en aval. Les valeurs peuvent être des constantes, des variables ou des résultats de requêtes provenant des nœuds en amont, ce qui permet une planification et une exécution dynamiques des tâches.
Limites
Édition : DataWorks Standard Edition et les éditions ultérieures prennent en charge l'option Add assignment parameter pour la transmission des résultats de requête.
Types de nœud : seuls certains types de nœud peuvent transmettre des résultats de requête via des paramètres d'affectation, notamment les nœuds EMR Hive, EMR Spark SQL, ODPS Script, Hologres SQL, AnalyticDB for PostgreSQL, ClickHouse SQL et MySQL.
Fonctionnement
Pour transmettre une valeur, définissez un paramètre de sortie dans un nœud en amont (fournisseur) et référencez-le dans un nœud en aval (consommateur).
-
Nœud en amont (fournisseur) : génère une valeur et l'expose en tant que paramètre de sortie de l'une des deux manières suivantes :
Configurer un paramètre de sortie standard : dans la section Current Node Output Parameters du nœud en amont, définissez un paramètre et attribuez-lui une constante (par exemple
'abc') ou une variable de contexte système (par exemple${status}).Configurer un paramètre de sortie d'affectation : le système capture le résultat de la requête de la dernière ligne du code du nœud (par exemple
SELECT 'table_A';) et l'affecte au paramètre de sortie intégré outputs. La valeur du paramètre est transmise aux nœuds en aval et dépend du résultat 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 du nœud en amont.
Créer une dépendance de planification : configurez la dépendance sur le nœud en amont.
Configurer un paramètre d'entrée : dans la section Current Node Input Parameters du nœud en aval, ajoutez un paramètre d'entrée dont la source est un paramètre de sortie en amont.
Référencer le paramètre dans le code : dans le code du nœud en aval, référencez la valeur reçue sous la forme
${input_parameter_name}. Par exemple, si le nœud en amont transmettable_A, le code en avalSELECT * FROM ${input};devientSELECT * FROM table_A;lors de l'exécution.
Ouvrir la zone de configuration des paramètres
Connectez-vous à la console DataWorks. Dans la région cible, cliquez sur dans le volet de navigation de gauche. Sélectionnez un espace de travail dans la liste déroulante et cliquez sur Go to Data Development.
Dans le panneau Data Studio, double-cliquez sur le nœud pour ouvrir son éditeur.
Cliquez sur Scheduling. Dans la zone Input and Output Parameters, cliquez sur
à droite pour ouvrir les paramètres de contexte du nœud.
Configurer les paramètres de sortie
Dans la section Input and Output Parameters, configurez les paramètres de sortie du nœud actuel en fonction de votre scénario métier.
Configurer un paramètre de sortie standard : transmettez une constante ou une variable configurée dans ce nœud aux nœuds en aval.
Configurer un paramètre de sortie d'affectation : transmettez le résultat de la requête de ce nœud aux nœuds en aval en tant que paramètre de sortie.
Configurer un paramètre de sortie standard
Pour transmettre aux nœuds en aval les paramètres configurés dans le nœud en amont, suivez les instructions ci-dessous.
Paramètre | Configuration |
No. | Le système attribue et incrémente automatiquement le numéro. |
Parameter name | Définissez un nom pour le paramètre de sortie. |
Type | Sélectionnez Constant ou Variable en fonction de vos besoins métier. |
Value | Valeur du paramètre de sortie. Il peut s'agir d'une constante ou d'une variable :
|
Description | Brève description du paramètre. |
Source | Source du paramètre actuel. Les options incluent Added Automatically, Analyze Code ou Add manually lors de l'exécution. |
Operation | Save, Modify ou Delete. Remarque Si un nœud en aval dépend de ce paramètre, il ne peut pas être modifié ni supprimé. Vérifiez attentivement la définition de sortie en amont avant d'ajouter une référence en aval. |
Après avoir configuré les paramètres, cliquez sur Operation dans la colonne Save.
Configurer un paramètre de sortie d'affectation
Pour transmettre le résultat de la requête de la tâche actuelle à une tâche en aval, suivez les instructions ci-dessous.
Localisez la section du nœud.
Cliquez sur Add assignment parameter pour ajouter un paramètre de sortie d'affectation en une seule étape.
Cliquez sur Add assignment parameter pour transmettre le résultat de la requête de ce nœud aux nœuds en aval qui référencent le paramètre d'affectation. Un résultat vide ne bloque pas ce nœud, mais les références en aval peuvent échouer.
Ajoutez le paramètre d'affectation en amont aux paramètres d'entrée du nœud en aval. Son utilisation est similaire à celle d'un nœud d'affectation. Pour plus de détails, consultez la rubrique Nœud d'affectation pour terminer la configuration.
Après avoir configuré les Output Parameters, localisez et identifiez le Add Mode dont la valeur est Added Automatically, puis notez son Output Name. Les nœuds en aval peuvent utiliser ce Output Name pour lier une dépendance à ce nœud.
Configurer un paramètre d'entrée
Configurez les paramètres d'entrée du nœud actuel dans les paramètres de contexte du nœud pour utiliser les paramètres de sortie des nœuds en amont.
Les paramètres d'entrée d'un nœud reçoivent les paramètres de sortie de ses nœuds en amont. Après en avoir ajouté un, référencez-le dans le code comme vous le feriez pour une variable de paramètre de planification.
Vous ne pouvez ajouter la sortie d'un nœud en amont en tant que paramètre d'entrée qu'après avoir établi une dépendance de ce nœud envers le nœud en amont.
Pour le nœud en amont, configurez les paramètres de sortie lors de l'exécution.
-
Configurez une dépendance amont/aval.
Sur le côté droit de l'éditeur du nœud en aval, cliquez sur Scheduling lors de l'exécution.
Dans la section et notez son Node Output. Dans la boîte de dialogue, saisissez et sélectionnez le paramètre de sortie configuré du nœud en amont lorsque vous Output Name lors de l'exécution.
Cliquez sur la colonne Add.
-
Configurez les paramètres d'entrée du nœud en aval.
Sous Add dans la section Input and Output Parameters, configurez les paramètres d'entrée du nœud actuel à l'aide du tableau ci-dessous :
Paramètre
Configuration
No.
Le système attribue et incrémente automatiquement le numéro.
Parameter name
Définissez un nom pour le paramètre d'entrée. Vous pouvez référencer la valeur transmise par le nœud en amont à l'aide de ce nom dans l'éditeur de nœud.
Value Source
La valeur provient du paramètre de sortie du nœud en amont et correspond à son résultat de sortie réel.
Description
Ajoutez une brève description.
Parent Node ID
<!--@p {"id":"39a81ebb36u50"}--br>Analyse automatiquement à partir du nœud en amont.
Source
Source du paramètre actuel.
Les options incluent Added Automatically, Analyze Code ou Add manually lors de l'exécution.
Operation
Save, Modify ou Delete.
Après avoir configuré les paramètres, cliquez sur Operation dans la colonne Save.
Utiliser les paramètres d'entrée dans les nœuds en aval
Référencez un paramètre d'entrée défini comme n'importe quelle autre variable système, en utilisant ${input_parameter_name}. L'exemple de nœud Shell suivant illustre cette procédure.
#!/bin/bash ## ##author: xxx est.aliyunid.com ##create xxx 10:06:02 ## echo 'input_from_up_const:' ${input_from_up_const} echo 'input_from_up_var:' ${input_from_up_var}
Lors de l'exécution des tâches, exécutez le workflow contenant les nœuds en amont et en aval afin qu'ils s'exécutent dans l'ordre. Sinon, les paramètres d'entrée en aval ne seront pas valides.
Variables globales prises en charge
-
Variables système
Variable système
Description
${projectId}
ID du projet.
${projectName}
Nom du projet MaxCompute.
${nodeId}
ID du nœud.
${gmtdate}
00:00:00 le jour de l'heure planifiée de l'instance, au format yyyy-MM-dd 00:00:00 lors de l'exécution.
${taskId}
ID de l'instance de tâche.
${seq}
Numéro de séquence de l'instance parmi les instances du même nœud ce jour-là.
${cyctime}
Heure planifiée de l'instance.
${status}
Statut de l'instance : SUCCESS ou FAILURE.
${bizdate}
Date métier.
${finishTime}
Heure de fin de l'instance.
${taskType}
Type d'exécution de l'instance : NORMAL, MANUAL, PAUSE, SKIP, UNCHOOSE ou SKIP_CYCLE.
${nodeName}
Nom du nœud.
Pour les autres configurations de paramètres, consultez la rubrique Formats des paramètres de planification lors de l'exécution.