Módulo 2: Transformación de datos con un flujo de datos en Data Factory

Este módulo tarda unos 25 minutos en crear un flujo de datos, aplicar transformaciones y mover los datos sin procesar de la tabla Bronze a una tabla Gold de Lakehouse.

Con los datos sin procesar cargados en la tabla Bronze de Lakehouse del último módulo, ahora puede preparar esos datos y enriquecerlos combinándolos con otra tabla que contiene descuentos para cada proveedor y sus viajes durante un día determinado. Esta tabla Gold final de Lakehouse final se carga y está lista para su consumo.

Los pasos generales del flujo de datos son los siguientes:

  • Obtenga datos sin procesar de la tabla de Lakehouse creada por el actividad de copia en el Módulo 1: Creación de una canalización con Data Factory.
  • Transforme los datos importados desde la tabla de Lakehouse.
  • Conéctese a un archivo CSV que contenga datos de descuentos.
  • Transforme los datos de descuentos.
  • Combine los datos de viajes y descuentos.
  • Cargue la consulta de salida en la tabla Gold de Lakehouse.

Obtención de datos de una tabla de Lakehouse

  1. En la barra lateral, seleccione Crear y, a continuación, Dataflow Gen2 para crear un nuevo flujo de datos gen2. Screenshot showing the Fabric Create page with the Dataflow Gen2 button highlighted.

  2. En el nuevo menú de flujo de datos, seleccione Obtener datos y, a continuación, Más....

    Screenshot showing the Dataflow menu with Get data button highlighted and the More... option highlighted from its menu.

  3. Busque y seleccione el conector de Lakehouse.

    Screenshot showing the selection of the Lakehouse data source from the Choose data source menu.

  4. Aparece el cuadro de diálogo Conectar al origen de datos y se crea automáticamente una nueva conexión en función del usuario que ha iniciado sesión actualmente. Seleccione Siguiente.

    Screenshot showing the configuration of the data source settings for your new Lakehouse with your current signed in user, and the Next button selected.

  5. Aparece el cuadro de diálogo Seleccionar datos. Use el panel de navegación para buscar la instancia de Lakehouse que creó para el destino en el módulo anterior y seleccione la tabla de datos Tutorial_Lakehouse.

    Screenshot showing the Lakehouse browser with the workspace, lakehouse, and table created with the Copy activity in module 1.

  6. (Opcional) Una vez que el lienzo se rellena con los datos, puede establecer la información del perfil de columna, ya que esto resulta útil para la generación de perfiles de datos. Puede aplicar la transformación correcta y dirigirse a los valores de datos correctos en función de ello.

    Para hacerlo, seleccione Opciones en el panel de la cinta de opciones, seleccione las tres primeras opciones en Perfil de columna y, a continuación, seleccione Aceptar.

    Screenshot showing the column options selection for your data.

Transformación de los datos importados desde Lakehouse

  1. Seleccione el icono de tipo de datos en el encabezado de columna de la segunda columna, IpepPickupDatetime, para mostrar un menú desplegable y seleccionar el tipo de datos en el menú para convertir la columna del tipo Date/Time a Date . Screenshot showing the selection of the Date data type for the IpepPickupDatetime column.

  2. (Opcional) En la pestaña Inicio de la cinta de opciones, seleccione la opción Elegir columnas del grupo Administrar columnas.

    Screenshot showing the Choose columns button on the Home tab of the dataflow editor.

  3. (Opcional) En el cuadro de diálogo Elegir columnas, anule la selección de algunas columnas que aparecen aquí y, a continuación, seleccione Aceptar.

    • lpepDropoffDatetime
    • puLocationId
    • doLocationId
    • pickupLatitude
    • dropoffLongitude
    • rateCodeID

    Screenshot showing the Choose columns dialog with the identified columns deselected.

  4. Seleccione el menú desplegable de filtro y ordenación de la columna storeAndFwdFlag. (Si ve una advertencia de que La lista puede estar incompleta, seleccione Cargar más para ver todos los datos).

    Screenshot showing the filter and sort dialog for the column.

  5. Seleccione "Y" para mostrar solo las filas en las que se aplicó un descuento y, a continuación, seleccione Aceptar.

    Screenshot showing the values filter with only 'Y' selected.

  6. Selecciona el menú desplegable de ordenación y filtro de la columna Ipep_Pickup_Datetime, selecciona Filtros de fecha y elige el filtro Entre... proporcionado para los tipos Fecha y hora.

    Screenshot showing the selection of the Date filters option in the column sort and format dropdown.

  7. En el cuadro de diálogo Filtrar filas, seleccione fechas entre el 1 de enero de 2015 y el 31 de enero de 2015 y, a continuación, seleccione Aceptar.

    Screenshot showing the selection of the dates in January 2015.

