Compartir a través de


Tutorial: Transformación de datos 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. Aprenda a iniciar una nueva evaluación gratuita.

En este tutorial, usará la interfaz de usuario (UX) de Azure Data Factory para crear una canalización que copie y transforme los datos de un origen de Azure Data Lake Storage (ADLS) Gen2 en un receptor de ADLS Gen2 mediante el flujo de datos de asignación. El patrón de configuración de este tutorial se puede expandir al transformar los datos mediante el flujo de datos de asignación.

Este tutorial está pensado para los flujo de datos de asignación en general. Los flujos de datos están disponibles en las canalizaciones Azure Data Factory y Synapse. Si no está familiarizado con los flujos de datos en las canalizaciones de Azure Synapse, siga el flujo de datos con las canalizaciones de Azure Synapse.

En este tutorial, realizará los siguientes pasos:

  • Creación de una factoría de datos.
  • Creación de una canalización con una actividad de Data Flow.
  • Cree un flujo de datos de asignación con cuatro transformaciones.
  • Realización de la serie de pruebas de la canalización.
  • Supervisión de una actividad de Data Flow

Requisitos previos

  • Suscripción de Azure. Si no tiene una suscripción de Azure, cree una cuenta gratuita de Azure antes de empezar.
  • Cuenta de Azure Data Lake Storage Gen2. El almacenamiento ADLS se puede usar como almacén de datos de origen y receptor. Si no tiene una cuenta de almacenamiento, consulte Creación de una cuenta de Azure Storage para conocer los pasos para crear una.
  • Descargue MoviesDB.csv 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. Cargue el archivo en la cuenta de almacenamiento en 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ú superior, seleccione Crear un recurso>Analytics>Data Factory :

    Selección de Data Factory en el panel

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

    El nombre de la factoría de datos de Azure debe ser único globalmente. Si recibe un mensaje de error sobre el valor de nombre, escriba un nombre diferente para la factoría de datos. (Por ejemplo, utilice SuNombreADFTutorialDataFactory). Para conocer las reglas de nomenclatura de los artefactos de Data Factory, consulte Reglas de nomenclatura de Data Factory.

    Nuevo mensaje de error de factoría de datos por nombre duplicado.

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

  5. En Grupo de recursos, siga uno de los pasos siguientes:

    1. Seleccione Usar existente y seleccione un grupo de recursos existente en la lista desplegable.

    2. Seleccione Crear nuevo y 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 Región, seleccione una ubicación para 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 Revisar y crear y, a continuación, 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 Factoría de datos.

  10. Seleccione Launch studio (Iniciar estudio ) para iniciar Data Factory Studio en una pestaña independiente.

Creación de una canalización con una actividad de Data Flow

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

  1. En la página principal de Azure Data Factory, seleccione Orquestar.

    Captura de pantalla que muestra la página principal de Azure Data Factory.

  2. Ahora se abre una ventana para una nueva canalización. En la pestaña General de las propiedades de la canalización, escriba TransformMovies como 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. Asigne un nombre a la actividad de flujo de datos DataFlow1.

  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.

    Recorte de pantalla que muestra el modificador para activar la depuración del flujo de datos.

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

