Establecimiento del valor devuelto de canalización en 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.
En el paradigma de canalización de llamada a canalización secundaria, puede usar la actividad de establecimiento de variable para devolver valores de la canalización secundaria a la canalización de llamada. En el escenario siguiente, tenemos una canalización secundaria mediante la actividad de ejecución de canalización. También queremos recuperar información de la canalización secundaria y, después, usarla en la canalización de llamada.
Introduce el valor devuelto de la canalización, un diccionario de pares clave-valor, que permite las comunicaciones entre las canalizaciones secundarias y la canalización primaria.
Requisito previo: llamada a una canalización secundaria
Como requisito previo, el diseño necesita una actividad de ejecución de canalización que llama a una canalización secundaria, con Wait on Completion habilitado en la actividad.
Configuración del valor devuelto de canalización en la canalización secundaria
Hemos expandido la actividad de establecimiento de variable para incluir variables del sistema de tipo Valor devuelto de la canalización. No es necesario definirlas en el nivel de canalización (en lugar de cualquier otra variable que use en la canalización).
- 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 de establecimiento de variable en el lienzo, si aún no está seleccionada y, después, su pestaña Variables para editar sus información.
- Elija Pipeline return value (Valor devuelto de la canalización) para el tipo de variable.
- Seleccione Nuevo para agregar un par clave-valor nuevo.
- El número de pares clave-valor que se pueden agregar solo está limitado por el límite de tamaño del JSON devuelto (4 MB).
Hay algunas opciones para los tipos de valor, entre las que se incluyen las siguientes:
Nombre del tipo | Descripción |
---|---|
Cadena | Valor de cadena constante. por ejemplo: "ADF es genial" |
Expression | Permite hacer referencia a la salida de actividades anteriores. Aquí puede usar la interpolación de cadenas para incluir valores de expresión en línea, como "The value is @{guid()}" . |
Matriz | Espera una matriz de valores de cadena. Presione la tecla "Entrar" para separar los valores de la matriz. |
Boolean | Verdadero o falso |
Null | Estado del marcador de posición de señal; el valor es null constante. |
Int | Espera un valor numérico del tipo entero. Por ejemplo: 42 |
Flotante | Valor numérico de tipo float. Por ejemplo: 2.71828 |
Object | Advertencia: Solo en casos de uso complicados. Permite insertar una lista de pares clave-valor para el valor. |
El valor del tipo de objeto se define de la siguiente manera:
[{"key": "myKey1", "value": {"type": "String", "content": "hello world"}},
{"key": "myKey2", "value": {"type": "String", "content": "hi"}}
]
Recuperación del valor en la canalización de llamadas
El valor devuelto de la canalización secundaria se convierte en la salida de la actividad de ejecución de canalización. Puede recuperar la información con @activity('Execute Pipeline1').output.pipelineReturnValue.keyName. El caso de uso es ilimitado. Por ejemplo, puede usar
- Un valor int de la canalización secundaria para definir el periodo de espera de una actividad de espera
- Un valor string para definir la dirección URL de la actividad web
- Una carga con valor expression para una actividad de script con fines de registro.
Hay dos llamadas destacables al hacer referencia a los valores devueltos de la canalización.
- Con el tipo Object, puede expandirse aún más en el objeto json anidado, como @activity('Execute Pipeline1').output.pipelineReturnValue.keyName.nextLevelKey
- Con el tipo Array, puede especificar el índice en la lista, con @activity('Execute Pipeline1').output.pipelineReturnValue.keyName[0]. El número tiene índice cero, lo que significa que comienza por 0.
Nota
Asegúrese de que el elemento keyName al que hace referencia existe en la canalización secundaria. El generador de expresiones de ADF no puede confirmar la comprobación referencial. Si falta la clave a la que se hace referencia en la carga se producirá un error en la canalización
Consideraciones especiales
Aunque puede incluir varias actividades Establecer valor devuelto de canalización en una canalización, es importante asegurarse de que solo se ejecuta una de ellas en la canalización.
Para evitar el problema clave que se ha descrito anteriormente al llamar a la canalización, le recomendamos que tenga la misma lista de claves para todas las ramas de la canalización secundaria. Considere la posibilidad de usar tipos null para las claves que no tienen valores en una rama específica.
Contenido relacionado
Obtenga información sobre otra actividad de flujo de control relacionada: