Transformación Columna derivada en Asignación de Data Flow

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 están disponibles en las canalizaciones Azure Data Factory y Azure Synapse. Este artículo se aplica a los flujos de datos de asignación. Si carece de experiencia con las transformaciones, consulte el artículo de introducción Transformación de datos mediante flujos de datos de asignación.

Use la transformación Columna derivada para generar nuevas columnas en el flujo de datos o para modificar los campos existentes.

Creación y actualización de columnas

Para crear una columna derivada, puede generar una nueva columna o actualizar una existente. En el cuadro de texto Columna, especifique la columna que está creando. Para reemplazar una columna existente en el esquema, puede usar la lista desplegable de columnas. Para generar la expresión de la columna derivada, haga clic en el cuadro de texto Escribir expresión. Puede empezar a escribir la expresión o abrir el generador de expresiones para crear la lógica.

Derived column settings

Para agregar más columnas derivadas, haga clic en Agregar encima de la lista de columnas o en el icono con el signo más situado junto a una columna derivada existente. Elija Agregar columna o Add column pattern (Agregar patrón de columna).

New derived column selection

Patrones de columnas

En aquellos casos en los que el esquema no esté definido explícitamente o en los que desee actualizar en bloque un conjunto de columnas, le vendrá bien crear patrones de columnas. Los patrones de columnas permiten establecer correspondencias utilizando reglas basadas en los metadatos de las columnas y crear columnas derivadas en cada correspondencia. Para más información, vea cómo se crean patrones de columnas en la transformación de columnas derivadas.

Column patterns

Creación de esquemas mediante el generador de expresiones

Si utiliza el generador de expresiones del flujo de datos de asignación, puede crear, editar y administrar las columnas derivadas en la sección Columnas derivadas. Aparecerán todas las columnas que se crearon o modificaron en la transformación. Para elegir de forma interactiva qué columna o patrón está editando, haga clic en el nombre de la columna. Para agregar otra columna, seleccione Crear nueva y elija si desea agregar una sola columna o un patrón.

Create new column

Si trabaja con columnas complejas, puede crear subcolumnas. Para ello, haga clic en el icono con el signo más situado junto a una columna y seleccione Add subcolumn (Agregar subcolumna). Para obtener más información sobre cómo controlar tipos complejos en el flujo de datos, consulte Control de JSON en un flujo de datos de asignación.

Add subcolumn

Para obtener más información sobre cómo controlar tipos complejos en el flujo de datos, consulte Control de JSON en un flujo de datos de asignación.

Add complex column

Script de flujo de datos

Sintaxis

<incomingStream>
    derive(
           <columnName1> = <expression1>,
           <columnName2> = <expression2>,
           each(
                match(matchExpression),
                <metadataColumn1> = <metadataExpression1>,
                <metadataColumn2> = <metadataExpression2>
               )
          ) ~> <deriveTransformationName>

Ejemplo

El ejemplo siguiente es una columna derivada denominada CleanData que toma un flujo entrante MoviesYear y crea dos columnas derivadas. La primera columna derivada reemplaza la columna Rating por el valor de clasificación como un tipo entero. La segunda columna derivada es un patrón que coincide con cada columna cuyo nombre empieza con "movies". Para cada columna coincidente, crea una columna movie que es igual al valor de la columna coincidente con el prefijo "movie_".

En la interfaz de usuario, esta transformación es similar a la siguiente imagen:

Derive example

En el siguiente fragmento de código se muestra el script del flujo de datos para esta transformación:

MoviesYear derive(
                Rating = toInteger(Rating),
		        each(
                    match(startsWith(name,'movies')),
                    'movie' = 'movie_' + toString($$)
                )
            ) ~> CleanData