Compartir vía


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.

Captura de pantalla con la actividad de ejecución de canalización.

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.

Captura de pantalla en la que se configura la actividad de ejecución de canalización para que espere a que se complete.

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

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

Captura de pantalla en la que se muestra la interfaz de usuario para el valor devuelto de la canalización.

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.

Captura de pantalla en la que se muestra la canalización de llamada.

Hay dos llamadas destacables 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. 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.

Captura de pantalla con el Valor devuelto de la canalización y Ramificació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.

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