Compartir a través de


Transformación de datos en Delta Lake mediante 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.

Si no está familiarizado con Azure Data Factory, consulte Introducción a Azure Data Factory.

En este tutorial, usará el lienzo de flujo de datos para crear flujos de datos que le permitan analizar y transformar datos en Azure Data Lake Storage (ADLS) Gen2 y almacenarlos en Delta Lake.

Prerrequisitos

  • Suscripción de Azure. Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.
  • Cuenta de Azure Storage. El almacenamiento ADLS se puede usar como almacén de datos de origen y receptor. Si no tiene una cuenta de almacenamiento, consulte Crear una cuenta de almacenamiento para crear una.

El archivo que se está transformando en este tutorial es MoviesDB. csv, que se puede encontrar aquí. Para recuperar el archivo de GitHub, copie el contenido en un editor de texto de su elección para guardarlo localmente como un archivo. csv. Para cargar el archivo en la cuenta de almacenamiento, vea Carga de blobs con Azure Portal. Los ejemplos harán referencia a un contenedor denominado "Sample-Data".

Crear una factoría de datos

En este paso, creará una factoría de datos y abrirá la interfaz de usuario de Data Factory para crear una canalización en la factoría de datos.

  1. Abra Microsoft Edge o Google Chrome. Actualmente, la interfaz de usuario de Data Factory solo se admite en los exploradores web Microsoft Edge y Google Chrome.

  2. En el menú de la izquierda, seleccione Crear un recurso>Integración>Data Factory.

  3. En la página Nueva factoría de datos, en Nombre, escriba ADFTutorialDataFactory.

  4. Seleccione la suscripción de Azure en la que quiere crear la factoría de datos.

  5. Para Grupo de recursos, realice uno de los siguientes pasos:

    a. Seleccione en primer lugar Usar existentey después un grupo de recursos de la lista desplegable.

    b. Seleccione Crear nuevoy escriba el nombre de un grupo de recursos.

    Para más información sobre los grupos de recursos, consulte Uso de grupos de recursos para administrar los recursos de Azure.

  6. En Versión, seleccione V2.

  7. En Ubicación, seleccione la ubicación de la factoría de datos. En la lista desplegable solo se muestran las ubicaciones que se admiten. Los almacenes de datos (por ejemplo, Azure Storage y SQL Database) y los procesos (por ejemplo, Azure HDInsight) que la factoría de datos usa pueden estar en otras regiones.

  8. Seleccione Crear.

  9. Una vez finalizada la creación, verá el aviso en el centro de notificaciones. Seleccione Ir al recurso para ir a la página de Data Factory.

  10. Haga clic en Author & Monitor (Creación y supervisión) para iniciar la interfaz de usuario de Data Factory en una pestaña independiente.

Creación de una canalización con una actividad de flujo de datos

En este paso, creará una canalización que contiene una actividad de flujo de datos.

  1. En la página principal, seleccione Orchestrate (Organizar).

    Screenshot that shows the ADF home page.

  2. En la pestaña General de la canalización, escriba DeltaLake en el campo Nombre de la canalización.

  3. En el panel Actividades expanda el acordeón Movimiento y transformación. Arrastre y coloque la actividad Data Flow del panel al lienzo de la canalización.

    Screenshot that shows the pipeline canvas where you can drop the Data Flow activity.

  4. En el menú emergente Adding Data Flow (Adición de Data Flow), seleccione Create New Data Flow (Crear nueva instancia de Data Flow) y, a continuación, asigne el nombre DeltaLake al flujo de datos. Haga clic en Finalizar cuando haya terminado.

    Screenshot that shows where you name your data flow when you create a new data flow.

  5. En la barra superior del lienzo de la canalización, mueva el control deslizante Depuración de flujo de datos a la posición de activado. El modo de depuración permite realizar pruebas interactivas de la lógica de transformación en un clúster de Spark activo. Los clústeres de Data Flow tardan de 5 a 7 minutos en prepararse y se recomienda que los usuarios activen primero la depuración si planean realizar el desarrollo de Data Flow. Para más información, consulte Modo de depuración.

    Screenshot that shows where is the Data flow debug slider.

