Question

There is a simple statistical data on a SQL Server, it's a kind of time series and has only three columns.

unique id (varchar), timestamp (datetime), value (int)

But the problem is, that series comes in each 10 seconds and daily data size is around 100,000 rows.

Data is consumed by wcf web services.

  • %75 as a aggregated (with avg, min, max, sum)
  • %25 as a direct row based result set
  • too few update and delete.

Web services (coded c#) sitting as a middle layer to serve the data to clients, data's read by SPs and also views, no ad-hoc query in wcf.

I'm planning move that data to a NoSql platform to settle the SQL Server for other operations.

Which nosql platform would be the best option?

NoSQL;

  1. must have drivers for .Net languages (to change the wcf service for reading)
  2. would have built-in aggregation ( at least for sum, avg)

I was thinking about Cassandra but it has no built-in aggregation when querying the data and I'm not sure if aggregating the data on service layer would be fast.

I would appreciate any ideas.....

Was it helpful?

Solution

1). MongoDB has an aggregation framework, which once you get your head round it, feels closer to the traditional SQL approach than map/reduce MongoDB/SQL comparison. It also has a .NET driver and, in my experience, is really quick to get up and running on both windows and linux, and is very stable. The aggregation operators can be seen here MongoDB aggregation operators If you need to add replication, Mongo was designed with this in mind, and, imho, is a lot simpler to set up then SQL Server, Postgres or MySQL.

2). RavenDB is written in .NET and the queries use Linq which might be appealing as it sounds like your are working in a .NET/Windows environment. Raven in a nutshell I haven't used RavenDB.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top