La forma más rápida de almacenar datos de sensores en java

Actualmente estoy escribiendo una aplicación Java que recibe datos de varios sensores. La frecuencia con la que esto sucede varía, pero creo que mi aplicación recibirá señales unas 100k veces por día. Me gustaría registrar los datos recibidos de un sensor cada vez que la aplicación recibe una señal. Debido a que la aplicación hace mucho más que registrar datos del sensor, el rendimiento es un problema. Estoy buscando la mejor y más rápida forma de registrar los datos. Por lo tanto, es posible que no use una base de datos, sino que escriba en un archivo y conserve 1 archivo por día.

Entonces, ¿qué es más rápido? ¿Usar una base de datos o iniciar sesión en archivos? Sin duda, también hay muchas opciones sobre qué software de registro utilizar. ¿Cuál es el mejor para mi propósito si iniciar sesión en el archivo es la mejor opción?

Los datos almacenados podrían usarse más tarde con fines analíticos, así que tenga esto en cuenta también.

Respuesta 1

En primer lugar, le recomendaría usar log4j (o cualquier otro marco de registro). Puede usar un apéndice jdbc que escriba en el db o cualquier tipo de apéndice de archivo que escriba en el archivo. El punto es que su código será lo suficientemente genérico como para cambiarlo más adelante si lo desea ...

En general, los archivos son mucho más rápidos que el acceso db, pero aquí hay un lugar para las optimizaciones. Si el rendimiento es crítico, puede usar llamadas por lotes / asíncronas a la infraestructura de registro.

Respuesta: 2

Una base de datos gratuita en una PC barata debería poder registrar 10 registros por segundo fácilmente.

Una base de datos sintonizada en un buen sistema o un registrador en una PC barata debería poder escribir 100 registros / líneas por segundo fácilmente.

Un registrador sintonizado debería poder escribir 1000 líneas por segundo fácilmente.

Un registrador binario rápido puede realizar 1 millón de registros por segundo fácilmente (dependiendo del tamaño del registro)

Su requerimiento es de aproximadamente 1.2 registros por segundo por señal que debería poder lograr de la manera que desee. Supongo que desea poder consultar sus datos, por lo que eventualmente lo desea en una base de datos, por lo que lo pondría allí.

Respuesta: 3

¿Hay alguna manera de que pueda tener varios componentes de wicket diferentes que tengan la misma implementación de isVisible (), por ejemplo, tengo etiquetas, TextFields, DropdownChoices y etc. que tienen el mismo ...

Estoy usando Google-java-formatter en IntelliJ IDEA. Intenté todas las opciones presentes en configuración> editor> estilo de código> java pero no pude cambiar este comportamiento. vacío privado ...

Estoy trabajando en una aplicación de Android en la que envío una respuesta http a un servidor y obtengo una respuesta en cadena que está en formato JSON, ahora sobre la base de esta respuesta necesito generar una columna apilada ...

Tengo 2 aplicaciones Java Spring Boot que conecto por el puerto local 81. El código está bien, ya que funciona en Eclipse. Cuando uso docker trato de exponer los puertos y falla. No puedo conseguir el estibador ...