NoSQL数据应该是预先计算的数据吗?

时间:2012-02-07 05:29:31

标签: nosql

我的问题如下,在NoSQL系列中,当我们存储值时。

存储的值是否应该完全为应用程序准备好以便直接使用它?或者是否可以以可能需要一些额外处理的方式存储值以便用于应用程序?

简单的例子,如果我们想要计算一整天的平均值,那么总是保持平均值存储更有意义,或者更好的是可能有一些键,代表每个单独的值,然后,制作应用程序计算平均值?。

一旦我们得到这个值,第一种方法会更快,但是会限制从一整天获得值,而第二种方法会更慢(我们需要计算每次的平均值)但我们也可以计算每小时平均值...

对我而言,这是一个哲学问题,同样,应该是NoSQL数据库中的数据完全可以使用,或者以一种需要一些额外过程的方式获取数据是有意义的。

非常感谢:)

2 个答案:

答案 0 :(得分:3)

您的注意事项与NoSQL没有直接关系 - 它们是应用程序级别的问题。

也就是说,在聚合方面,特定的NoSQL数据库在性能方面优于其他数据库。例如Cassandra。寻找利用MapReduce创建聚合的Hadoop+Cassandra solutions

另见这个类似的问题&回答:NoSQL databases - good candidates for log processing/aggregation and rollup?

答案 1 :(得分:0)

根据我的理解,NOSQL哲学告诉您存储准备使用的预先计算的值。
我们可以考虑让它有点失速,例如每小时重新计算每日平均值。
我可以将NOSQL视为RDBMS,它放弃了连接和扫描,并且总是通过主键访问数据。为此,它被授予可扩展性。因此,通过将部分复杂性移动到应用程序层变得简单。因此,我认为在应用程序级别维持平均值的负担是合乎逻辑的。
我们也可以从不同的角度看待同一个问题。让我们假设我们在NOSQL服务器端具有良好的功能(我们没有......)。对于“按键”访问的“主要”情况,很难确保良好的服务质量。即使对于成熟的RDBMS,确保混合OLAP-OLTP负载的良好性能也不是一件容易的事。