Comparteix a través de


Parametrización de flujos de datos de asignación

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.

Los flujos de datos de asignación de las canalizaciones de Azure Data Factory y Synapse admiten el uso de parámetros. Defina parámetros en la definición del flujo de datos y úselos después en las expresiones. La canalización que realiza la llamada puede establecer los valores de parámetro mediante la actividad de ejecución de Data Flow. Dispone de tres opciones para establecer los valores en las expresiones de la actividad del flujo de datos:

  • Usar el lenguaje de expresiones del flujo de control de canalizaciones para establecer un valor dinámico
  • Usar el lenguaje de expresiones del flujo de datos para establecer un valor dinámico
  • Usar cualquiera de estos dos lenguajes de expresiones para establecer un valor literal estático

Use esta funcionalidad para hacer que los flujos de datos sean flexibles y reutilizables y estén destinados para un uso general. Puede parametrizar las expresiones y los valores del flujo de datos con estos parámetros.

Creación de parámetros en un flujo de datos de asignación

Para agregar parámetros a un flujo de datos, haga clic en la parte en blanco del lienzo del flujo de datos para ver las propiedades generales. En el panel de configuración, verá una pestaña denominada Parámetro. Seleccione Nuevo para generar un nuevo parámetro. Para cada parámetro, debe asignar un nombre, seleccionar un tipo y opcionalmente establecer un valor predeterminado.

Screenshot of create Data Flow parameters.

Uso de parámetros en un flujo de datos de asignación

Se puede hacer referencia a los parámetros en cualquier expresión de flujo de datos. Los parámetros comienzan por $ y son inmutables. encontrará la lista de parámetros disponibles en el Generador de expresiones, en la pestaña Parámetros.

Screenshot shows the available parameters in the Parameters tab.

Para agregar parámetros adicionales rápidamente, puede seleccionar Nuevo parámetro y especificar el nombre y el tipo.

Screenshot shows the parameters in the Parameters tab with new parameters added.

Uso de servicios vinculados con parámetros en un flujo de datos de asignación

Los servicios vinculados con parámetros se pueden usar en un flujo de datos de asignación (para tipos de origen insertados o conjuntos de datos).

Para el tipo de origen insertado, los parámetros del servicio vinculado se exponen en la configuración de la actividad de flujo de datos dentro de la canalización, tal y como se muestra a continuación.

Screenshot shows the use of linked service parameters in the data flow.

Para el tipo de origen del conjunto de datos, los parámetros del servicio vinculado se exponen directamente en la configuración del conjunto de datos.

Asignación de valores de parámetros de una canalización

Una vez que haya creado un flujo de datos con parámetros, podrá ejecutarlo desde una canalización con la actividad de ejecución de Data Flow. Después de agregar la actividad al lienzo de la canalización, se le mostrarán los parámetros de flujo de datos disponibles en la pestaña Parámetros de la actividad.

Al asignar valores de parámetro, puede usar el lenguaje de expresiones de canalización o el lenguaje de expresiones de flujo de datos basado en tipos de Spark. Cada flujo de datos de asignación puede tener cualquier combinación de parámetros de expresión de canalización y flujo de datos.

Screenshot shows the Parameters tab with Data Flow expression selected for the value of myparam.

Parámetros de expresión de canalización

Los parámetros de expresión de canalización permiten hacer referencia a variables del sistema, funciones, parámetros de canalización y variables similares a otras actividades de canalización. Al hacer clic en Pipeline expression (Expresión de canalización), se abre un panel de navegación lateral que le permite escribir una expresión mediante el generador de expresiones.

Screenshot shows the expression builder pane.

Al hacer referencia a los parámetros de canalización, estos se evalúan y, a continuación, se usa su valor en el lenguaje de expresiones de flujo de datos. No es necesario que el tipo de expresión de canalización coincida con el tipo de parámetro de flujo de datos.

Literales de cadena y expresiones

Al asignar un parámetro de expresión de canalización de tipo string, se agregarán comillas de forma predeterminada y el valor se evaluará como literal. Para leer el valor del parámetro como una expresión de flujo de datos, active la casilla de expresión situada junto al parámetro.

Screenshot shows the Data flow parameters pane Expression selected for a parameter.

Si el parámetro de flujo de datos stringParam hace referencia a un parámetro de canalización con el valor upper(column1).

  • Si se comprueba la expresión, $stringParam se evalúa como el valor de column1 en mayúsculas.
  • Si no se comprueba la expresión (comportamiento predeterminado), $stringParam se evalúa como 'upper(column1)'

Pasar marcas de tiempo

En el lenguaje de expresiones de canalización, las variables del sistema como pipeline().TriggerTime y las funciones como utcNow() devuelven marcas de tiempo como cadenas con el formato "aaaa-MM-dd'T'HH:mm:ss.SSSSSSZ". Para convertirlas en parámetros de flujo de datos de tipo timestamp, use la interpolación de cadenas para incluir la marca de tiempo deseada en una función toTimestamp(). Por ejemplo, para convertir la hora del desencadenador de la canalización en un parámetro de flujo de datos, puede utilizar toTimestamp(left('@{pipeline().TriggerTime}', 23), 'yyyy-MM-dd\'T\'HH:mm:ss.SSS').

Screenshot shows the Parameters tab where you can enter a trigger time.

Nota:

Los flujos de datos solo admiten un máximo 3 dígitos de milisegundo. La función left() se usa para recortar los dígitos adicionales.

Ejemplo de parámetro de canalización

Supongamos que tiene un parámetro de entero intParam que hace referencia a un parámetro de canalización de tipo string, @pipeline.parameters.pipelineParam.

Screenshot shows the Parameters tab with parameters named stringParam and intParam.

A @pipeline.parameters.pipelineParam se le asigna un valor de abs(1) en tiempo de ejecución.

Screenshot shows the Parameters tab with the value of a b s (1) selected.

Cuando se hace referencia a $intParam en una expresión como una columna derivada, evaluará abs(1) y devolverá 1.

Screenshot shows the columns value.

Parámetros de expresiones de flujo de datos

Al seleccionar Data flow expression (Expresión de flujo de datos), se abrirá el generador de expresiones de flujo de datos. Podrá hacer referencia a funciones, a otros parámetros y a cualquier columna de esquema definida en el flujo de datos. Esta expresión se evaluará tal cual cuando se haga referencia a ella.

Nota

Si pasa una expresión no válida o hace referencia a una columna de esquema que no existe en esa transformación, el parámetro se evaluará como null.

Paso de un nombre de columna como un parámetro

Un patrón común es pasar un nombre de columna como un valor de parámetro. Si la columna está definida en el esquema de flujo de datos, puede hacer referencia a ella directamente como una expresión de cadena. Si la columna no está definida en el esquema, use la función byName(). Recuerde convertir la columna a su tipo adecuado con una función de conversión como toString().

Por ejemplo, si desea asignar una columna de cadena basada en un parámetro columnName, puede agregar una transformación de columna derivada igual a toString(byName($columnName)).

Passing in a column name as a parameter

Nota:

En las expresiones de flujo de datos no se admite la interpolación de cadenas (con sustitución de variables dentro de la cadena). En su lugar, debe concatenarse la expresión en valores de cadena. Por ejemplo: 'string part 1' + $variable + 'string part 2'