Actividad Establecer variable de Azure Data Factory y Azure Synapse Analytics
SE APLICA A: Azure Data Factory Azure Synapse Analytics
Sugerencia
Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.
Use la actividad Establecer variable para establecer el valor de una variable existente de tipo String, Bool o Array definida en una canalización de Data Factory o Synapse, o bien, use la actividad Establecer variable para establecer el valor devuelto de una canalización (versión preliminar).
Creación de una actividad Establecer variable con la interfaz de usuario
Para usar una actividad para establecer una variable en una canalización, complete los pasos siguientes:
- Seleccione el fondo de lienzo de la canalización y use la pestaña Variables para agregar una variable:
Busque Establecer variable en el panel Actividades de la canalización y arrastre una actividad Eliminar al lienzo de la canalización.
Seleccione la actividad Establecer variable en el lienzo, si aún no está seleccionada, y la pestaña Configuración para editar sus detalles.
Seleccione Variable de canalización para Tipo de variable.
Seleccione la variable para la propiedad Name.
Escriba una expresión para establecer el valor de las variables. Esta expresión puede ser una expresión de cadena literal o cualquier combinación de expresiones y funciones dinámicas, variables del sistema o salidas de otras actividades.
Configuración del valor devuelto de una canalización con la interfaz de usuario
Hemos ampliado Establecimiento de la actividad de variable para incluir una variable de sistema especial, denominada Valor devuelto de canalización, lo que permite la comunicación desde la canalización secundaria a la canalización de llamada, en el siguiente escenario.
No es necesario definir la variable antes de usarla. Para obtener más información, consulte Valor devuelto de canalización.
Propiedades de tipo
Propiedad | Descripción | Obligatorio |
---|---|---|
name | Nombre de la actividad en la canalización | sí |
description | Texto que describe para qué se usa la actividad | no |
type | Debe establecerse en SetVariable | sí |
variableName | Nombre de la variable que esta actividad establece | sí |
value | Literal de cadena o valor de objeto de expresión al que se asigna la variable | sí |
Incremento de una variable
Un escenario común que incluye variables es el uso de una variable como iterador dentro de una actividad Until o ForEach. En una actividad Establecer variable no se puede hacer referencia a la variable que se establece en el campo value
, es decir, no hay autorreferencia. Para solucionar esta limitación, establezca una variable temporal y, a continuación, cree una segunda actividad Establecer variable. La segunda actividad Establecer variable establece el valor del iterador en la variable temporal. A continuación se muestra un ejemplo de este patrón:
- En primer lugar, defina dos variables: una para el iterador y otra para el almacenamiento temporal.
- A continuación, se usan dos actividades para incrementar los valores
{
"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": []
}
}
El ámbito de las variables es el nivel de canalización. Esto significa que no son seguras para subprocesos y que pueden provocar un comportamiento inesperado y no deseado si se accede a ellas desde dentro de una actividad de iteración paralela, como un bucle ForEach, especialmente si el valor también se modifica dentro de esa actividad foreach.
Contenido relacionado
Obtenga información sobre otra actividad de flujo de control relacionada: