Tous les produits
Search
Centre de documentation

DataWorks:Assignment node

Dernière mise à jour :Aug 09, 2026

Un nœud d'assignation exécute un script court (ODPS SQL, Python 2 ou Shell) et transmet sa sortie directement en tant que paramètre aux nœuds en aval. Utilisez-le pour partager des valeurs dynamiques, telles que des résultats de requête ou des chaînes calculées, entre les nœuds d'un flux de travail sans passer par une table intermédiaire.

Contraintes clés : Le paramètre outputs ne doit pas dépasser 2 Mo. Les paramètres sont transmis uniquement aux nœuds immédiatement en aval.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un espace de travail DataWorks avec une édition Standard ou supérieure

  • Un utilisateur RAM ajouté à l'espace de travail et disposant des autorisations de développeur

Fonctionnement

Le nœud d'assignation transfère les données via un paramètre de sortie généré par le système nommé outputs.

  • Nœud d'assignation (producteur) : DataWorks capture la dernière sortie du script et l'affecte au paramètre outputs.

  • Nœud en aval (consommateur) : Créez un paramètre d'entrée sur le nœud en aval, mappez-le sur outputs et référencez-le dans votre script à l'aide de la syntaxe ${param}.

Le format de sortie de outputs dépend du langage du script :

Langage Source Format de sortie
ODPS SQL Dernière instruction SELECT Tableau bidimensionnel
Python 2 Dernière instruction print Tableau unidimensionnel (séparé par ,)
Shell Dernière instruction echo Tableau unidimensionnel (séparé par ,)

Configurer un nœud d'assignation et transmettre la sortie à un nœud Shell

L'exemple suivant illustre le flux de travail complet : configurer un nœud d'assignation ODPS SQL, le connecter à un nœud Shell en aval et référencer la valeur transmise dans le script Shell.

Étape 1 : Configurer le nœud d'assignation

  1. Connectez-vous à la console DataWorks. Dans le volet de navigation de gauche, cliquez sur Data Development & O&M > Data Development.

  2. Dans votre flux de travail, créez et ouvrez un nœud d'assignation. Sur la page de configuration, sélectionnez ODPS SQL comme langage et rédigez votre requête.

    select * from xc_dpe_e2.xc_rpt_user_info_d where dt='20191008' limit 10;
  3. (Facultatif) Cliquez sur Properties dans le volet droit et sélectionnez l'onglet Input and Output Parameters pour confirmer que DataWorks a automatiquement créé un paramètre de sortie nommé outputs.

Étape 2 : Configurer le nœud Shell

  1. Créez un nœud Shell. Dans le canevas du flux de travail, faites glisser une connexion du nœud d'assignation vers le nœud Shell pour le définir comme nœud en aval.

  2. Sur la page de configuration du nœud Shell, cliquez sur Properties dans le volet droit et sélectionnez l'onglet Input and Output Parameters.

  3. Dans la section Input Parameters, cliquez sur Create.

  4. Dans la boîte de dialogue, sélectionnez le paramètre outputs du nœud d'assignation et définissez un nom pour le paramètre d'entrée du nœud actuel, par exemple param.

    Cette étape crée une dépendance entre le nœud Shell et le nœud d'assignation.
  5. Référencez la valeur dans le script du nœud Shell à l'aide de la syntaxe ${param} :

    ${param} , ${param[0]} et ${param[0][1]} utilisent la syntaxe des variables DataWorks, et non le Shell standard. DataWorks remplace statiquement ces espaces réservés par des valeurs réelles avant de soumettre le script pour exécution.
    echo '${param}';
    echo 'First row: '${param[0]};
    echo 'Second field of the first row: '${param[0][1]};

Étape 3 : Exécuter et vérifier

Ouvrez le flux métier et cliquez sur Run dans la barre d'outils pour exécuter le flux de travail. La sortie attendue est similaire à ce qui suit :

Full result set: value1,value2
value3,value4
First row: value1,value2
Second field of the first row: value2

Pour effectuer un test dans un environnement planifié, validez le nœud dans l'environnement de développement, accédez à Operation Center et utilisez le remplissage des données pour valider l'exécution.

Exemples par langage

Les exemples suivants présentent le code du nœud d'assignation, le script de référence du nœud Shell en aval et la sortie attendue pour chaque langage pris en charge.

Transmettre un résultat ODPS SQL

Le résultat d'une instruction SQL SELECT est transmis sous forme de tableau bidimensionnel.

Nœud d'assignation

select * from xc_dpe_e2.xc_rpt_user_info_d where dt='20191008' limit 2;

Nœud Shell (paramètre d'entrée param mappé sur outputs)

# Full 2D array
echo "Full result set: ${param}"

# First row (1D array)
echo "First row: ${param[0]}"

# Second field of the first row
echo "Second field of the first row: ${param[0][1]}"

Sortie attendue

Full result set: value1,value2
value3,value4
First row: value1,value2
Second field of the first row: value2

Transmettre une sortie Python 2

La sortie de la dernière instruction print est divisée par des virgules et transmise sous forme de tableau unidimensionnel.

Nœud d'assignation

print "hello,dataworks";

Nœud Shell (paramètre d'entrée param mappé sur outputs)

# Full 1D array
echo "Full result set: ${param}"

# Elements by index
echo "First element: ${param[0]}"
echo "Second element: ${param[1]}"

Sortie attendue

Full result set: "hello","dataworks"
First element: hello
Second element: dataworks

Transmettre une sortie Shell

La sortie de la dernière instruction echo est divisée par des virgules et transmise sous forme de tableau unidimensionnel.

Nœud d'assignation

echo "hello,dataworks";

Nœud Shell (paramètre d'entrée param mappé sur outputs)

# Full 1D array
echo "Full result set: ${param}"

# Elements by index
echo "First element: ${param[0]}"
echo "Second element: ${param[1]}"

Sortie attendue

Full result set: "hello","dataworks"
First element: hello
Second element: dataworks

Limitations

Contrainte Détail
Portée Les paramètres sont transmis uniquement aux nœuds immédiatement en aval ; ils ne peuvent pas ignorer les nœuds dans la chaîne de dépendance.
Taille Le paramètre outputs ne doit pas dépasser 2 Mo. Si cette limite est dépassée, le nœud d'assignation échoue.
Aucun commentaire N'incluez pas de commentaires dans le code du nœud d'assignation. Les commentaires interfèrent avec l'analyse de la sortie et peuvent entraîner l'échec du nœud ou produire des valeurs incorrectes.
Aucune clause WITH La clause WITH n'est pas prise en charge en mode ODPS SQL.

Étapes suivantes

  • Nœuds de boucle : Pour transmettre la sortie d'un nœud d'assignation à un nœud for-each ou do-while, consultez Configurer un nœud for-each et Configurer un nœud do-while.

  • Assignation de paramètres intégrée : Plusieurs types de nœuds prennent en charge l'assignation de paramètres intégrée et peuvent obtenir le même résultat sans nécessiter de nœud d'assignation distinct. Il s'agit notamment de : EMR Hive, Hologres SQL, EMR Spark SQL, AnalyticDB for PostgreSQL, ClickHouse SQL et MySQL.