Comparteix a través de


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.

Screenshot with ExecutePipeline Activity.

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.

Screenshot setting ExecutePipeline Activity to wait for completion.

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 Pipeline Return Value (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).

  1. Busque Establecer variable en el panel Actividades de la canalización y arrastre una actividad Eliminar al lienzo de la canalización.
  2. 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.
  3. Elija Pipeline return value (Valor devuelto de la canalización) para el tipo de variable.
  4. Seleccione Nuevo para agregar un par clave-valor nuevo.
  5. 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).

Screenshot shows the ui for pipeline return value.

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 impresionante"
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 Valor numérico del tipo entero. Por ejemplo, 42
Float 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 lo siguiente:

  • 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.

Screenshot shows the calling pipeline.

Hay dos llamadas notables al hacer referencia a los valores devueltos de la canalización.

  1. Con el tipo Object, puede expandirse aún más en el objeto json anidado, como @activity('Execute Pipeline1').output.pipelineReturnValue.keyName.nextLevelKey.
  2. 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. Se producirá un error en la canalización si falta la clave a la que se hace referencia en la carga.

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.

Screenshot with Pipeline Return Value and Branching.

Para evitar la situación de clave que falta en la canalización de llamada, descrita anteriormente, 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.

Obtenga información sobre otra actividad de flujo de control relacionada: