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.
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 exécuter l’activité de pipeline appeler un pipeline enfant, avec ’attente à l’achèvement activée sur l’activité.
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).
- 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.
- 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.
- Choisissez Valeur de retour de pipeline comme type de variable.
- Sélectionnez Nouvelle pour ajouter une nouvelle paire clé-valeur.
- Le nombre de paires clé-valeur qui peuvent être ajoutées est limité uniquement par la limite de taille du JSON retourné (4 Mo).
Il existe quelques options pour les types valeur, notamment
Nom de type | Description |
---|---|
Chaîne | Une valeur constante de type chaîne de caractères. 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 | Une valeur numérique de type entier. Par exemple : 42 |
Float | Une valeur numérique de type flottant. 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
- Valeur int du pipeline enfant pour définir la période d’attente d’une activité d’attente.
- Valeur string pour définir l’URL de l’activité web.
- Le contenu d’une valeur expression pour une activité de script à des fins de journalisation.
Il y a deux éléments notables pour référencer des valeurs de retour de pipeline.
- Avec le type Object, vous pouvez aller plus loin dans l’objet json imbriqué, par exemple @activity(’Execute Pipeline1’).output.pipelineReturnValue.keyName.nextLevelKey
- 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 référence pour vous. Le pipeline échoue si la clé référencée est manquante dans le contenu.
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.
Pour éviter le problème de clé manquante décrit précédemment dans le pipeline d’appel, 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.
Le langage d’expression Azure Data Factory ne prend pas directement en charge les objets JSON inline. Au lieu de cela, il est nécessaire de concaténer correctement des chaînes et des expressions.
Par exemple, pour l’expression JSON suivante :
{ "datetime": "@{utcnow()}", "date": "@{substring(utcnow(),0,10)}", "year": "@{substring(utcnow(),0,4)}", "month": "@{substring(utcnow(),5,2)}", "day": "@{substring(utcnow(),8,2)}" }
Une expression Azure Data Factory équivalente serait la suivante :
@{ concat( '{', '"datetime": "', utcnow(), '", ', '"date": "', substring(utcnow(),0,10), '", ', '"year": "', substring(utcnow(),0,4), '", ', '"month": "', substring(utcnow(),5,2), '", ', '"day": "', substring(utcnow(),8,2), '"', '}' ) }
Contenu connexe
Découvrir une autre activité de flux de contrôle connexe :