Volver al listado

Data Squad

alt text

El reto

Se dice que los datos son "el nuevo petróleo", y lo cierto es que de un tiempo a esta parte la información parece ser el combustible que alimenta el motor de la economía mundial.

Hace ya unos años nuestro cliente decidió embarcarse en un ambicioso proyecto para ampliar sus capacidades de análisis de datos como parte de una estrategia más amplia de transformación digital, formando equipos multidisciplinares agrupados en tres categorías:

  • Ingenieros de datos
  • Analistas y científicos de datos
  • Expertos en visualización y business intelligence

El objetivo último del proyecto era poner en valor los datos del cliente, que en ese momento estaban dispersos en multitud de fuentes de datos tales como bases de datos Oracle y SQL Server, ficheros Excel, Servicios Web SOAP y muchas otras.

Esta dispersión de datos hacía muy complicado obtener insights sobre los mismos, ya que por lo general el verdadero valor de los datos sólo se pone de manifiesto cuando éstos pueden ser comparados y relacionados con otros.

Además de esto, las capacidades de BI de nuestro cliente estaban muy limitadas por el stack tecnológico, cuya complejidad impedía a usuarios de negocio desarrollar informes y dashboards por ellos mismos, de modo que el proceso de obtención de reports era muy tedioso y requería personal especializado.

Nuestra por entonces joven empresa puso todo su empeño en ayudar a nuestro cliente en estas tres áreas, pero centramos la colaboración principalmente en la de ingeniería de datos, donde nuestros conocimientos de tecnologías Big Data y Cloud resultaron muy valiosos para llevar el proyecto a buen puerto y para consolidar una colaboración que hoy en día sigue en activo.

Así lo hicimos

Tras una fase previa de discovery, la primera etapa del proyecto consistió en el aprovisionamiento de un cluster de Hadoop en Amazon Web Services. Este área se convertiría en el espacio de trabajo principal para análisis de datos masivos en batch. Las tecnologías más habituales para trabajar en este área fueron:

  • Apache Airflow
  • Apache Hive
  • Apache HBase
  • Apache Spark
  • HDFS
  • S3

Utilizamos Apache Airflow como herramienta de construcción y monitorización de las ETLs (DAGSs en terminología de Airflow), aprovechando sus capacidades nativas para conectar con múltiples fuentes de datos, pero también extendiendo sus capacidades para construir nuevos operadores. La escalabilidad de la solución quedó garantizada mediante el uso de Kubernetes, de forma que nuestras ETLs se ejecutaban como conjuntos de pods.

Por lo general nuestras ETLs dejaban la información en bruto en S3, desde donde etapas sucesivas aplicaban más transformaciones y limpieza de datos mediante Hive y Spark hasta llegar a etapas donde la información quedaba ya lista y conforme a un modelo de datos predefinido.

En muchas ocasiones además la información diaria debía estar disponible para su explotación en dashboards, para lo cual se crearon nuevas etapas y operadores para cargar la información a AWS Redshift de forma eficiente.

Una vez que el Data Lake de nuestro cliente comenzó a alimentarse diariamente con su información comercial y operativa el proyecto entró en una nueva fase. De repente toda la información relevante de la compañía estaba accesible para los analistas de negocio, y casi de inmediato comenzó a explotarse por medio de potentes dashboards con Power BI, Tableau y otras tecnologías.

A partir de ese momento los científicos de datos de la compañía comenzaron a publicar insights cada vez más sofisticados en atractivos notebooks Jupyter, y a desarrollar modelos analíticos para predecir el comportamiento futuro a partir de los datos históricos. También en esta etapa fuimos capaces de aportar valor mediante la construcción y productivización de modelos analíticos realizados con Tensorflow, Keras y otras tecnologías, que podían ser usados por APIs desarrolladas en apenas unos días mediante FastAPI y DynamoDB y desplegadas, por supuesto, en Kubernetes.

Llegó entonces el momento de aumentar las capacidades de la plataforma para añadir procesamiento en tiempo real. Tomando como base un cluster de Apache Kafka, aprovechamos las capacidades de Kafka Connect y ksqlDB para realizar ingestas de datos en streaming, desarrollando procesos con Kafka Streams y Spark Streaming allá donde se requerían cálculos más complejos.

El resultado

De buenas a primeras los datos del cliente habían multiplicado su valor. Podían obtenerse insights sobre previsión de ventas en tiempo real, éramos capaces de construir APIs a una velocidad cada vez mayor, y los propios usuarios de negocio eran capaces de diseñar sus propios informes Power BI sin requerir de personal especializado.

Más tarde llegarían nuevas fuentes de datos, requisitos de negocio todavía más exigentes y nuevos retos para llevar a la plataforma de datos a nuevas cotas de capacidad y eficiencia.

A día de hoy un Data Squad formado por cinco expertos en tecnologías Big Data más un científico de datos y un experto en visualización continúan trabajando para extraer aún más valor de los datos de nuestro cliente.

Si usted tiene algún problema y si los encuentra, quizá pueda contratarlos :)