¿Cuáles son buenas soluciones de base de datos NoSQL y no relacionales para la base de datos de auditoría / registro?
¿Cuál sería la base de datos adecuada para seguir? Estoy especialmente interesado en sus experiencias con relaciones no relacionalesNoSQL sistemas. ¿Son buenos para este tipo de uso, qué sistema ha utilizado y recomendaría, o debería usar una base de datos relacional normal (DB2)?
Necesito recopilar información del tipo de registro / registro de auditoría de un montón de fuentes a un servidor centralizado donde podría generar informes de manera eficiente y examinar lo que está sucediendo en el sistema.
Normalmente, un evento de auditoría / registro consistiría siempre en algunos campos obligatorios, por ejemplo
ID globalmente único (de alguna manera generado por el programa que generó este evento)marca de tiempotipo de evento (es decir, usuario conectado, error ocurrido, etc.)alguna información sobre la fuente (servidor1, servidor2)Además, el evento podría contener pares clave-valor 0-N, donde el valor podría ser de hasta unos pocos kilobytes de texto.
Debe ejecutarse en el servidor LinuxDebería funcionar con una gran cantidad de datos (100 GB por ejemplo)debería soportar algún tipo de búsqueda eficiente de texto completoDebe permitir la lectura y escritura concurrentesDebe ser flexible agregar nuevos tipos de eventos y agregar / eliminar pares clave-valor a nuevos eventos. Flexible = no se requieren cambios en el esquema de la base de datos, la aplicación que genera los eventos solo puede agregar nuevos tipos de eventos / nuevos campos según sea necesario.Debería ser eficiente realizar consultas contra la base de datos. Para informar y explorar lo que sucedió. Por ejemplo:Cuántos eventos con type = X ocurrieron en algún período de tiempo.Obtenga todos los eventos donde el campo A tiene el valor Y.Obtenga todos los eventos con tipo X y el campo A tiene el valor 1 y el campo B no es 2 y el evento ocurrió en las últimas 24 h