La ingestión de datos en Azure es uno de los pasos clave dentro de lo que explicaba en un anterior post bajo el título de Almacenamiento de Datos Moderno, en el que hablaba de las diferentes fases o pasos a llevar a cabo en una solución de este tipo en la plataforma Azure. Entre estas fases comentaba la de preparación de datos que corresponde en buena parte al proceso conocido como ingesta de datos, materia del presente post; tenemos diferentes opciones para ello pero especialmente Azure Data Factory, aunque este servicio nos permitirá realizar más tareas gracias a las diferentes funcionalidades que integra.
La ingesta de datos es el proceso que se usa para cargar datos de uno o varios orígenes en un almacén de datos. Los datos se pueden ingerir mediante el procesamiento, bien por lotes, bien por streaming, en función de la naturaleza del origen de datos. Azure ofrece un enfoque flexible con diferentes maneras de ingerir los datos para adecuarse a cualquier casuística.
Azure Data Factory
Azure Data Factory es un servicio de Azure que nos permitirá ingerir datos de diferentes orígenes, y que estén tanto en local como en la nube. Y mientras lo está haciendo también podremos limpiarlos, transformarlos, y reestructurarlos antes de grabarlos en un repositorio.
Data Factory tiene un motor de orquestación que nos permite dirigir y controlar otros servicios, incluso conectarlos, y así los datos fluirán entre ellos. Con la orquestación crearemos operaciones que pueden resultar complejas combinando y automatizando secuencias de tareas; y para ello cuenta con distintos recursos:
- Servicios vinculados: mediante estos servicios, Data Factory obtiene la información que le permitirá conectarse, por ejemplo, a una cuenta de almacenamiento como Azure Blob Storage, o una base de datos Azure SQL Database
- Conjuntos de datos: tanto si los conjuntos de datos se quieren ingerir como almacenar (entrada o salida, respectivamente), se conectarán mediante un servicio vinculado. Pueden tener o no estructura, dependiendo del tipo de valores. Siguiendo los dos ejemplos comentados en el apartado anterior, en el caso de Blob Storage no estarían estructurados, y sí lo estarían en el de SQL Database
- Canalizaciones: Las canalizaciones –pipelines– son agrupaciones lógicas de acciones -actividades- que en su conjunto llevan a cabo una tarea. Ejemplos de estas acciones son la ingesta de datos, su transformación, posibles combinaciones, o incorporar elementos de otros servicios como los que comentaremos posteriormente
Otros servicios de ingestión de datos
A menudo, las organizaciones tienen numerosos orígenes de datos distintos. A fin de ofrecer una solución completa en la nube, es importante tener un enfoque flexible para la ingesta de datos en un almacén de datos de Azure. Azure ofrece varias maneras de ingerir datos, y además de Data Factory, tenemos disponibles otras opciones como las siguientes:
Polybase
Polybase es una funcionalidad que encontramos en SQL Server y Azure Synapse Analytics, y que nos habilita a acceder a datos de orígenes externos como Hadoop, Spark, Azure Blob Storage, Cosmos DB, Oracle, Teradata y MongoDB, mediante código Transact-SQL. Este acceso permite leer dichos datos como si fueran tablas SQL o copiarlos a SQL Server o Synapse. Y Data Factory también puede invocar a estos procesos de Polybase
SQL Server Integration Services -SSIS-
Integration Services es el Servicio de Business Intelligence incluido en SQL Server que, resumiendo, es una herramienta ETL (Extract, Transform, Load). Con ella podemos crear soluciones de transformación e integración de datos, administrarlos, cargarlos, hacer minería… a través de las tareas y transformaciones incluidas en sus herramientas gráficas -o mediante código- se crean los procesos necesarios que encapsularemos en paquetes. Y estos se pueden utilizar como tal, llamarlos desde código de programación, o también desde Azure Data Factory podemos ejecutar los paquetes, lo que permite reaprovechar la lógica que tengamos desarrollada sin tener que reescribirla.
Además, existe un “Feature Pack” de SSIS para Azure que permite conectarse a sus servicios, y transferir datos entre orígenes locales y Azure (Storage, Data Lake, y HDInsight), y procesar datos en Azure.
Azure Databricks
Databricks se basa en Spark, y es una plataforma de análisis que procesa datos en múltiples tipos de almacenamiento: Blob Storage, Data Lake, Hadoop, bases de datos SQL, Cosmos DB, o archivos planos, al igual que datos de streaming. Azure Data Factory puede utilizar el código de Spark (escrito en los notebooks, o cuadernos) incluso pasándole parámetros.
En un próximo post cubriremos la carga de datos en Azure Synapse Analytics, otra de las fases del Almacenamiento de Datos Moderno,