Tengo un programa en el que los datos se generan muy rápido, ¿cómo inserto los datos en una base de datos?

A2A.

Creo que ya hay varias respuestas que intentan abordar la pregunta desde una perspectiva técnica, escribir en un archivo y luego cargar por lotes más tarde.

Pero tengo una pregunta para esta pregunta. Tiene una aplicación de escritorio que crea 1 GB de datos por minuto. Eso es aproximadamente 1,5 TB de datos por día. ¿Qué diablos está haciendo? Ese es un volumen de datos absolutamente masivo para una aplicación de escritorio de los estándares actuales. Por supuesto, se está quedando sin RAM, la mayoría de las computadoras de escritorio construidas ahora vienen con 16 GB. Lo estás llenando en 16 minutos.

Es probable que los datos de esa velocidad requieran varios servidores básicos para soportar adecuadamente. En lugar de tratar de acomodar todos los 1 GB de datos por minuto, pensaría mucho en lo que realmente necesito de los datos. ¿Existe la oportunidad de agregarlo previamente? ¿Necesita todos los detalles de nivel atómico almacenados en un DB? ¿Qué es lo que estás tratando de lograr al capturar estos datos?

En general, escriba en un archivo y luego insértelo lentamente en la base de datos o procese sus datos.

La respuesta canónica a su problema es Kafka. Otra buena respuesta es usar un DB más rápido. 🙂

Lo codificaría en C ++ con mis bibliotecas, pero eso no es algo listo para usar por todos todavía.

Volcarlo en un archivo y analizarlo más tarde.

Mejor aún, vuélvala a una serie de archivos con un número máximo predefinido de líneas cada una y luego comience a analizar cada una en su propio hilo una vez que el programa principal abandone el puntero de archivo.

La pregunta es demasiado amplia ya que la respuesta dependerá de la plataforma en la que esté escribiendo. ¿Es Windows o Linux y luego qué base de datos estás usando?

También dependerá de si está escribiendo datos indexados (y si es así, qué tan bien elige su índice).

¿Esta computadora está ejecutando un proceso? ¿O un entorno de control de calidad / producción con un grupo de máquinas? En cualquier caso, explore Logstash

https://www.elastic.co/products/…