What would be suitable database for following? I am especially interested about your experiences with non-relational NoSQL systems. Are they any good for this kind of usage, which system you have used and would recommend, or should I go with normal relational database (DB2)?
I need to gather audit trail/logging type information from bunch of sources to a centralized server where I could generate reports efficiently and examine what is happening in the system.
Typically a audit/logging event would consist always of some mandatory fields, for example
Additionally the event could contain 0-N key-value pairs, where value might be up to few kilobytes of text.
Apache HBase is the Hadoop database. It is also a distributed, scalable, big data store. It's very convenient to store logs in and it has real-time read/write access to your data.
The data can be used and stored without worrying about relationships or tables. And for diagnosing issues, monitoring your deployment, and fine tuning performance, MongoDB Logs are useful. Big businesses widely use MongoDB, and it's understandable why. MongoDB is quicker than a SQL database and is simple to scale.
Relational databases store data in a very organized, but also rigid way. NoSQL, earning it's name by being “not only SQL” makes it easier to store all different types of data together. It's used for its flexibility and therefore speed and scalability in managing large volumes of data.
The two I've seen used successfully are MongoDB and Cassandra.
should I go with normal relational database (DB2)?
Yes, you should! If you just want to store stuff and scan it, you might as well write to a file. Very fast, no overhead! But the minute you want to summarize data over time (last 24h, or between time t and t+1), the more you care about the data as something other than lines of text, no question a proper RDBMS is your friend.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With