Supongamos que somos una empresa de publicidad online. Nuestros anuncios aparecen en múltiples medios digitales por todo el mundo intentando captar compradores. Cada vez que un usuario hace click en uno de nuestros anuncios, es redirigido a la página web de nuestro cliente para ofrecerle la posibilidad de comprar sus productos.

Nuestro sistema tradicional basado en una API REST que recibe los eventos que se producen y los almacena en una base de datos MySQL tarda demasiado en procesar las grandes cantidades de datos recibidas. A día de hoy, somos incapaces de gestionar y analizar el tremendo volumen de información que manejamos.

¿Serías capaz de diseñar una solución big data que nos permitiera obtener estadísticas de diversa índole en el menor tiempo posible?

Nos gustaría saber...

El número de impresiones, clicks y compras (conversion rates) en un período de tiempo determinado.

¿Podríamos obtenerlos agrupados por país, user agent, campaña, advertiser o publisher (sólo por una de ellas)?

¿Seríamos capaces de combinar diferentes variables (dos o más)?

El sistema debería soportar consultas y recepción de eventos simultáneos sin que su rendimiento se vea afectado. La granularidad del tiempo esperada es de una hora y es aceptable que no se puedan consultar datos de la hora en curso; se valorará positivamente si también se ofrece solución para esto.

Nuestro sistema recibe como datos de entrada tres tipos de eventos diferentes con las siguientes variables:

  • . Impresiones: id único, país, navegador, campaña, advertiser, publisher, timestamp.
  • . Clicks: id único, timestamp, id de impresión relacionado.
  • . Conversion rates: id unico, timestamp, id de click relacionado.

Y podemos asumir que...

Si un click se produce pasadas seis horas de la impresión, se rechaza. La conversión se puede aceptar hasta pasado un mes del click.

Hay aproximadamente un click por cada mil impresiones y una compra por cada mil clicks.

Te pedimos que nos envíes el diseño del modelo de datos y de la arquitectura del sistema que propones para solucionar el problema. Si quieres enviarnos código, ¡mejor aún!

500€ para la mejor solución

El jurado

Vuestras ideas serán evaluadas por un jurado imparcial y versado en la materia. Van a valorar la eficacia de la solución y, sobre todo, su originalidad. Si el jurado considera que ninguna solución cumple con los requisitos el premio quedará desierto.

  1. Imagen de Oscar Méndez, CEO de Stratio
    Oscar Méndez
    CEO de Stratio
  2. Imagen de Carmen Vidal, COO de Stratio
    Carmen Vidal
    COO de Stratio
  3. Imagen de Óscar Puertas, Big Data Architect de Stratio
    Óscar Puertas
    Big Data Architect en Stratio