Pregunta

¿Crees que usar una base de datos MONGODB JSON para almacenar archivos de registro de la aplicación es una buena idea y por qué?

La única ventaja para mí es la abstracción del esquema, pero creo que también es una debilidad que no podemos garantizar la integridad de un archivo de registro.

¿Fue útil?

Solución

Obviamente soy parcial (trabajo en MongoDB) pero creo que funciona muy bien para los registros.

Razones:

  • Es rápido para insertos y actualizaciones ... puede hacer miles por segundo
  • Además de consultas normales, puede ejecutar análisis y generar informes utilizando JavaScript. Podrías tener un trabajo de Cron ejecutando todas las noches, lo que hace buenas cosas a tus registros.
  • Puede usar colecciones limitadas, que son colecciones que actúan como colas, para mantener solo los últimos n KBS/MBS/GBS de registros

No estoy seguro de qué quiere decir "asegurar la integridad de un archivo de registro" ... ¿Quiere decir que está preocupado por no saber qué campos tiene el documento que está sacando? Si es así, creo que encontrará que no es más difícil tratar con campos nulos en una base de datos relacional y mucho más flexible.

Ver también: La publicación de blog de MongoDB sobre registro.

Otros consejos

Estoy usando MongoDB para almacenar registros de muchas aplicaciones y hasta ahora está funcionando muy bien.

Es posible que desee echar un vistazo al Deslizaciones de una presentación sobre el comportamiento de la aplicación de registro a MongoDB que di en Mongo SV y en la última reunión de MongoDB SF para obtener más información sobre por qué creo que es bueno para registrarse, así como para información sobre las bibliotecas de Java, Python, Ruby, PHP y C# que admiten registro a MongoDB.

Ahora soy el principal comitante en log4mongo-java, log4j Appenders para MongoDB. Entonces, probablemente no sea demasiado sorprendente que eso sea lo que estoy usando.

Con respecto a la integridad del registro, supongo que quiere decir con confianza de que no se ha modificado después de que se escribió. Una opción que tiene, al menos con log4mongo-java, para almacenar eventos de registro en una base de datos que requiere autenticación. Eso limitaría hasta cierto punto el número de usuarios que podrían agregar, eliminar o actualizar eventos.

Además, podría configurar un esclavo de replicación que esté bien bloqueado. Las copias de seguridad frecuentes del esclavo al menos limitarían el tiempo durante el cual se podría modificar el conjunto de eventos registrados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top