Generación de la lógica de transformación en el lienzo de flujo de datos

En este tutorial se generarán dos flujos de datos. El primer flujo de datos es un origen simple de receptor para generar una nueva instancia de Delta Lake a partir del archivo CSV de películas anterior. Por último, creará el diseño de flujo siguiente para actualizar los datos en Delta Lake.

Final flow

Objetivos del tutorial

  1. Tome el origen del conjunto de datos MoviesCSV de arriba y forme un nuevo Delta Lake a partir de él 1. Compilación de la lógica para las clasificaciones actualizadas de las películas de 1988 a "1".
  2. Elimine todas las películas de 1950.
  3. Inserte nuevas películas de 2021 mediante la duplicación de películas de 1960.

Comenzar con un lienzo de flujo de datos en blanco

  1. Haga clic la transformación de origen.

  2. Haga clic en Nuevo junto al conjunto de datos en el panel inferior 1 de creación de un nuevo servicio vinculado para ADLS Gen2

  3. Elija Texto delimitado como tipo de conjunto de datos.

  4. Asigne al conjunto de datos el nombre "MoviesCSV"

  5. Apunte al archivo MoviesCSV que cargó en el almacenamiento anterior.

  6. Establézcalo como delimitado por comas e incluya el encabezado en la primera fila.

  7. Vaya a la pestaña de proyección de origen y haga clic en "Detect data types" (Detectar tipos de datos).

  8. Una vez que tenga el conjunto de proyección, puede continuar.

  9. Agregue una transformación de receptor.

  10. Delta es un tipo de conjunto de datos en línea. Tendrá que apuntar a la cuenta de almacenamiento de ADLS Gen2.

    Inline dataset

  11. Elija un nombre de carpeta en el contenedor de almacenamiento donde desea que ADF cree la instancia de Delta Lake.

  12. Vuelva al diseñador de canalizaciones y haga clic en Depurar para ejecutar la canalización en modo de depuración solo con esta actividad de flujo de datos en el lienzo. Se generará la nueva instancia de Delta Lake en ADLS Gen2.

  13. En Recursos de fábrica, haga clic en nuevo > flujo de datos.

  14. Vuelva a usar MoviesCSV como origen y haga clic de nuevo en "Detect data types" (Detectar tipos de datos).

  15. Agregue una transformación de filtro a la transformación de origen en el gráfico.

  16. Permita solo las filas de película que coincidan con los tres años con los que va a trabajar, que serán 1950, 1988 y 1960.

  17. Actualice las clasificaciones de cada película de 1988 a "1" con la adición de una transformación de columna derivada a la transformación del filtro.

  18. En esa misma columna derivada, cree películas para 2021. Para ello, tome un año existente y cambie el año a 2021. Vamos a elegir 1960.

  19. Este es el aspecto que tendrán las tres columnas derivadas:

    Derived column

  20. Las directivas Update, insert, delete, and upsert se crean en la transformación de alteración de fila. Agregue una transformación de alteración de fila después de la columna derivada.

  21. Las directivas de alteración de fila deben tener este aspecto.

    Alter row

  22. Ahora que ha establecido la directiva adecuada para cada tipo de alteración de fila, compruebe que se han establecido las reglas de actualización adecuadas en la transformación de receptor.

    Sink

  23. Aquí vamos a usar el receptor de Delta Lake en el lago de datos de ADLS Gen2 y permitiremos inserciones, actualizaciones y eliminaciones. 

  24. Observe que las columnas de clave son una clave compuesta formada por la columna de clave principal "movie" y la columna "year". Esto se debe a que hemos creado películas de 2021 falsas mediante la duplicación de las filas de 1960. Esto evita las colisiones, ya que proporciona unicidad al consultar las filas existentes.

Descarga del ejemplo completado

Esta es una solución de ejemplo para la canalización Delta con un flujo de datos para actualizar o eliminar filas en el lago:

Obtenga más información sobre el lenguaje de expresiones de flujo de datos.