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.

Requisitos previos

  • 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 hacen 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).

    Captura de pantalla que muestra la página principal de ADF.

  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.

    Captura de pantalla que muestra el lienzo de canalización donde puede colocar la actividad de Data Flow.

  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. Seleccione Finalizar cuando haya terminado.

    Captura de pantalla que muestra la ubicación donde se asigna nombre al flujo de datos al crear uno nuevo.

  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.

    Captura de pantalla que muestra el control deslizante Data flow debug (Depuración de flujo de datos).

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. Por último, cree el diseño de flujo siguiente para actualizar los datos en Delta Lake.

Flujo final

Objetivos del tutorial

  1. Use el origen del conjunto de datos MoviesCSV de los requisitos previos y forme una nueva instancia de Delta Lake a partir de él.
  2. Compile la lógica para las clasificaciones actualizadas de películas de 1988 en "1".
  3. Elimine todas las películas de 1950.
  4. 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. Seleccione la transformación de origen en la parte superior de la ventana del editor de flujo de datos y, a continuación, seleccione + Nuevo junto a la propiedad Conjunto de datos en la ventana Configuración de origen:

    Captura de pantalla que muestra dónde agregar un nuevo conjunto de datos de origen al flujo de datos.

  2. Seleccione Azure Data Lake Storage Gen2 en la ventana Nuevo conjunto de datos que aparece y, a continuación, seleccione Continuar.

    Captura de pantalla que muestra dónde seleccionar Azure Data Lake Storage Gen2 en la ventana Nuevo conjunto de datos.

  3. Elija DelimitedText para el tipo de conjunto de datos y seleccione Continuar de nuevo.

    Captura de pantalla que muestra dónde seleccionar el formato del conjunto de datos.

  4. Asigne al conjunto de datos el nombre "MoviesCSV" y seleccione + Nuevo en Servicio vinculado para crear un nuevo servicio vinculado al archivo.

  5. Proporcione los detalles de la cuenta de almacenamiento creada anteriormente en la sección Requisitos previos, y busque y seleccione el archivo MoviesCSV que cargó allí.

  6. Después de agregar el servicio vinculado, active la casilla Primera fila como encabezado y, a continuación, seleccione Aceptar para agregar el origen.

  7. Vaya a la pestaña Proyección de la ventana de configuración del flujo de datos y, a continuación, seleccione Detectar tipos de datos.

  8. Ahora seleccione + después del origen en la ventana del editor de flujo de datos y desplácese hacia abajo para seleccionar Receptor en la sección Destino, agregando un nuevo receptor al flujo de datos.

    Captura de pantalla que muestra dónde agregar un destino de receptor para el flujo de datos.

  9. En la pestaña Receptor de la configuración del receptor que aparece después de agregar el receptor, seleccione Insertado para el Tipo de receptor y, a continuación, Delta para el Tipo de conjunto de datos insertado. A continuación, seleccione Azure Data Lake Storage Gen2 para el Servicio vinculado.

    Captura de pantalla que muestra los detalles del receptor de un conjunto de datos delta insertado.

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

  11. Finalmente, vuelva al diseñador de canalizaciones y seleccione Depurar para ejecutar la canalización en modo de depuración solo con esta actividad de flujo de datos en el lienzo. Esto genera la nueva instancia de Delta Lake en Azure Data Lake Storage Gen2.

  12. Ahora, en el menú Recursos de fábrica de la izquierda de la pantalla, seleccione + para agregar un nuevo recurso y, a continuación, seleccione Flujo de datos.

    Captura de pantalla que muestra dónde crear un nuevo flujo de datos en la factoría de datos.

  13. Como antes, vuelva a seleccionar el archivo MoviesCSV como origen y, a continuación, seleccione Detectar tipos de datos de nuevo en la pestaña Proyección.

  14. Esta vez, después de crear el origen, seleccione + en la ventana del editor de flujo de datos y agregue una transformación de filtro al origen.

    Captura de pantalla que muestra dónde agregar una condición de filtro al flujo de datos.

  15. Agregue una condición Filtrar en en la ventana Configuración de filtro que solo permita que las filas de películas coincidan con 1950, 1960 y 1988.

    Captura de pantalla que muestra dónde agregar un filtro en la columna Year del conjunto de datos.

  16. Ahora agregue una transformación Columna derivada para actualizar las clasificaciones de cada película de 1988 a "1".

    Captura de pantalla que muestra dónde escribir la expresión para la columna derivada.

  17. 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.

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

    Alteración de fila

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

    Sink

  20. Aquí se usa el receptor de Delta Lake en el lago de datos de Azure Data Lake Storage Gen2 y se permiten inserciones, actualizaciones y eliminaciones.

  21. 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.