Conexión a un archivo CSV que contiene datos de descuento

Ahora, con los datos de los viajes en su lugar, queremos cargar los datos que contienen los descuentos respectivos para cada día y VendorID, y preparar los datos antes de combinarlos con los datos de viajes.

  1. En la pestaña Inicio del menú del editor del flujo de datos, seleccione la opción Obtener datos y, a continuación, elija Texto/CSV.

    Screenshot showing the selection of the Get data menu from the Home tab, with Text/CSV highlighted.

  2. En el cuadro de diálogo Conectarse al origen de datos, proporcione los detalles siguientes:

    • URL o ruta del archivo - https://raw.githubusercontent.com/ekote/azure-architect/master/Generated-NYC-Taxi-Green-Discounts.csv
    • Tipo de autenticación: anónimo

    Seleccione Siguiente.

    Screenshot showing the Text/CSV settings for the connection.

  3. En el cuadro de diálogo Vista previa de los datos del archivo, seleccione Crear.

    Screenshot showing the Preview file data dialog with the Create button highlighted.

Transformación de los datos de descuento

  1. Al revisar los datos, vemos que los encabezados parecen estar en la primera fila. Para promoverlos a los encabezados, seleccione el menú contextual de la tabla en la parte superior izquierda del área de cuadrícula de vista previa para seleccionar Usar la primera fila como encabezados.

    Screenshot showing the selection of the Use first row as headers option from the table context menu.

    Nota:

    Después de promover los encabezados, puede ver un nuevo paso agregado al panel Pasos aplicados en la parte superior del editor de flujo de datos a los tipos de datos de las columnas.

  2. Haga clic con el botón derecho en la columna VendorID y, en el menú contextual que se muestra, seleccione la opción Anular dinamización de otras columnas. Esto le permite transformar columnas en pares de valor de atributo, donde las columnas se convierten en filas.

    Screenshot showing the context menu for the VendorID column with the Unpivot other columns selection highlighted.

  3. Con la tabla sin dinamizar, cambie el nombre de las columnas Atributo y Valor haciendo doble clic en ellas y cambiando Atributo a Fecha y Valor a Descuento.

    Screenshot showing the table columns after renaming Attribute to Date and Value to Discount.

  4. Cambie el tipo de datos de la columna Fecha. Para ello, seleccione el menú tipo de datos situado a la izquierda del nombre de la columna y elija Fecha.

    Screenshot showing the selection of the Date data type for the Date column.

  5. Seleccione la columna Descuento y, a continuación, seleccione la pestaña Transformar en el menú. Seleccione la columna Número y, a continuación, seleccione Transformaciones numéricas Estándar en el submenú y elija Dividir.

    Screenshot showing the selection of the Divide option to transform data in the Discount column.

  6. En el cuadro de diálogo Dividir, escriba el valor 100.

    Screenshot showing the Divide dialog with the value 100 entered and the OK button highlighted.

Combinar los datos de viajes y descuentos

El siguiente paso consiste en combinar ambas tablas en una sola tabla que tenga el descuento que se debe aplicar al viaje y el total ajustado.

  1. En primer lugar, cambie el botón Vista de diagrama para que pueda ver ambas consultas.

    Screenshot showing the Diagram view toggle button with both queries created in this tutorial displayed.

  2. Seleccione la consulta nyc_taxi y, en la pestaña Inicio, seleccione el menú Combinar y elija Combinar consultas y, después, Combinar consultas como nuevas.

    Screenshot showing the Merge queries as new selection for the nyc_taxi query.

  3. En el cuadro de diálogo Combinar, seleccione Generated-NYC-Taxi-Green-Discounts en la lista desplegable Tabla adecuada para la fusión y, a continuación, seleccione el icono de "bombilla" en la parte superior derecha del cuadro de diálogo para ver la asignación sugerida de columnas entre las dos tablas.

    Screenshot showing the configuration of the Merge dialog with suggested column mappings displayed.

    Elija cada una de las dos asignaciones de columna sugeridas, una a la vez, asignando las columnas VendorID y Date de ambas tablas. Cuando se agregan ambas asignaciones, los encabezados de columna coincidentes se resaltan en cada tabla.

  4. Se muestra un mensaje que le pide que permita combinar datos de varios orígenes de datos para ver los resultados. Seleccione Aceptar en el cuadro de diálogo Combinar.

    Screenshot showing the request to approve combining data from multiple data sources, with the OK button highlighted.

  5. En el área de tabla, verá inicialmente una advertencia que indica que "La evaluación se canceló porque la combinación de datos de varios orígenes puede revelar datos de un origen a otro. Seleccione Continuar si la posibilidad de revelar datos no representa un problema". Seleccione Continuar para mostrar los datos combinados.

    Screenshot showing the warning about combining data from multiple data sources with the Continue button highlighted.

  6. Observe cómo se creó una nueva consulta en la Vista de diagrama en la que se muestra la relación de la nueva consulta Combinar con las dos consultas que creó anteriormente. Al examinar el panel de tabla del editor, desplácese a la derecha de la lista de columnas de consulta Combinar para ver una nueva columna con valores de tabla. Se trata de la columna "Generated NYC Taxi-Green-Discounts" y su tipo es [Table]. En el encabezado de columna hay un icono con dos flechas que van en direcciones opuestas, lo que le permite seleccionar columnas de la tabla. Anule la selección de todas las columnas excepto Descuento y, a continuación, seleccione Aceptar.

    Screenshot showing the merged query with the column selection menu displayed for the newly generated column Generated-NYC-Taxi-Green-Discounts.

  7. Con el valor de descuento ahora en el nivel de fila, podemos crear una nueva columna para calcular el importe total después del descuento. Para ello, seleccione la pestaña Agregar columna en la parte superior del editor y elija Columna personalizada en el grupo General.

    Screenshot showing the Add custom column button highlighted on the General section of the Add column tab.

  8. En el cuadro de diálogo Columna personalizada, puede usar el Lenguaje de fórmulas de Power Query (también conocido como M) para definir cómo se debe calcular la nueva columna. Escriba TotalAfterDiscount en Nuevo nombre de columna, seleccione Moneda en Tipo de datos y proporcione la siguiente expresión M para laFfórmula de columna Personalizada:

    if [totalAmount] > 0 then [totalAmount] * ( 1 -[Discount] ) else [totalAmount]

    A continuación, seleccione Aceptar.

    Screenshot showing the Custom column configuration screen with the New column name, Data type and Custom column formula highlighted.

  9. Seleccione la columna TotalAfterDiscount recién creada y, a continuación, seleccione la pestaña Transformar en la parte superior de la ventana del editor. En el grupo Número de columnas, seleccione la lista desplegable Redondeo y, a continuación, elija Redondear....

    Screenshot showing the Round... option on the Transform tab of the editor window.

  10. En el cuadro de diálogo Redondear, escriba 2 para el número de posiciones decimales y, a continuación, seleccione Aceptar.

    Screenshot showing the Round dialog with 2 for the number of decimal places and the OK button highlighted.

  11. Cambie el tipo de datos de IpepPickupDatetime de Date a Date/Time.

    Screenshot showing the selection of the Date/Time data type for the IpepPickupDatetime column.

  12. Por último, expanda el panel Configuración de consultas desde el lado derecho del editor si aún no está expandido y cambie el nombre de la consulta de Combinar a Salida.

    Screenshot showing the renaming of the query from Merge to Output.

Carga de la consulta de salida en una tabla de Lakehouse

Con la consulta de salida ahora totalmente preparada y con los datos listos para la salida, podemos definir el destino de salida de la consulta.

  1. Seleccione la consulta combinar Salida creada anteriormente. A continuación, seleccione la pestaña Inicio en el editor y Agregar destino de datos en la agrupación Consulta para seleccionar un destino de Lakehouse.

    Screenshot showing the Add data destination button with Lakehouse highlighted.

  2. En el cuadro de diálogo Conectar al destino de datos, la conexión ya debe estar seleccionada. Seleccione Siguiente para continuar.

  3. En el cuadro de diálogo Elegir destino de destino, vaya a la instancia de Lakehouse donde desea cargar los datos y asigne un nombre a la nueva tabla nyc_taxi_with_discounts y, a continuación, seleccione Siguiente de nuevo.

    Screenshot showing the Choose destination target dialog with Table name nyc_taxi_with_discounts.

  4. En el cuadro de diálogo Elegir configuración de destino, deje el método de actualización Reemplazar predeterminado, compruebe que las columnas están asignadas correctamente y seleccione Guardar configuración.

    Screenshot showing the Choose destination settings dialog with the Save settings button highlighted.

  5. De nuevo en la ventana principal del editor, confirme que ve el destino de salida en el panel Configuración de consultas de la tabla Salida y, a continuación, seleccione Publicar.

    Importante

    Cuando se crea el primer Flujo de datos Gen2 en un área de trabajo, se aprovisionan los elementos de almacén de lago y almacén junto con sus modelos semánticos y puntos de conexión de análisis SQL relacionados. Todos los flujos de datos del área de trabajo comparten estos elementos, que son necesarios para el funcionamiento de Flujo de datos Gen2, no deben eliminarse y los usuarios no deben utilizarlos directamente. Los elementos son un detalle de implementación de Dataflow Gen2. Los elementos no son visibles en el área de trabajo, pero pueden ser accesibles en otras experiencias como Notebook, punto de conexión SQL, almacén de lago y almacén. Puede reconocer los elementos por su prefijo en el nombre. El prefijo de los elementos es "DataflowsStaging".

  6. (Opcional) En la página del área de trabajo, puede cambiar el nombre del flujo de datos seleccionando los puntos suspensivos situados a la derecha del nombre del flujo de datos que aparece después de seleccionar la fila y seleccionando Propiedades.

    Screenshot showing the Properties option selected on the menu for a dataflow where it can be renamed.

  7. Seleccione el icono de actualización del flujo de datos después de seleccionar su fila y, cuando haya finalizado, debería ver la nueva tabla de Lakehouse creada como configurada en la configuración de Destino de datos.

    Screenshot showing the selection of the refresh button to refresh the dataflow.

  8. Compruebe la instancia de Lakehouse para ver la nueva tabla cargada allí.

En este segundo módulo de nuestro tutorial completo para su primera integración de datos mediante Data Factory en Microsoft Fabric, ha aprendido a:

  • Cree un nuevo flujo de datos Gen2.
  • Importe y transforme datos de ejemplo.
  • Importe y transforme datos de texto/CSV.
  • Combine datos de ambos orígenes de datos en una nueva consulta.
  • Transforme los datos y genere nuevas columnas en una consulta.
  • Configure un origen de destino de salida para una consulta.
  • Cambie el nombre y actualice el nuevo flujo de datos.

Continúe con la sección siguiente para integrar la canalización de datos.