Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SE APLICA A:
Azure Data Factory
Azure Synapse Analytics
Sugerencia
Data Factory en Microsoft Fabric es la próxima generación de Azure Data Factory, con una arquitectura más sencilla, inteligencia artificial integrada y nuevas características. Si no está familiarizado con la integración de datos, comience con Fabric Data Factory. Las cargas de trabajo de ADF existentes pueden actualizarse a Fabric para acceder a nuevas funcionalidades en ciencia de datos, análisis en tiempo real e informes.
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 el parámetro Wait on Completion (Esperar a que se complete) habilitado en la actividad.
Configuración del valor devuelto de canalización en la canalización secundaria
Hemos ampliado la actividad de establecer variable para incluir variables del sistema 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 |
|---|---|
| String | Valor de cadena constante. por ejemplo: "ADF es genial" |
| Expresión | Te permite referenciar el resultado 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 | Un valor numérico de tipo entero. Por ejemplo: 42 |
| Flotante | Valor numérico de tipo decimal. Por ejemplo: 2.71828 |
| Objeto | 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 período de espera de una actividad de espera.
- Un valor de cadena para definir la 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 profundizar más en un 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 de referencia. Si falta la clave a la que se hace referencia en la carga se producirá un error en la canalización.
Consideraciones especiales
Aunque se pueden incluir varias actividades de Establecer valor de devolución de canalización en una canalización, es importante asegurarse de que solo una de ellas se ejecuta en la canalización.
Para evitar lo indicado anteriormente sobre que falte una clave en la canalización de llamada, le recomendamos que tenga la misma lista de claves en 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.
El lenguaje de expresiones Azure Data Factory no admite directamente objetos JSON insertados. En su lugar, es necesario concatenar cadenas y expresiones correctamente.
Por ejemplo, para la siguiente expresión JSON:
{ "datetime": "@{utcnow()}", "date": "@{substring(utcnow(),0,10)}", "year": "@{substring(utcnow(),0,4)}", "month": "@{substring(utcnow(),5,2)}", "day": "@{substring(utcnow(),8,2)}" }Una expresión de Azure Data Factory equivalente sería:
@{ concat( '{', '"datetime": "', utcnow(), '", ', '"date": "', substring(utcnow(),0,10), '", ', '"year": "', substring(utcnow(),0,4), '", ', '"month": "', substring(utcnow(),5,2), '", ', '"day": "', substring(utcnow(),8,2), '"', '}' ) }
Contenido relacionado
Obtenga información sobre otra actividad de flujo de control relacionada: