Arrancamos este blog con este post básico de introducción a Azure Data Factory. Será el primero de una serie de posts con los que intentaré dar a conocer este servicio, sus integraciones con otros servicios y algún que otro truco.

¿Qué es Azure Data Factory?

Azure Data Factory es un servicio híbrido de integración de datos, que nos ofrece la posibilidad de automatizar y orquestar movimientos y transformaciones de datos, estructurados y no estructurados con distintos orígenes y destinos.

Esta transformación y movimiento de datos se realizan mediante pipelines creadas en este servicio y además pueden ser ejecutadas manualmente, programadas o desencadenadas mediante algún evento (ej: creación de un blob a una cuenta de almacenamiento).

Azure Data Factory está formado por los siguientes componentes:

  • Dataset

Conjunto de datos que se puede definir como entrada o salida.

  • Activity

Es la definición mínima dentro de un pipeline. Define cada actividad posible a realizar como por ejemplo una actividad de copia entre cuentas de almacenamiento, una actividad de llamada HTTP o una actividad para ejecutar un procedimiento almacenado en una base de datos.

  • Pipeline

Es la agrupación lógica de distintas actividades, con una intención final. Un ejemplo de pipeline, es un conjunto de actividades que ingieran, transformen y copien una serie de datos desde un origen determinado a un destino determinado.

  • Linked Service

Este componente permite conectar Azure Data Factory con otros servicios, como por ejemplo con un SQL Azure, un Azure Data Lake, etc.

Diseño

Como proceso a seguir para un buen diseño de una infraestructura en Data Factory, deberíamos hacerlo en el siguiente orden: Diseño, creación del servicio de Data Factory, creación de los Linked Services, creación de los datasets, creación de los pipelines y monitorización de los servicios.

Primer pipeline paso a paso

Una vez hecha la introducción a Azure Data Factory, pasemos a ver como definir nuestro primer pipeline. Se tratará de un pipeline que coja una serie de valores de un fichero con valores delimitados por comas, y que inserte esos valores en una base de datos SQL.

Para ello, damos por hecho que tenemos una suscripción válida de Azure, una base de datos SQL con el modelo de tablas deseado y una cuenta de almacenamiento donde subir el fichero con los datos.

Creación del servicio de Azure Data Factory

En este primer post (de una serie que dedicaremos a Azure Data Factory), vamos a crear el servicio de forma simple desde el portal de Azure.

Buscamos el servicio en el Marketplace y procedemos a crearlo:

Acceso al portal de Azure Data Factory

Entramos al portal de Azure Data Factory mediante la opción Author & Monitor:

Creación de Linked Services

Una vez dentro del portal de Azure Data Factory, vamos a crear los linked service necesarios para conectar con la cuenta de almacenamiento y con la base de datos SQL. Si bien en este primer post lo haremos sin seguridad, en posteriores posts veremos como conectar mediante Managed Service Identity (MSI) o con Keys y cadenas de conexión en un Azure Key Vault.

Elegimos la cuenta de almacenamiento deseada:

Creamos también el Linked Service a la Base de Datos:

Creación de datasets

Creamos un nuevo dataset de tipo Azure Storage Blob y texto delimitado. Previamente hemos creado un contenedor de blobs privado llamado delimitedtext y hemos subido un fichero de prueba con texto delimitado que tiene varios registros de marcas y modelos de coche. Es importante marcar el check de primera fila como cabecera.

Elegimos el contenedor:

Una vez creado el dataset, podemos previsualizar el contenido del fichero delimitado por coma:

Una vez creado, hay que publicar dentro del portal, ya que, si no, no estaría disponible para su uso.

Procedemos a crear también el dataset de salida para cargar los datos en la base de datos SQL:

Creación de pipeline

A continuación, creamos un pipeline con una actividad de copia, poniendo como origen el dataset del blob y como destino el dataset de SQL.


Configuramos el mapping de columnas, importando el esquema automáticamente:

Publicamos todo de nuevo.

Finalmente, lanzaremos una ejecución manualmente y en posteriores posts, veremos cómo configurar los distintos triggers de los que disponemos. Para lanzarlo, pulsamos en Add Trigger -> Trigger Now, y nos vamos a la sección de monitorización para ver la ejecución del pipeline.

Una vez finalizada la ejecución con éxito, nos vamos a SQL y hacemos una query sobre la tabla de marcas. Vemos que los datos se han cargado correctamente.

Ahora podemos ver en la tabla SQL que los datos se han cargado correctamente:

Con esto terminamos el primer post de introducción a Azure Data Factory, en posteriores publicaciones, profundizaremos en las distintas características que nos ofrece el servicio.

Última modificación: febrero 18, 2021

Autor