Compartir a través de


Procedimientos recomendados para escribir en archivos en un lago de datos con flujos de datos

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, encontrará los procedimientos recomendados que se pueden aplicar al escribir archivos en ADLS Gen2 o Azure Blob Storage mediante flujos de datos. Necesitará acceso a una cuenta de Azure Blob Storage o de Azure Data Lake Store Gen2 para leer un archivo Parquet y, a continuación, almacenar los resultados en carpetas.

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.

Los pasos de este tutorial dan por hecho que tiene:

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 nuevo y especifique un nombre de grupo de recursos. Para obtener 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 de Azure Data Factory, seleccione Orchestrate (Organizar).

    Screenshot that shows the data factory home page with the Orchestrate button highlighted.

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

  3. En la barra superior de Data Factory, deslice el control deslizante Depuración de Data Flow para activarlo. 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.

    Data Flow Activity

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

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

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

Tomará cualquier dato de origen (en este tutorial, usaremos un origen de archivos Parquet) y usará una transformación de receptor para que los datos lleguen en formato Parquet mediante los mecanismos más eficaces para ETL de lago de datos.

Final flow

Objetivos del tutorial

  1. Elija cualquiera de los conjuntos de datos de origen de un nuevo flujo de datos 1. Uso de flujos de datos para particionar eficazmente el conjunto de datos receptor
  2. Envíe los datos con particiones a carpetas del lago de ADLS Gen2.

Comenzar con un lienzo de flujo de datos en blanco

En primer lugar, vamos a configurar el entorno de flujo de datos para cada uno de los mecanismos que se describen a continuación para enviar datos a ADLS Gen2.

  1. Haga clic en la transformación de origen.
  2. Haga clic en el botón Nuevo situado junto al conjunto de datos en el panel inferior.
  3. Elija un conjunto de datos o cree uno nuevo. Para esta demo, usaremos un conjunto de datos de Parquet denominado datos de usuario.
  4. Agregue una transformación de columna derivada. Lo utilizaremos como una forma de establecer los nombres de carpeta que desee de una manera dinámica.
  5. Agregue una transformación de receptor.

Salida de carpeta jerárquica

Es muy común usar valores únicos en los datos para crear particiones de los datos en jerarquías de carpetas en el lago. Es una muy buena forma de organizar y procesar datos en el lago y en Spark (el motor de proceso que hay detrás de los flujos de datos). Sin embargo, organizar la salida de esta manera tendrá un pequeño costo de rendimiento. Observará una leve disminución en el rendimiento general de la canalización al usar este mecanismo en el receptor.

  1. Vuelva al diseñador del flujo de datos y modifique el flujo de datos creado anteriormente. Haga clic en la transformación del receptor.
  2. Haga clic en Optimizar > Establecer partición > Clave.
  3. Escoja la columna o columnas para establecer la estructura jerárquica de las carpetas.
  4. Tenga en cuenta que el ejemplo siguiente utiliza el año y el mes como columnas para la nomenclatura de las carpetas. Los resultados serán carpetas con el formato releaseyear=1990/month=8.
  5. Al acceder a las particiones de datos en un origen de flujo de datos, apuntará solo a la carpeta de nivel superior anterior releaseyear y usará un patrón de caracteres comodín para cada carpeta posterior, por ejemplo: **/**/*.parquet
  6. Para modificar los valores de los datos, o incluso si es necesario generar valores sintéticos para los nombres de carpeta, use la transformación de columna derivada para crear los valores que desea usar en los nombres de carpeta.

Key partitioning

Nombre de carpeta como valores de datos

Hay una técnica de receptor que tiene un rendimiento ligeramente mejor para los datos de lago con ADLS Gen2, pero que no ofrece las mismas ventajas que la creación de particiones de clave-valor, y es Name folder as column data. Mientras que el estilo de creación de particiones de clave de la estructura jerárquica le permitirá procesar segmentos de datos más fácilmente, esta técnica es una estructura de carpetas aplanada que puede escribir datos con más rapidez.

  1. Vuelva al diseñador del flujo de datos y modifique el flujo de datos creado anteriormente. Haga clic en la transformación del receptor.
  2. Haga clic en Optimizar > Establecer creación de particiones > Utilizar la creación de particiones actual.
  3. Haga clic en Configuración > Asignar nombre a la carpeta como datos de columna.
  4. Elija la columna que desea utilizar para generar nombres de carpeta.
  5. Para modificar los valores de los datos, o incluso si es necesario generar valores sintéticos para los nombres de carpeta, use la transformación de columna derivada para crear los valores que desea usar en los nombres de carpeta.

Folder option

Nombre de archivo como valores de datos

Las técnicas mencionadas en los tutoriales anteriores son casos de uso adecuados para crear categorías de carpetas en el lago de datos. El esquema de nomenclatura de archivos predeterminado que emplean esas técnicas es usar el identificador de trabajo del ejecutor de Spark. Algunas veces querrá establecer el nombre del archivo de salida en un receptor de texto de flujo de datos. Se recomienda el uso de esta técnica solo para archivos pequeños. El proceso de combinar archivos de partición en un único archivo de salida es un proceso de ejecución prolongada.

  1. Vuelva al diseñador del flujo de datos y modifique el flujo de datos creado anteriormente. Haga clic en la transformación del receptor.
  2. Haga clic en Optimizar > Establecer creación de particiones > Partición única. Este requisito de partición única crea un cuello de botella en el proceso de ejecución a medida que se combinan los archivos. Esta opción solo se recomienda para archivos pequeños.
  3. Haga clic en Configuración > Asignar nombre al archivo como datos de columna.
  4. Elija la columna que desea utilizar para generar nombres de archivo.
  5. Para modificar los valores de los datos, o incluso si es necesario generar valores sintéticos para los nombres de archivo, use la transformación de columna derivada para crear los valores que desea usar en los nombres de archivo.

Más información sobre los receptores de flujo de datos.