Introducción al servicio de Azure Data Factory (ADF)

Por: Luis Ramirez

La integración de datos de diferentes fuentes ha sido un escenario manejado hasta la fecha por medio de procesos (ETL) que han ayudado a subministrar información a una solución Data Warehouse para su posterior análisis en BI.

 

En la actualidad tenemos que tomar en cuenta el incremento de volumen de datos, diversidad de las fuentes con soluciones en sitio, en la nube, estructuradas, no estructuradas, recolección en diferentes tiempos entre otras variables.

 

Integrar y procesar este tipo de información puede sonar como un reto para el cual Microsoft ofrece Azure Data Factory (ADF) que nos permitirá extraer y realizar la orquestación de la información para que pueda ser consumida por BI.

 

Esta solución se puede ver como una combinación de Agente de SQL (calendarización) más control de flujos en SSIS (orquestación de flujo de trabajo) y con características de un Trigger de SQL Server (ejecución automática cuando recibe datos)

 

Gráficamente el modelo de aplicación luce de la siguiente manera:

1

 Las etapas que manejan son:

  • Conexión y captura. Datos de diferentes fuentes son importados en centros de datos. (“Data hubs”)
  • Transformación y enriquecimiento. Se realiza el procesamiento de los datos obtenidos, estas tareas pueden ser llevadas a cabo por scripts “Hive”, “Pig” o código C#. Ayudando en la limpieza, enmascaramiento y transformación de datos.
  • Publicación. Donde los datos producidos puedan ser consumidos por herramientas de BI, análisis y/o otras aplicaciones.

Entrando más en detalle técnico, una Azure Data Factory tiene uno o más conductos (“Pipelines”) que hacen procesamiento de los datos contenidos en almacenes de datos enlazados (Azure Storage, Azure SQL Database, SQL Server en sitio etc...) dicho procesamiento es llevando acabo por servicios de computo enlazados como Azure HDInsight.

Aclarando que los datos no se encuentran en la Azure Data Factory sino en los almacenes de datos especificados.

Esencialmente los pasos para crear una instancia de “Azure Data Factory” son:

  1. Desde el portal crear una “Azure Data Factory”
  2. Crear un servicio enlazado (“Linked Service”) para cada almacén de datos (“Data Store”) o servicio de computo (“Compute Service”)
  3. Crear conjuntos de datos (“Data sets”) de entrada y salida de datos
  4. Crear un conducto (“Pipeline”)
  5. Monitoreo de porción (“slice”) y conductos (“Pipeline”)

 

Para entender mejor vamos a describir los componentes mencionados:

Un servicio enlazado se realiza a una “Azure Data Factory” y se dividen en:

  • Almacenamiento de datos. Básicamente es un contenedor de conjunto de datos ya sea para entrada o salida. Estos pueden ser Azure Storage, Azure SQL Database o SQL Server en sitio.
  • Servicio de cómputo. Como Azure HDInsight y Azure Machine Learning el cual genera información en base a los datos subministrados.

 

En Conjunto de datos los cuales se pueden ver como tablas con esquemas y bajo este escenario definimos el esquema de entrada y salida de datos que usaremos en el flujo de trabajo.

Esquema es la estructura de la columna (nombre y tipo de dato), la localidad y la disponibilidad.

Los datos pueden ser desde simples bytes, datos semi-estructurados hasta tablas o modelos relacionales.

 

Bajo Conductos se realiza el procesamiento de los datos que se encuentran en el almacenamiento de datos por medio de los servicios de cómputo que se enlazaron con anterioridad a la ADF.

Un conducto se compone de una secuencia de pasos, denominados actividades, en donde cada una realizara una operación de procesamiento específica.

En una “Azure Data Factory” puede existir uno o más conductos.

 

Una actividad viene siendo unsolo paso de procesamiento en el conducto que toma uno o más conjuntos de datos como entrada y produce uno o más conjunto de datos como salida.

Las actividades leen/escriben a los almacén de datos definidos para la ADF.

Las siguientes actividades son soportadas en un conducto:

Actividad de Copiado. Que nos permite copiar de un almacén de datos a otro.

Actividad HDInsight. Procesa datos por medio de scripts Hive/Pig o programas MapReduce en un cluster HDInsight.

Actividad de Azure Machine Learning Batch Scoring. Invoca esta API denominada de predicción.

Actividad de Procedimiento Almacenado (“Stored Procedure”). Invoca procedimientos almacenados en una Base de datos Azure.

 

Porción (“Slice”) nos da la habilidad de obtener un subconjunto de datos en base a la calendarización de la actividad. Esto es, si se calendariza por días, la porción será por día, si la calendarización es un por un rango de horas, entonces la porción será por hora. Con esto se logra trabajar con un rango más chico de datos.

Data Management Gateway es un software que conecta fuentes de datos en sitio a servicios en la nube para su consumo.

 

Centro de Datos (“Data Hub”) es el contenedor lógico para los servicios de almacenamiento de datos y de cómputo.

En resumen, podemos ver que ADF nos permite copiar archivos de datos, iniciar flujos de trabajo en una forma controlada y calendarizada para poder procesar datos y tenerlos listos en el lugar especificado.

En el siguiente blog realizare un paso a paso de cómo realizar una ADF

 

Mas Información