¿Qué tecnología de big data es mejor para el procesamiento de datos en tiempo real?

Si tiene una gran cantidad de datos y necesita procesarlos en tiempo real, consulte InfiniFlux (www.infiniflux.com). InfiniFlux es un sistema de gestión de bases de datos de series temporales. El DBMS está equipado con un software llamado COLLECTOR que puede recopilar y transformar datos, y luego insertarlos en el servidor. InfiniFlux es una opción aún mejor para usted si tiene más de un tipo de datos. Si necesita procesar diferentes tipos de datos al mismo tiempo, el recopilador asignará sus agentes a cada tipo de datos que haga el trabajo. Todo este procesamiento de datos se realiza casi en tiempo real. Sería mejor si verifica si esto es adecuado para sus datos. Visite www.infiniflux.com/download para descargar el paquete. Es gratuito con algunas restricciones, pero creo que la versión gratuita satisfará sus necesidades de evaluación. Consulte la captura de pantalla a continuación sobre cómo se pueden procesar los datos.

Lo que es “mejor” depende en gran medida de los detalles de su carga de trabajo, su definición de “tiempo real”, cómo encaja su pieza en la arquitectura general y un montón de otros factores (recursos, presupuesto, tiempo de entrega). Dependiendo de los detalles, hay varias formas de resolver su problema.

MapReduce clásico, y las herramientas construidas sobre él (EG Hive y Pig) están muy adaptadas al procesamiento por lotes, por lo que no es una buena opción para el procesamiento incremental de baja latencia de las cargas de trabajo de transmisión. Del mismo modo, HDFS está optimizado para grandes lecturas y escrituras de transmisión: si escribe rutinariamente archivos en HDFS que son más pequeños que su tamaño de bloque (64 MB por defecto), probablemente debería permitir que algo como HBase administre sus datos. Sin embargo, Hive o Pig aún pueden ser una opción viable si su definición de “tiempo real” se mide en segundos en lugar de milisegundos.

Apache Storm es una opción para manejar cargas de trabajo de transmisión en tiempo real.

Apache Spark está conceptualmente más cerca de MapReduce pero con mayor velocidad y menor latencia y puede satisfacer sus necesidades. Si está tratando con datos relacionales, Spark SQL puede ser una manera fácil de administrarlos.

Apache Flume, con el uso de un Sink Decorator, es bueno para transformar la transmisión de datos en vuelo.

Salir del ecosistema Hadoop, una base de datos MPP como Vertica o GreenplumDB, o una base de datos en memoria como VoltDB, puede ser la herramienta adecuada para el trabajo. Tenga en cuenta que todos estos son productos comerciales; Existen alternativas de código abierto con las que podría experimentar.

Sin más detalles sobre el panorama general y sus requisitos, es imposible decir qué es lo mejor para su caso de uso.

Surgen dos casos:

1) Si sus datos de entrada son solo un archivo grande y (el archivo) no se está agregando con más datos, use Map Reduce en el que la función Map hace la limpieza y el reductor escribe el registro simplemente en un archivo de salida. Hadoop con datos en HDFS haría el trabajo.

2) Si la entrada está llegando continuamente (desde una fuente externa), debe configurar un flujo de datos de manera que los datos de la fuente se alimenten continuamente al flujo de datos. Esto se hace fácilmente configurando una topología de Storm.
Echa un vistazo a Storm (desde Twitter).