Hace dos meses, lanzamos una nueva función importante para Lokad: nuestra primera exploración de datos en tiempo real. Esta función se llama dashboard slicing y requirió una revisión completa del procesamiento de datos de bajo nivel que impulsa Envision para completarla. Con los slices de dashboard, cada panel se convierte en un diccionario completo de vistas de panel, que se pueden explorar en tiempo real con una barra de búsqueda.

Por ejemplo, al slicear un panel diseñado como un inspector de productos, que reúne en un solo lugar toda la información sobre un producto, incluidos los pronósticos de demanda probabilística y de tiempo de entrega, ahora es posible cambiar en tiempo real de un producto a otro.

Panel de Envision con slices

En la actualidad, Lokad admite hasta 200,000 slices (también conocidas como vistas de panel) que se pueden generar para un solo panel; y estos slices se pueden mostrar en tiempo real a través del selector, que cuenta con una función de búsqueda en tiempo real para facilitar la exploración de los datos. A diferencia de las herramientas de inteligencia empresarial (BI), estos slices pueden contener cálculos altamente complejos, no solo slice-and-dice sobre un cubo OLAP.

Cuadro de búsqueda para slices en el panel de Envision

Cuando se trata de procesamiento y generación de informes de datos, generalmente hay dos enfoques: procesamiento en línea y procesamiento por lotes. El procesamiento en línea recibe un flujo de datos y se espera que todo lo que muestra el sistema esté siempre actualizado: el sistema no se retrasa más de unos pocos minutos, a veces incluso unos pocos segundos detrás de la realidad. Los cubos OLAP y la mayoría de las herramientas conocidas como inteligencia empresarial entran en esta categoría. Si bien las analíticas en tiempo real 1 son muy deseables, no solo desde una perspectiva empresarial (los datos frescos son mejores que los datos obsoletos), sino también desde una perspectiva de usuario final (el rendimiento es una característica), también tienen limitaciones estrictas. En pocas palabras, es extremadamente difícil ofrecer analíticas inteligentes2 en tiempo real. Como resultado, todos los sistemas analíticos en línea tienen limitaciones severas en cuanto al tipo de análisis que pueden realizar.

Por otro lado, el procesamiento por lotes se ejecuta típicamente de manera programada (por ejemplo, ejecuciones diarias) mientras se ingresa todos los datos históricos (o una parte considerable de ellos). La frescura de los resultados está limitada por la frecuencia de programación: un procesamiento por lotes diario siempre proporciona resultados que reflejan la situación de ayer, no la situación de hoy. Como todos los datos están disponibles desde el principio, el procesamiento por lotes es ideal para realizar todo tipo de optimizaciones de cómputo que pueden aumentar enormemente el rendimiento general del proceso. Como resultado, a través del procesamiento por lotes es posible ejecutar clases completas de cálculos complejos que quedan fuera del alcance cuando se considera el procesamiento en línea. Además, desde una perspectiva de TI, el procesamiento por lotes tiende a ser mucho más fácil tanto de implementar como de operar 3. La principal desventaja del procesamiento por lotes es el retraso impuesto por la naturaleza por lotes del proceso.

Como plataforma de software, Lokad definitivamente se encuentra en el campo del procesamiento por lotes. De hecho, si bien la optimización de la Supply Chain Quantitativa requiere un alto grado de reactividad, hay muchas decisiones que no requieren reactividad instantánea, por ejemplo, decidir si producir una paleta adicional de productos o decidir si es hora de bajar el precio para liquidar un stock. Para estas decisiones, la principal preocupación es tomar la mejor decisión posible, y si esta decisión puede mejorarse mediblemente al invertir una hora más de cómputo en el caso, entonces es casi seguro que esta hora extra de cómputo será una buena inversión 4.

Por lo tanto, Envision está diseñado desde una perspectiva de procesamiento por lotes. Tenemos bastantes trucos en la manga para hacer que Envision sea muy rápido incluso cuando se trata de terabytes de datos; pero a esta escala estamos hablando de obtener resultados en cuestión de minutos, no en menos de un segundo. De hecho, debido a la naturaleza altamente distribuida del modelo de cálculo de Envision, es un desafío para Lokad completar la ejecución de cualquier script de Envision en menos de 5 segundos, incluso cuando solo hay unos pocos megabytes de datos involucrados. Cuanto más distribuido es un sistema, más inercia interna hay para sincronizar todas las partes. Más escalabilidad es enemiga de una menor latencia.

Hace unos años, introdujimos la noción de formularios de entrada en Envision: una función que te permite agregar un formulario configurable en el panel de control, que se convierte en una entrada accesible desde el script de Envision. Por ejemplo, a través de esta función, fue sencillo diseñar un panel de control destinado a un inspector de productos que muestra toda la información relevante a los productos especificados. Desafortunadamente, para que el panel de control se alineara con el valor del formulario recién ingresado, el script de Envision tenía que ser reejecutado, lo que llevaba segundos de retraso para obtener los resultados actualizados; una duración que era inaceptablemente larga para la exploración de datos.

Las slices del panel de control (consulta nuestra documentación técnica) representan nuestro intento de obtener lo mejor de ambos mundos: procesamiento en línea y por lotes. El truco es que Lokad ahora puede calcular en lotes una gran cantidad de slices (cada slice puede reflejar un producto, una ubicación, un escenario, o una combinación de todas esas cosas) y permitirte cambiar de una slice a otra en tiempo real, lo cual es posible porque todo ha sido precalculado. Naturalmente, precalcular un gran número de slices es más costoso computacionalmente, pero no tanto como uno podría pensar. Por lo general, es más barato para Lokad calcular 10,000 slices a la vez, en lugar de realizar 100 ejecuciones independientes, cada una dedicada a una sola slice.

A través de las slices, Lokad está adquiriendo capacidades de inteligencia empresarial mejorada: no solo es posible explorar muchas vistas diferentes (por ejemplo, productos, ubicaciones, períodos de tiempo) en tiempo real, sino sin ninguna de las restricciones habituales de las arquitecturas de procesamiento en línea.


  1. En un sistema distribuido, no existe tal cosa como “tiempo real”. La velocidad de la luz en sí misma impone límites estrictos al grado de sincronización de un sistema que se extiende por varios continentes. Por lo tanto, esta terminología es algo abusiva. Sin embargo, si la latencia total es de menos de un segundo aproximadamente, generalmente se considera aceptable calificar una aplicación de procesamiento de datos como “en tiempo real”. ↩︎

  2. Incluso los sistemas avanzados de procesamiento de datos en tiempo real, como los utilizados para la conducción autónoma, evitan cuidadosamente cualquier operación de aprendizaje al operar en tiempo real. Todos los modelos de aprendizaje automático se calculan previamente y son estáticos. ↩︎

  3. La implementación típica de un proceso por lotes consiste en mover archivos planos, lo cual es una característica básica compatible con prácticamente todos los sistemas en la actualidad. Luego, desde una perspectiva de operaciones, si un componente del proceso por lotes sufre una interrupción transitoria, generalmente se resuelve con una política de reintento simple. En cambio, los sistemas en línea tienden a comportarse mal cuando un componente se cae. ↩︎

  4. En la fecha actual, una hora de cómputo en una CPU moderna suele costar menos de $0.02 al utilizar el modelo de pago por uso en las plataformas dominantes de computación en la nube. Por lo tanto, siempre que los beneficios generados por una sola decisión mejorada de la cadena de suministro valgan mucho más de $0.02, tiene sentido invertir esta hora de cómputo. ↩︎