Procesos ETL sobre AWS Glue

Milton Sanabria
3 min readJun 16, 2020

--

AWS (Amazon Web Services) nos ofrece un abanico amplio de posibilidades y en este artículo hablaré puntualmente de la transformación de información. Mi intención es que puedas entender cómo después de tener esa información en la nube, puedes usar los servicios de AWS para hacer magia y coger tus datos, limpiarlos, transformarlos y dejarlos disponibles para que otros sistemas o servicios se alimenten de ellos o para que plataformas de visualización puedan usarlos.

Para poder convertirnos en esos magos será muy útil conocer el servicio de AWS Glue, esta será nuestra varita mágica. Glue es un servicio completamente administrado que nos permite construir ETL (Extract, Transform, Load) de manera fácil. El hecho de que sea completamente administrado quiere decir que no tenemos que preocuparnos por el acceso a un cluster ni a un sistema operativo. Configuramos las tareas que se requieren, las dejamos en Glue y él se encarga del resto.

Glue nos provee un contexto para poder trabajar con Python, Scala y Spark. Además, se encarga de crear un catálogo de metadatos que nos dice donde está la información que necesitamos y a su vez permite ser consultado por otros servicios como Athena.

Dentro de Glue contamos con dos elementos también importantes, los crawlers y los classifiers. Los crawlers tienen la tarea de ir a escanear e identificar los datos para luego poner su metadata en el catálogo. Además, utilizan classifiers personalizados o integrados para identificar formatos de datos y rellenar las tablas de metadatos.

Pero, ¿Cómo funciona Glue?

Glue puede conectarse a diferentes fuentes de información, tales como bases de datos relacionales, no relacionales, AWS S3 (almacenamiento por objetos), entre otros servicios. Él se encarga de tomar estos datos, realizar las trasformaciones y dejarlos disponibles para que otros servicios puedan utilizarlos.

Ya teniendo la información transformada se pueden utilizar servicios como Athena para hacer consultas SQL (usando el catálogo de Glue), Redshift que también toma estos datos para consultarlos, alimentar un cluster de EMR o incluso crear una cadena de ETL, es decir que tan pronto termine una transformación se tomen esos datos de salida y se ejecute otra transformación.

¿Cuándo usar Glue?

Glue se podría usar cuando se tenga una aplicación que produzca mucha información y se requiera hacer una transformación de estos datos, bien sea para limpiarlos o darles valor agregado con enriquecimientos. Por ejemplo, una aplicación del sector financiero que recibe los datos de todas las transacciones que realizan los clientes, estos pueden ser millones de registros. Con Glue podríamos tomar estos datos y organizarlos en tablas, que podrían ser para este ejemplo: pagos, retiros o transferencias. Aquí ya habría al menos un ETL, pero las posibilidades no terminan ahí. Se podría hacer un segundo ETL que tome la información de estas tablas y cree una nueva que permita tener una visión global de los clientes y sus actividades. Con lo anterior, vemos que es posible crear ETL completamente anidados, sin importar la cantidad de datos que tengamos.

Glue es una herramienta fácil de usar y muy útil a la hora de construir nuestros ETL, nos permite aprovechar el potencial de AWS para interconectar y alimentar múltiples servicios, procesar grandes volúmenes de información y convertirnos en magos de los datos.

Para un estudio más detallado de AWS Glue, puedes visitar la guía oficial para desarrolladores aquí.

¿Y ahora qué sigue?

Si te gusto este servicio y quieres verlo en acción, continua con este artículo donde aprenderás a desplegar un ETL sobre AWS Glue y a conectarlo con varios servicios de Amazon.

--

--