Procesos ETL: cómo obtener valor de los datos

7 de mayo de 2019

Un estudio de Bain & Company estima que los gerentes que se apoyan en la analítica de datos toman decisiones cinco veces más rápido que los que no. Esto es posible gracias a los procesos ETL, que permiten obtener la máxima utilidad de los datos.

 

La analítica y el business intelligence son áreas que toman cada vez más fuerza en el área de los negocios. De hecho, un informe de Gartner prevé que el valor del mercado de estas áreas alcanzará los 20 mil millones de dólares en 2019, lo que multiplicará la demanda de las tecnologías relacionadas con el procesamiento de datos.

¿Qué son los procesos ETL?

Los procesos ETL (extract, transform y load) son aquellos mediante los cuales se extrae información de uno o varios orígenes de datos. Ésta se transforma para adaptarla a las necesidades del negocio y posteriormente se carga en un sitio compartido para su consulta por todas las partes interesadas.

Una de las características más importantes del sistema ETL es que permite integrar en un entorno homogéneo aquellos datos de orígenes heterogéneos. Sin embargo, la configuración del flujo de trabajo tiene un cierto nivel de complejidad y un proceso ETL mal diseñado puede causar problemas operacionales de un coste muy elevado.

¿Por qué son importantes los procesos ETL?

Los procesos ETL son la principal fuente de información para la capa de negocios de la empresa. A veces, la única. Estos procesos permiten que los gerentes tengan un panorama claro, detallado y profundo de la gestión empresarial. Y gracias a esta información, en una fase posterior de análisis, se pueden detectar patrones y tendencias sobre las que tomar decisiones estratégicas de alto impacto.

Sin embargo, los datos por sí solos no aportan valor alguno, pues éstos son recogidos en un estado bruto, que no permiten ni lectura ni análisis por parte de las personas. Para que los datos puedan ser valiosos, deben ser procesados y transformados desde su estado bruto a un estado legible y práctico. Aquí es donde entra en juego el proceso ETL.

Por ejemplo, un historial de compras de un cliente está conformado, entre otros puntos, por la siguiente información:

  • Datos de contacto del cliente y otros datos relevantes.
  • Listado con los artículos adquiridos.
  • Detalles sobre dichos artículos: descripciones, precios, cantidades, etc.
  • Importe final de cada pedido.
  • Estado transaccional de los pedidos (en curso, finalizados, anulados, etc).

Para que el historial de compras pueda brindar toda esta información de manera clara y legible, el proceso ETL tiene que intervenir para obtener y procesar los datos en bruto hasta adaptarlos a los formatos adecuados. Esto es debido a que los datos no se almacenan en los sistemas de la organización tal cual se muestran en el historial.

Si un gerente quiere consultar el historial de un único cliente, el sistema debería limitar su búsqueda a esos únicos datos (entre la ingente cantidad que maneja la empresa), realizar cálculos, seleccionar los campos que se van a mostrar en la plantilla del historial y darles el formato indicado para su presentación.

Fases de un proceso ETL

1. Extracción (extract)

La primera fase de un proceso ETL es la de extracción de datos. En ésta se obtiene la  “materia prima” con la que se trabajará en las siguientes dos fases, hasta conseguir una utilidad práctica.

Los datos provienen de distintos orígenes y fuentes: registros de sistema, CRM, puntos de venta y dispositivos utilizados, entre otros. Es muy probable que estas fuentes sean heterogéneas, por ello los datos deben ser normalizados. También se deben compaginar en estructuras comunes aquellos datos que contengan el mismo tipo de información, aunque provengan de orígenes distintos.

El objetivo de la fase de extracción es sintetizar toda la información en una o varias estructuras comunes en las que se almacenen los datos normalizados, dejándolos completamente homogeneizados, organizados y listos para la fase de transformación. Es posible que en esta primera etapa se ejecuten algunas transformaciones propias del origen de datos.  El objetivo es que estos queden optimizados para la etapa de transformación.

Un ejemplo de extracción sería un fichero de datos de ventas agregados por meses y departamentos, una fila por cada departamento y una columna por cada mes, es decir, cada nuevo mes se añadiría una columna. Este formato es adecuado para tratar ficheros manuales pero muy poco eficiente para una base de datos.

Por otra parte, en esta fase técnica se desarrolla la mayoría de las operaciones de I/O (entrada/salida), que suelen ser bastante costosas.

2. Transformación (transform)

En la fase de transformación es cuando aportamos valor a los datos obtenidos en la fase de extracción. Es donde radica el fundamento del proceso ETL.

Al estar aislada de la primera, en la que se gestionan cuestiones técnicas, la capa de negocio puede implicarse en el desarrollo de esta transformación, con el el objetivo de transformar los datos y aportar valor.

3. Carga (load)

La tercera y última fase es la carga. Es cuando el sistema recibe los datos debidamente procesados y los almacena en el destino que se haya definido. En esta etapa también se aísla a la fase de transformación de posibles cambios en el destino.

Por ejemplo, es posible que inicialmente el resultado de la ETL se almacene en un fichero para que sea utilizado por la capa de negocio, pero más adelante se decida almacenar esos resultados en una base de datos.

En determinados entornos, cuestiones como la definición, validación o implementación de un modelo de datos y de procesos de ingesta pueden durar meses. Por eso, la capa de negocio puede obtener gran valor al contar con la posibilidad de generar resultados inmediatos en ficheros y, más adelante, almacenarlos en base de datos al cambiar solo la fase de carga.

Metodología de desarrollo flexible y ágil en procesos ETL

El modo en que las empresas ejecutan los sistemas ETL está evolucionando. Hoy en día, todo gira alrededor de una perspectiva ágil y eficiente. Es por ello que, según un estudio de Gartner, el 90% de las grandes empresas habrán contratado a un Chief Data Officer en este año 2019. Esto con el objetivo, entre otros, de contar con el personal especializado en las optimizaciones ETL.

Las tres fases pueden desarrollarse de forma integrada, especialmente cuando los procesos ETL no son complejos. No obstante, desarrollarlas de forma flexible e independiente  aporta las siguientes ventajas:

  • Es posible asignar cada fase a equipos distintos para acortar plazos de trabajo.
  • El desarrollo de cada etapa se puede hacer con diferentes tecnologías.

  • Los cambios que afecten a una fase (por ejemplo, el cambio en el origen de los datos) se pueden aislar del resto de fases.

  • Se pueden hacer pruebas en cada etapa por separado, puesto que solo se verá afectada la etapa en la que se está introduciendo la prueba.

  • El trabajo hecho para un proceso ETL puede ser reutilizado para otros procesos ETL, especialmente las fases de extracción y carga.

  • La capa de negocio se puede implicar en la fase de transformación, con el objetivo de definir la lógica del sistema ETL, sin tratar cuestiones técnicas que quedan aisladas en la fase de extracción y dificultarían la compresión de la capa de negocio.

  • Los resultados pueden ser generados a corto y largo plazo sin que ello afecte a la lógica del proceso ETL, realizando cambios únicamente en la fase de carga.

Es importante aplicar un enfoque de desarrollo flexible, pues, su mayor importancia está en poder implicar a la capa de negocio en la definición de la lógica ETL con el fin de generar resultados a corto plazo, sin necesidad de involucrarse en cuestiones técnicas.