Impostare l'attività delle variabili in Azure Data Factory e Azure Synapse Analytics
SI APPLICA A: Azure Data Factory Azure Synapse Analytics
Suggerimento
Provare Data Factory in Microsoft Fabric, una soluzione di analisi all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!
Usare l'attività Imposta variabile per impostare il valore di una variabile esistente di tipo String, Bool o Array definita in una pipeline di Data Factory o Synapse oppure usare l'attività Imposta variabile per impostare un valore restituito della pipeline (anteprima).
Creare un'attività Imposta variabile con l'interfaccia utente
Per usare un'attività Imposta variabile in una pipeline, completare la procedura seguente:
- Selezionare lo sfondo dell'area di disegno della pipeline e usare la scheda Variabili per aggiungere una variabile:
Cercare Imposta variabile nel riquadro Attività pipeline e trascinare un'attività Imposta variabile nell'area di disegno della pipeline.
Selezionare l'attività Imposta variabile nell'area di disegno, se non è già selezionata, quindi selezionare la scheda Impostazioni per modificarne i dettagli.
Selezionare Variabile pipeline per il tipo di variabile.
Selezionare la variabile per la proprietà Name.
Immettere un'espressione per impostare il valore per le variabili. Questa espressione può essere un'espressione stringa letterale o qualsiasi combinazione di espressioni dinamiche , funzioni, variabili di sistema o output di altre attività.
Impostazione di un valore restituito della pipeline con l'interfaccia utente
L'attività Set Variable è stata espansa per includere una variabile di sistema speciale, denominata Valore restituito pipeline, che consente la comunicazione dalla pipeline figlio alla pipeline chiamante, nello scenario seguente.
Non è necessario definire la variabile, prima di usarla. Per altre informazioni, vedere Valore restituito della pipeline
Proprietà del tipo
Proprietà | Descrizione | Richiesto |
---|---|---|
name | Nome dell'attività nella pipeline | yes |
description | Testo che descrive l'attività | no |
type | Il valore deve essere impostato su SetVariable | yes |
variableName | Nome della variabile impostata da questa attività | yes |
value | Valore letterale stringa o valore di oggetto espressione a cui è assegnata la variabile specificata | yes |
Incremento di una variabile
Uno scenario comune che riguarda la variabile consiste nell'usare una variabile come iteratore all'interno di un'attività Until o ForEach . In un'attività Imposta variabile non è possibile fare riferimento alla variabile impostata nel value
campo, ovvero nessun riferimento automatico. Per ovviare a questa limitazione, impostare una variabile temporanea e quindi creare una seconda attività Imposta variabile . La seconda attività Imposta variabile imposta il valore dell'iteratore sulla variabile temporanea. Ecco un esempio di questo modello:
- Prima di tutto si definiscono due variabili: una per l'iteratore e una per l'archiviazione temporanea.
- Quindi si usano due attività per incrementare i valori
{
"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": []
}
}
Le variabili sono con ambito a livello di pipeline. Ciò significa che non sono thread-safe e possono causare comportamenti imprevisti e indesiderati se sono accessibili dall'interno di un'attività di iterazione parallela, ad esempio un ciclo ForEach, soprattutto quando il valore viene modificato anche all'interno di tale attività foreach.
Contenuto correlato
Informazioni su un'altra attività del flusso di controllo correlata: