Activité de définition de variable 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 !
Utilisez l’activité Définir une variable pour définir la valeur d’une variable existante de type Chaîne, Booléen ou Tableau définie dans un pipeline Data Factory ou Synapse, ou utilisez l’activité Définir une variable pour définir une valeur de retour de pipeline (préversion).
Créer une activité Définir une variable avec l’interface utilisateur
Pour utiliser une activité Définir une variable dans un pipeline, procédez comme suit :
- Sélectionnez l’arrière-plan du canevas du pipeline et utilisez l’onglet Variables pour ajouter une variable :
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 n’est pas déjà sélectionnée, puis sélectionnez l’onglet Paramètres pour en modifier les détails.
Sélectionnez Variable de pipeline pour votre Type de variable.
Sélectionnez la variable pour la propriété Name.
Entrez une expression pour définir la valeur des variables. Cette expression peut être une expression de chaîne littérale ou toute combinaison d’expressions dynamiques, de fonctions, de variables système ou de sorties d’autres activités.
Définition d’une valeur de retour de pipeline avec l’interface utilisateur
Nous avons développé l’activité de définition de variable pour inclure une variable système spéciale, nommée Valeur renvoyée du pipeline, permettant la communication entre le pipeline enfant et le pipeline appelant, dans le scénario suivant.
Vous n’avez pas besoin de définir la variable avant de l’utiliser. Pour plus d’informations, consultez Valeur de retour de pipeline
Propriétés type
Propriété | Description | Obligatoire |
---|---|---|
name | Nom de l’activité dans le pipeline | Oui |
description | Texte décrivant l’activité | non |
type | Doit être défini sur SetVariable | Oui |
variableName | Nom de la variable définie par cette activité | Oui |
value | Chaîne littérale ou valeur d’objet d’expression à laquelle la variable est affectée | Oui |
Incrémentation d’une variable
Un scénario courant impliquant une variable consiste à utiliser une variable comme itérateur dans une activité Until ou ForEach. Dans une activité de définition de la variable, vous ne pouvez pas référencer la variable définie dans le value
champ, c’est-à-dire qu’il n’y a pas d’autoréférencement. Pour contourner cette limitation, définissez une variable temporaire, puis créez une deuxième activité Définir une variable. La deuxième activité Définir une variable définit la valeur de l’itérateur sur la variable temporaire. Voici un exemple illustrant ce modèle :
- Vous devez d’abord définir deux variables : l’une pour l’itérateur et l’autre pour le stockage temporaire.
- Vous utilisez ensuite deux activités pour incrémenter des valeurs
{
"name": "pipeline1",
"properties": {
"activities": [
{
"name": "Increment J",
"type": "SetVariable",
"dependsOn": [],
"policy": {
"secureOutput": false,
"secureInput": false
},
"userProperties": [],
"typeProperties": {
"variableName": "temp_j",
"value": {
"value": "@add(variables('counter_i'),1)",
"type": "Expression"
}
}
},
{
"name": "Set I",
"type": "SetVariable",
"dependsOn": [
{
"activity": "Increment J",
"dependencyConditions": [
"Succeeded"
]
}
],
"policy": {
"secureOutput": false,
"secureInput": false
},
"userProperties": [],
"typeProperties": {
"variableName": "counter_i",
"value": {
"value": "@variables('temp_j')",
"type": "Expression"
}
}
}
],
"variables": {
"counter_i": {
"type": "Integer",
"defaultValue": 0
},
"temp_j": {
"type": "Integer",
"defaultValue": 0
}
},
"annotations": []
}
}
Les variables sont délimitées au niveau du pipeline. Cela signifie qu’elles ne sont pas thread-safe et peuvent entraîner un comportement inattendu et indésirable si elles sont accessibles à partir d’une activité d’itération parallèle comme une boucle ForEach, en particulier lorsque la valeur est également modifiée au sein de cette activité ForEach.
Contenu connexe
Découvrir une autre activité de flux de contrôle connexe :