La elección del tipo de técnicas de procesamiento y análisis de datos influirá decisivamente en el resultado. Potencia y escalabilidad son características que deben ser tenidas en cuenta de la misma forma que las capacidades del sistema para recoger los valores atípicos, detectar la existencia de fraudes en las transacciones o llevar a cabo controles de seguridad. La tarea más difícil, sin embargo, es la de lograr disminuir la latencia de la analítica que se practica sobre un conjunto completo de grandes datos, algo que requiere el procesar terabytes de datos en cuestión de segundos.
Los requerimientos relativos al tiempo de respuesta, las condiciones de los datos a analizar o la carga de trabajo son las cuestiones que terminarán de determinar cuál es la mejor elección en materia de técnicas de procesamiento y análisis de datos.
Apache Hadoop es un marco de computación distribuida el modelo de Google MapReduce para procesar grandes cantidades de datos en paralelo. Hadoop Distributed File System (HDFS) es el sistema de archivos subyacente de un cluster Hadoop y funciona de manera más eficiente con un número reducido de archivos big data de gran volumen, que con una cantidad superior de archivos de datos más pequeños.
Un trabajo en el mundo Hadoop suele durar de minutos a horas para completarse, por lo tanto, podría afirmarse que la opción Hadoop no es la más indicada cuando el negocio tenga la necesidad de llevar a cabo un análisis en tiempo real, sino más bien en los casos en que sea posible conformarse con una analítica offline.
Recientemente, Hadoop ha evolucionado para adaptarse a las nuevas necesidades empresariales. Los negocios hoy día demandan:
Hadoop se ha renovado mejorando su capacidad de gestión gracias a una novedad que se conoce como stream. Uno de los principales objetivos de Hadoop streaming es desacoplar Hadoop MapReduce del paradigma para dar cabida a otros modelos de computación en paralelo, como MPI (Message Passing Interface) y Spark. Con las novedades de la aplicación de técnicas de procesamiento y análisis de datos en streaming se superan muchas de las limitaciones del modelo batch que, si bien puede considerarse demasiado rígido para determinadas funciones, algo que no es de extrañar si se tiene en cuenta que sus orígenes datan de hace más de cuatro décadas; todavía es el más indicado, por la relación coste - resultados, para operaciones como:
Tal vez te interese leer:
Big Data, un reto para el tradicional almacenamiento de datos
Este tipo de técnicas de procesamiento y análisis de datos se basan en la implementación de un modelo de flujo de datos en el que los datos asociados a series de tiempo (hechos) fluyen continuamente a través de una red de entidades de transformación que componen el sistema. Se conoce como procesamiento streaming o de flujo.
No hay limitaciones de tiempo obligatorias en el procesamiento de flujo, al contrario de lo que sucede con las técnicas de procesamiento y análisis de datos en tiempo real. Por ejemplo, un sistema que se ocupe del recuento de las palabras incluidas en cada tweet para el 99,9% de los tweets procesados es un sistema de procesamiento en stream válido. Tampoco existe una obligación en cuanto al plazo de tiempo de generación del output por cada input recibido en el sistema. Las únicas limitaciones son:
Este tipo de técnicas de procesamiento y análisis de datos no está destinado a analizar un conjunto completo de grandes datos, por lo que generalmente no presentan esa capacidad, salvo excepciones.
Tal vez te interese leer:
Bases de datos transaccionales: la mina de oro digital
Cuando los datos se trabajan en tiempo real el nivel de procesamiento analítico en línea alcanzado es extremadamente alto y el margen es inferior a segundos. Precisamente por ello, los sistemas real time no suelen usar mecanismos especiales para la atomicidad y durabilidad. Simplemente se ocupan de procesar la entrada tan pronto como sea posible.
La cuestión es lo que puede suceder si pierden la entrada. Cuando esto ocurre, hacen caso omiso de la pérdida y siguen procesando y analizando sin detenerse. En según qué entorno, esto no supone un problema, por ejemplo, en un ecommerce, pero puede serlo en el sistema de vigilancia de seguridad de un banco o de una instalación militar. No es bueno que se pierda información, pero incluso la tecnología tiene un límite y, cuando se trabaja de verdad en tiempo real, el sistema no puede dejar las operaciones para volver a arreglar algo que ya es pasado, quedó segundos atrás. Los datos que siguen llegando y el sistema debe hacer todo lo posible para continuar su procesamiento.
En cualquier caso, las técnicas de procesamiento y análisis de datos en tiempo real merecen una seria consideración, antes de su implementación ya que: