Choosing the correct database type for single type of entry

database-design

So I'm building an application which constantly gets data from an API, basically the API outputs data through JSON which shows a certain speed for different hosts. What I want to here is query the app every minute and store this data within a database.

The idea is that the app will use the data to build graphs. These graphs will show the collective speeds of all hosts and for every host seperately. Hosts are assigned to a user

1 user has multiple hosts with each a certain speed. Now considering the data that will be stored will grow over time and the relations between the entities is rather limited I was wondering if I should look at a NoSQL database like MongoDB or DynamoDB.

Best Answer

NoSQL databases are for unstructured data or unpredictably structured data that is often queried using full-text searching.

Capturing time-series statistics for graphing sounds like a pretty well-structured data set to me. What do you have, three tables? Users, Servers and Measurements? It sounds to me like you have data which is perfectly suited to a relational database.

It may be that you need to think about whether your relational database is going to be fully normalized or partially denormalized for reporting performance. That's something you can decide is necessary once you do some load testing with production volumes in order to see whether denormalization is helpful.

Related Question