En este paso, construyes un flujo de datos que utiliza el moviesDB.csv en el almacenamiento de ADLS y agrega el promedio de la calificación de las comedias entre 1910 y 2000. A continuación, vuelva a escribir este archivo en el almacenamiento de ADLS.

  1. En el panel debajo del lienzo, vaya a la Configuración de su actividad de Flujo de Datos y seleccione Nuevo, ubicado junto al campo de flujo de datos. Se abrirá el lienzo del flujo de datos.

    Captura de pantalla que muestra cómo abrir el editor de flujo de datos desde el editor de canalización.

  2. En el panel Propiedades , en General, asigne un nombre al flujo de datos: TransformMovies.

  3. En el lienzo del flujo de datos, agregue un origen seleccionando el cuadro Agregar origen.

    Captura de pantalla que muestra el cuadro Agregar origen.

  4. Asigne al origen el nombre MoviesDB. Seleccione Nuevo para crear un nuevo conjunto de datos de origen.

    Captura de pantalla que muestra dónde se selecciona Nuevo después de asignar un nombre al origen.

  5. Elija Azure Data Lake Storage Gen2. Seleccione Continuar.

    Captura de pantalla que muestra dónde está el icono de Azure Data Lake Storage Gen2.

  6. Elija DelimitedText. Seleccione Continuar.

    Captura de pantalla que muestra el icono DelimitedText.

  7. Asigne al conjunto de datos el nombre MoviesDB. En la lista desplegable del servicio vinculado, elija Nuevo.

    Captura de pantalla que muestra la lista desplegable del servicio vinculado.

  8. En la pantalla de creación de un servicio vinculado, asigne el nombre ADLSGen2 a su servicio vinculado de ADLS gen2 y especifique el método de autenticación. A continuación, escriba las credenciales de conexión. En este tutorial, vamos a usar la clave de cuenta para conectarse a la cuenta de almacenamiento. Puede seleccionar Probar conexión para comprobar que las credenciales se especificaron correctamente. Seleccione Crear cuando termine.

    Captura de pantalla del panel para crear un nuevo servicio vinculado para Azure Data Lake Storage.

  9. Una vez que vuelva a la pantalla de creación del conjunto de datos, escriba dónde se encuentra el archivo en el campo Ruta de acceso del archivo. En este tutorial, el archivo moviesDB.csv se encuentra en el contenedor sample-data. Como el archivo tiene encabezados, compruebe Primera fila como encabezado. Seleccione From connection/store (Desde conexión o almacén ) para importar el esquema de encabezado directamente desde el archivo en el almacenamiento. Seleccione Aceptar cuando haya terminado.

    Captura de pantalla del panel para crear un conjunto de datos.

  10. Si se ha iniciado el clúster de depuración, vaya a la pestaña Vista previa de datos de la transformación de origen y seleccione Actualizar para obtener una instantánea de los datos. Puede usar la vista previa de los datos para comprobar que la transformación está configurada correctamente.

    Captura de pantalla que muestra dónde puede obtener una vista previa de los datos para comprobar que la transformación está configurada correctamente.

  11. Junto al nodo de origen en el lienzo del flujo de datos, seleccione el icono con el signo más para agregar una nueva transformación. La primera transformación que va a agregar es un filtro.

    Recorte de pantalla del lienzo del flujo de datos.

  12. Nombra tu transformación de filtro FilterYears. Seleccione el cuadro de expresión situado junto a Filtrar y, a continuación, Abrir generador de expresiones. Aquí se especifica la condición de filtrado.

    Captura de pantalla que muestra el cuadro de expresión Filtro en.

  13. El generador de expresiones de flujo de datos le permite compilar de forma interactiva expresiones para utilizarlas en varias transformaciones. Las expresiones pueden incluir funciones integradas, columnas del esquema de entrada y parámetros definidos por el usuario. Para obtener más información sobre cómo crear expresiones, consulte Generador de expresiones de Data Flow.

    En este tutorial, desea filtrar las películas del género de comedia que se estrenaron entre los años 1910 y 2000. Dado que el año es actualmente una cadena, debe convertirlo en un entero mediante la función toInteger(). Use los operadores mayor o igual que (>=) y menor o igual que (<=) para comparar con los valores de año literal 1910 y 2000. Una estas expresiones junto con el operador and (&&). La expresión aparece como:

    toInteger(year) >= 1910 && toInteger(year) <= 2000

    Para averiguar qué películas son comedias, puede usar la función rlike() para buscar el patrón " comedia" en la columna de géneros. Una la expresión rlike con la comparación de año para obtener:

    toInteger(year) >= 1910 && toInteger(year) <= 2000 && rlike(genres, 'Comedy')

    Si tiene un clúster de depuración activo, puede comprobar la lógica seleccionando Actualizar para ver la salida de la expresión en comparación con las entradas usadas. Hay más de una respuesta correcta sobre cómo puede realizar esta lógica mediante el lenguaje de expresiones de flujo de datos.

    Captura de pantalla del generador de expresiones de filtro.

    Seleccione Guardar y finalizar una vez que haya terminado con la expresión.

  14. Capture una vista previa de datos para comprobar que el filtro funciona correctamente.

    Captura de pantalla que muestra la vista previa de datos que ha capturado.

  15. La transformación siguiente que se va a agregar es una transformación de agregado en Modificador de esquema.

    Captura de pantalla que muestra el modificador de esquema agregado.

  16. Denomine AggregateComedyRatings a la transformación de agregado. En la pestaña Agrupar por , seleccione año en la lista desplegable para agrupar las agregaciones por el año que salió la película.

    Recorte de pantalla que muestra la opción año en la pestaña Agrupar por de Configuración de agregación.

  17. Vaya a la pestaña Agregados . En el cuadro de texto izquierdo, asigne un nombre a la columna de agregado AverageComedyRating. Seleccione el cuadro de expresión derecho para especificar la expresión de agregado a través del generador de expresiones.

    Captura de pantalla que muestra la opción año en la pestaña Agregados de Configuración de agregación.

  18. Para obtener el promedio de columna Clasificación, use la avg() función de agregado. Como Rating es una cadena y avg() toma una entrada numérica, debemos convertir el valor en un número a través de la toInteger() función . Se trata de una expresión similar a la siguiente:

    avg(toInteger(Rating))

    Seleccione Guardar y finalizar cuando haya terminado.

    Captura de pantalla que muestra la expresión guardada.

  19. Vaya a la pestaña Vista previa de datos para ver la salida de transformación. Observe que solo hay dos columnas, year y AverageComedyRating.

    Captura de pantalla que muestra la vista previa agregada.

  20. A continuación, desea agregar una transformación de receptor en Destino.

    Captura de pantalla que muestra dónde agregar una transformación de sumidero en la sección de Destino.

  21. Asigne el nombre de Receptor al receptor. Seleccione Nuevo para crear su conjunto de datos de destino.

    Captura de pantalla que muestra la ubicación donde se puede asignar nombre al receptor y crear un nuevo conjunto de datos de receptor.

  22. Elija Azure Data Lake Storage Gen2. Seleccione Continuar.

    Captura de pantalla que muestra el icono de Azure Data Lake Storage Gen2 que puede elegir.

  23. Elija DelimitedText. Seleccione Continuar.

    Captura de pantalla del panel para seleccionar un tipo de conjunto de datos.

  24. Asigne el nombre MoviesSink al conjunto de datos de receptor. Para el servicio vinculado, elija el servicio vinculado ADLS gen2 que creó en el paso 6. Escriba una carpeta de salida en la que escribir los datos. En este tutorial, vamos a escribir en la carpeta "output" (salida) en el contenedor "sample-data" (datos de ejemplo). No es necesario que la carpeta exista de antemano y se puede crear dinámicamente. Establezca Primera fila como encabezado como true y seleccione Ninguno para Importar esquema. Seleccione Finalizar.

    Recorte de pantalla de la página de creación del receptor con la primera fila como encabezado seleccionada.

Ahora ha terminado de crear el flujo de datos. Está preparado para ejecutarlo en la canalización.

Ejecución y supervisión del flujo de datos

Puede depurar una canalización antes de publicarla. En este paso, va a desencadenar una ejecución de depuración de la canalización de flujo de datos. Aunque la vista previa de los datos no escribe datos, una ejecución de depuración escribirá datos en el destino del receptor.

  1. Vaya al lienzo de la canalización. Seleccione Depurar para desencadenar una ejecución de depuración.

    Captura de pantalla que muestra el lienzo de canalización con Depurar resaltado.

  2. La depuración de canalización de actividades de Data Flow usa el clúster de depuración activo, pero sigue tardando al menos un minuto en inicializarse. Puede realizar un seguimiento del progreso a través de la pestaña Salida. Una vez que la ejecución se realiza correctamente, pase el cursor sobre la ejecución y seleccione el icono de gafas para abrir la ventana de monitorización.

    Captura de pantalla del estado completado de la canalización, con las acciones de salida resaltadas.

  3. En el panel de supervisión, seleccione el botón Fases para ver el número de filas y el tiempo invertido en cada paso de transformación.

    Captura de pantalla que muestra el panel de supervisión con el botón Fases resaltado.

    Captura de pantalla del panel de supervisión donde puede ver el número de filas y el tiempo invertido en cada paso de transformación.

  4. Seleccione una transformación para obtener información detallada sobre las columnas y las particiones de los datos.

    Captura de pantalla del panel de transformación de supervisión.

Si siguió correctamente este tutorial, debe haber escrito 83 filas y 2 columnas en la carpeta del receptor. Puede comprobar el almacenamiento de blobs para confirmar que los datos son correctos.

La canalización de este tutorial ejecuta un flujo de datos que agrega el promedio de la clasificación de comedias de 1910 a 2000 y escribe los datos en ADLS. Ha aprendido a:

  • Creación de una factoría de datos.
  • Creación de una canalización con una actividad de Data Flow.
  • Cree un flujo de datos de asignación con cuatro transformaciones.
  • Realización de la serie de pruebas de la canalización.
  • Supervisión de una actividad de Data Flow

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