Définir la valeur de retour d’un pipeline dans Azure Data Factory et Azure Synapse Analytics

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Conseil

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !

Dans le paradigme pipeline appelant-pipeline enfant, vous pouvez utiliser l’activité Définir une variable pour retourner des valeurs du pipeline enfant au pipeline appelant. Dans le scénario suivant, nous avons un pipeline enfant par le biais de l’activité Exécuter le pipeline. Et nous voulons récupérer des informations du pipeline enfant pour les utiliser ensuite dans le pipeline appelant.

Screenshot with ExecutePipeline Activity.

Introduisez une valeur de retour de pipeline, un dictionnaire de paires clé-valeur, qui permet de communiquer entre les pipelines enfants et le pipeline parent.

Prérequis - Appel d’un pipeline enfant

En tant que prérequis, votre conception a besoin d’une activité d’exécution de pipeline appelant un pipeline enfant, avec l’activation de l’attente sur l’activité.

Screenshot setting ExecutePipeline Activity to wait for completion.

Configurer la valeur de retour de pipeline dans le pipeline enfant

Nous avons développé l’activité Définir une variable pour inclure la Valeur de retour de pipeline des variables système. Vous n’avez pas besoin de les définir au niveau du pipeline (contrairement à d’autres variables que vous utilisez dans le pipeline).

  1. Recherchez Définir une variable dans le volet Activités de pipeline, puis faites glisser une activité Définir une variable vers le canevas du pipeline.
  2. Sélectionnez l’activité Définir une variable sur le canevas si elle ne l’est pas déjà, puis son onglet Variables pour en modifier les détails.
  3. Choisissez Valeur de retour de pipeline comme type de variable.
  4. Sélectionnez Nouvelle pour ajouter une nouvelle paire clé-valeur.
  5. Le nombre de paires clé-valeur qui peuvent être ajoutées est limité uniquement par la limite de taille du JSON retourné (4 Mo).

Screenshot shows the ui for pipeline return value.

Il existe quelques options pour les types valeur, notamment

Nom de type Description
Chaîne Valeur de chaîne constante. par exemple : « ADF est génial »
Expression Il vous permet de référencer la sortie des activités précédentes. Vous pouvez utiliser l’interpolation de chaîne ici pour inclure des valeurs d’expression en ligne telles que "The value is @{guid()}".
Tableau Il attend un tableau de valeurs de chaîne. Appuyez sur la touche « Entrée » pour séparer les valeurs dans le tableau.
Boolean True ou False
Null État de l’espace réservé aux signaux ; la valeur est une constante null
Int Valeur numérique du type entier. Par exemple 42
Float Valeur numérique du type float. Par exemple : 2.71828
Object Avertissement Cas d’usage compliqués uniquement. Il vous permet d’incorporer une liste de paires clé-valeur comme type pour la valeur.

La valeur du type Object est définie comme suit :

[{"key": "myKey1", "value": {"type": "String", "content": "hello world"}}, 
 {"key": "myKey2", "value": {"type": "String", "content": "hi"}}
]

Récupération de la valeur dans le pipeline appelant

La valeur de retour de pipeline du pipeline enfant devient la sortie de l’activité Exécuter le pipeline. Vous pouvez récupérer les informations avec @activity('Execute Pipeline1').output.pipelineReturnValue.keyName. Le cas d’usage est illimité. Par exemple, vous pouvez utiliser

  • Une valeur int du pipeline enfant pour définir la période d’attente d’une activité d’attente
  • Une valeur de chaîne pour définir l’URL de l’activité web
  • Le contenu d’une valeur expression pour une activité de script à des fins de journalisation.

Screenshot shows the calling pipeline.

Il existe deux légendes notables pour référencer les valeurs de retour de pipeline.

  1. Avec le type Object, vous pouvez aller plus loin dans l’objet json imbriqué, par exemple @activity('Execute Pipeline1').output.pipelineReturnValue.keyName.nextLevelKey
  2. Avec le type Array, vous pouvez spécifier l’index dans la liste avec @activity('Execute Pipeline1').output.pipelineReturnValue.keyName[0]. Le nombre est indexé à zéro, ce qui signifie qu’il commence à 0.

Notes

Vérifiez que le keyName que vous référencez existe dans votre pipeline enfant. Le générateur d’expressions ADF ne peut pas confirmer la case activée référentielle pour vous. Le pipeline échoue si la clé référencée est manquante dans la charge utile

Points particuliers à prendre en compte

Bien que vous puissiez inclure plusieurs activités définir la valeur de retour de pipeline dans un pipeline, il est important de s’assurer qu’une seule d’entre elles est exécutée dans le pipeline.

Screenshot with Pipeline Return Value and Branching.

Pour éviter la situation de clé manquante dans le pipeline appelant, décrit ci-dessus, nous vous encourageons à avoir la même liste de clés pour toutes les branches du pipeline enfant. Envisagez d’utiliser des types null pour les clés qui n’ont pas de valeurs, dans une branche spécifique.

Découvrir une autre activité de flux de contrôle connexe :