【问题标题】:NoSQL data should be precalculated data? [closed]NoSQL 数据应该是预先计算好的数据? [关闭]
【发布时间】:2012-02-08 03:49:34
【问题描述】:

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

存储的值是否应该完全准备好供应用程序直接使用?还是以可能需要一些额外处理才能用于应用程序的方式存储值也可以?

简单的例子,如果我们想计算一整天的平均值,总是保存平均值是否更有意义,或者最好有一些键,代表每个单独的值,然后,应用程序计算平均值?

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

对我来说,这又是一个哲学问题,应该是 NoSQL 数据库中的数据完全可以使用,或者以需要一些额外处理的方式拥有数据是有意义的。

非常感谢:)

【问题讨论】:

  • 另外,一个考虑因素。如果我们想存储平均值的预先计算的信息,那么这将意味着一直对 noSQL 解决方案进行读写,假设 noSQL 通常不提供事务,如果两个实体尝试获取当前平均值,我将没有一致的数据并且然后尝试计算新的。

标签: nosql


【解决方案1】:

您的考虑与 NoSQL 没有直接关系 - 它们是需要决定的应用程序级问题。

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

另请参阅此类似问题和答案:NoSQL databases - good candidates for log processing/aggregation and rollup?

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多