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.
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.
Para agregar parámetros adicionales rápidamente, puede seleccionar Nuevo parámetro y especificar el nombre y el tipo.
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.
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.
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.
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.
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')
.
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
.
A @pipeline.parameters.pipelineParam
se le asigna un valor de abs(1)
en tiempo de ejecución.
Cuando se hace referencia a $intParam
en una expresión como una columna derivada, evaluará abs(1)
y devolverá 1
.
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))
.
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'