A la hora de procesar grandes volúmenes de datos existen principalmente dos enfoques: análisis de datos en Reposo y análisis de datos en vuelo.

  • Análisis de datos en Reposo. Es la forma tradicional en la que se han procesado los datos hasta hace poco. Este tipo de análisis consiste en realizar un tratamiento de los datos almacenados durante cierto periodo de tiempo. Normalmente se buscan secuencias o patrones que reflejan algún tipo de comportamiento o tendencia. Suele realizarse sobre grandes volúmenes de datos que permiten un tratamiento estadístico y técnicas de análisis que habitualmente conllevan cierto tiempo realizar.
  • Análisis de datos en vuelo. Este tratamiento de los datos surge de la necesidad de inmediatez que se tiene en ciertos entornos, empresas u organizaciones a la hora de obtener algún tipo de información sobre los datos. El tratamiento de de datos en vuelo permite realizar un tratamiento de los mismos casi al mismo tiempo que estos son generados y antes de que se almacenen. El tipo de análisis es distinto del que tiene lugar cuando se analizan datos en reposo, puesto que no se tiene a disposición todo el volumen de datos durante un periodo de tiempo determinado, y se está limitado periodos de tiempo muy cortos. Básicamente este tipo de tratamiento se utiliza para la emisión de alarmas, detección instantánea de comportamiento anómalos y ejecución de comparativas en tiempo real. Suele realizarse sobre pequeños fragmentos de información.

El análisis de datos en vuelo da lugar a lo que se conoce como análisis de datos en tiempo real, sin embargo la definición de tiempo puede ser muy subjetiva y dependerá del entorno en el que tenga lugar.

Para un empresa de marketing o de ventas por Internet, un periodo de 1 o varios segundos entre la generación del dato y su análisis puede considerarse tiempo real, sin embargo en entornos industriales o en sistemas de navegación o control de vehículos estos tiempos de análisis pueden significar un desastre total, lo que se considera tiempo real esta en el orden de milésimas de segundo.

Se pueden establece 3 categorías en lo que se refiere al tratamiento de datos en vuelo, que pueden ser subjetivas según la perspectiva de quien las considere. Desde nuestro punto de vista seria:

  • Análisis en tiempo real estricto. Un procesamiento en tiempo real está en el marco de los milisegundos.
  • Análisis en tiempo casi real. Puede considerar tiempo casi-real un periodo del orden de un segundo.
  • Análisis de flujos. (Streaming). El análisis de flujos puede tener lugar en periodos de entre 1 y varios segundos, incluso en algunos casos se podría llegar al minuto, dependiendo del entorno, del tipo de análisis que se desee realizar y el tipo de resultados que se desee obtener.

Por tanto, cuando el procesamiento ha de hacerse en tiempos muy pequeños, se procesa de manera analítica parte de la totalidad de los datos. Para ellos es necesario:

  • Disponer de suficiente memoria  para almacenar entradas de datos en cola.
  • Que la tasa de productividad del sistema sea al menos igual o más rápida que el ratio de entrada de datos.
  • Un conjunto de algoritmos y software que permita absorber el volumen de datos generados y realizar el análisis de los mismos dentro del marco de tiempo establecido o aceptable.

Los análisis de datos en tiempo real suelen realizarse en sistemas cerrados, en los que no es necesaria una comunicación y análisis de datos vía Internet. Esto suelen ser instalaciones industriales donde se utilizan sistemas SCADA que proporcionan mecanismos de control y corrección en tiempos muy pequeños.

En las plataformas IoT comerciales para tratamiento de datos en vuelo suele utilizarse el enfoque de streaming o incluso de tiempo casi-real. La mera transmisión de datos a través de Internet hace casi imposible un tratamiento en tiempo real estricto.