Los Procesos ETL: poniendo orden a los datos, ¿Te atreves?

Los procesos ETL son una parte de la integración de datos que se refiere a los tres pasos (Extract, Transform, Load) utilizados para combinar datos de múltiples fuentes.

Durante este confinamiento se hablaba mucho en las noticias, en las tertulias y en las ruedas de prensa sobre los datos de la pandemia. Cada vez que terminaban una exposición me preguntaba: “¿Cada hospital, ciudad, comunidad autónoma… está siguiendo los mismos criterios?

Los que trabajamos con datos sabemos que conseguir que diferentes equipos sigan un mismo criterio es muy difícil. La respuesta a mi pregunta inicial vino a las semanas, cuando se dieron cuenta que estaban contando mal el número de fallecidos, ya que tenían criterios distintos en las diferentes fuentes de datos. Explicar a las personas que esto no es tan raro fue complicado porque quienes son ajenos a este mundo no conocen la tarea ardua que es el encaje de todo.

En un proyecto de integración de datos, la parte del proceso ETL (Extract, Transform, Load) es la que más horas puede llevar. Aunque si se hace bien, tenemos prácticamente el 70% del proyecto hecho porque dispondremos de unos datos limpios, coherentes, un esquema flexible y con ello unos resultados fiables. Veamos a ver en detalle, en qué consisten los procesos ETL.

Los Procesos ETL

¿Qué pasos tienen los procesos ETL?

  • 1. Análisis de las fuentes de datos y extracción de datos (Extract)

La primera fase de los procesos ETL consiste en extraer los datos desde su origen. Hay que tener en cuenta que, como hemos dicho, los datos pueden provenir de diferentes fuentes y tener distintos formatos. Cada departamentos o compañía generan los suyos, que según sus necesidades, tienen una gama amplia de criterios, y que en el peor y común de los casos, en su mayoría no coinciden.

En esta fase es fundamental hablar claramente con nuestro cliente y explicarle lo que nos hemos encontrado, y ver cómo unir todos esos datos y criterios para que podamos cumplir con el objetivo final: obtener datos válidos para el proyecto.

Una vez que tenemos esto claro, debemos plantear un esquema de datos flexible, que no se vea alterado si agregamos nuevas fuentes. Realmente este es un punto complicado ya que está sujeto a cambios y versiones y puede llegar a ser un quebradero de cabeza. Como decimos en nuestro equipo de desarrollo si llegamos a este punto “estás pillando rollo.”

  • 2. Transformación de datos (Transform)

Basándonos en las fuentes, sus criterios y el esquema de datos planteado, a continuación toca la transformación de datos para hacer que todos ellos sean homogéneos.

En general, en esta fase es cuando siempre te peleas con las fechas y sus formatos. Algo tan común como marcar los días puede convertirse en tarea ardua: formato de fechas diferentes, servidores en diferentes franjas horarias, diferentes criterios para establecer la fecha, etc. Otro problema común son los decimales, algunos con coma, otros con puntos. Y qué decir de los acentos, la “ñ”, los caracteres que nunca se deberían usar en palabras como: “.”o “\”. ¡Puede ser un mar de discrepancias!

Por otro lado, se suelen crear nuevas variables que posteriormente te ayudarán a analizar los datos desde un punto de vista de data scientist y aplicar algoritmos.

  • 3. Carga de datos (Load)

Esta parte es la más rápida, si todo lo anterior está bien hecho. Aunque uno no puede evitar de cruzar los dedos mientras se hace la carga de datos.

Aquí no termina el trabajo. Los procesos ETL deben automatizarse y tienen que ser buenos, bonitos y baratos. Bromas aparte, los procesos tienen que ser rápidos, flexibles y escalables. Además, siempre hay que generar logs para tener todo el proceso controlado, y saber si falla algo por qué falla, warnings, datos útiles, entre otros.

Generar los logs, al menos para mí, no es una tarea muy amigable. Pero, ¡qué satisfacción cuando termina el proceso y facilita la vida a muchos equipos que utilizan esos datos! En estos momentos estoy trabajando en un proceso de ETL de un proyecto que está siendo complicado. Así que estoy “pillando rollo”. ¡Deseadme suerte! Y vosotros, ¿qué tal vuestras experiencias?

Lourdes es Data Scientist senior en DBI. Tras unos años de investigadora pasa a aplicar sus conocimientos de matemáticas y programación en el mercado de las telecomunicaciones, banca y en publicidad. Proyectos que le permitieron sumergirse en el ámbito del Machine Learning, que se ha convertido en su pasión. Su objetivo es aprender día a día y poderse enfrentar a nuevos retos en el desarrollo de modelos de previsión, detección o estudio.

Enviar comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *