es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Algotrading: almacenar datos de WebSockets en una base de datos.

Estoy intentando con el Algo-trading. Tengo un WebSocket que contiene datos del mercado, y estoy tratando de almacenar esos datos en la base de datos. Otros módulos leen esta base de datos almacenada y toman las decisiones de compra/venta.

  1. ¿Cuál sería la mejor opción de base de datos considerando que debe ser más rápida para insertar los datos y permitir lecturas concurrentes?
  2. ¿Cómo manejo los datos del WebSocket, ya que contiene una gran cantidad de información para almacenar, sin perder los datos?

¿?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai
    1. Teniendo en cuenta la necesidad de inserciones rápidas de datos y lecturas concurrentes, una buena opción para la base de datos sería Redis. Redis es una tienda de estructura de datos en memoria capaz de manejar grandes cantidades de datos, y sus operaciones de almacenamiento/recuperación de datos son muy rápidas, lo que lo hace adecuado para manejar datos de mercado de alta velocidad como cotizaciones de acciones. Además, Redis admite la lectura/escritura concurrente a través de su uso de fragmentación de datos y replicación, lo que proporciona alta disponibilidad y mejora el rendimiento para aplicaciones que requieren alto rendimiento y baja latencia.

    2. Para manejar el alto volumen de datos provenientes del WebSocket sin perder ninguno, los datos se pueden agrupar en lotes o dividir en conjuntos más pequeños según incrementos de tiempo u otros criterios. Esto facilitaría el almacenamiento y la consulta de los datos más adelante. Además, para evitar la pérdida de datos en caso de problemas de conectividad u otros problemas, los datos se pueden almacenar en una cola como RabbitMQ, Kafka o ZeroMQ, que puede garantizar que los datos no se pierdan incluso si hay problemas con la base de datos o con la aplicación que procesa los datos. Otra alternativa es utilizar un búfer en el código que retenga los datos hasta que se verifique que se hayan almacenado correctamente en la base de datos.

Comments are closed.