Esto viene puramente de mi experiencia. Nosotros (como nuestra startup) estamos construyendo un sistema para “hacer algo” a los datos, ya que todavía no hemos definido claramente todas nuestras necesidades. Hemos asumido un par de situaciones
– Si necesita almacenar toneladas y toneladas de datos, piense primero en su almacenamiento, qué características de ese almacenamiento desea usar (además de escalar, digamos que la mayoría de NoSQL se centra más o menos en la agrupación fuera de la caja). ¿Necesita agregar datos, le interesan las transacciones, qué tal la consistencia entre el documento, la lista, etc.
– Si sus datos contienen muchos efectos secundarios cuando entran (por ejemplo, Twitter o Facebook, las publicaciones activarán las acciones correspondientes, como mencionar, hacer referencia, etc.), es posible que desee realizar micro lotes para la transformación de datos, tenemos estado usando Apache Storm para este propósito.
- ¿Puede una startup tecnológica obtener fondos solo con una aplicación web antes de crear las aplicaciones móviles?
- ¿Cuáles son las ventajas de usar una base de datos en una aplicación web en lugar de un diccionario de Python?
- Cómo crear una página web de manera fácil
- ¿Cómo hacen las personas para escribir documentos de ayuda para una aplicación web?
- Cómo escalar esta aplicación de base de datos para manejar decenas de millones de registros
– Si no tiene idea de qué tipo de transformaciones de datos puede necesitar, puede comenzar con el almacenamiento de datos sin procesar puros y hacer la transformación / extracción de datos macro-batching usando Apache Spark.
Hay dos formas de pegar esas cosas por completo
– Una aplicación para conectarlos a todos, las cosas se compartirán en la memoria
– Diseña microservicios para cada componente mencionado y los pega usando un sistema de cola (un montón de ellos para elegir)
– O no necesita pegarlos en absoluto, porque, al final del día, cada componente se preocupa por su almacenamiento y de dónde provienen los datos. Por lo tanto, el almacenamiento de datos será su medio de comunicación.
Solo por nuestra experiencia, hemos estado usando Vert.x 3 para este propósito. ¿Que tiene?
– Servidor TCP de bajo nivel basado en Netty para que pueda comunicarse con la mayoría de los servidores a gusto (por ejemplo, Kafka, Mongo, Redis, etc.) de una manera de baja latencia y sin bloqueo
– Servidor HTTP de nivel medio para que pueda configurar sus interfaces REST
– Cola agrupada lista para usar (lo llaman bus de eventos) para que pueda pegar sus componentes según sea necesario