NoSQL数据库 - 日志处理/聚合和汇总的良好候选者?

时间:2011-01-20 11:36:56

标签: mongodb ravendb nosql

我有一个MS SQL数据库,用于捕获带宽统计信息。我们有一个原始数据表,为了提高不同深入分析级别的报告速度,我们按小时,每天和每周汇总和汇总数据到单独的表格。

像Mongo或Raven这样的NoSQL数据库是否适合此类应用?

1 个答案:

答案 0 :(得分:16)

不同的NoSQL解决方案针对不同的用途解决了不同的问题 - 所以首先要做的就是查看问题并将其分解

  • 您正在将重写写入存储,因此写入速度对您很重要
  • 您希望对该数据执行聚合操作,并且具有易于查询的结果
  • 从事物的声音来看,读取速度并不重要,至少在“网络应用程序必须真正响应数百万人”的方式中
  • 我不知道您是否需要动态查询

让我们以非常高的水平,广义的方式看看Couch,Mongo和Raven

<强>乌鸦

  • 快速写入
  • 快速查询(最终一致,预先计算,通过map / reduce进行聚合)
  • 动态查询可能,但不太适合您的用例,因为您最有可能按日期查询等。

<强>蒙戈

  • 盲目快速写入(在我看来很危险,因为电源关闭意味着丢失数据; - ))。
  • 慢读(相对),通过map / reduce进行聚合,而不是预先计算
  • 动态查询只是what_you_do,但如果您希望在此类数据上获得任何类型的性能,则可能必须在列上定义索引

<强>长椅

  • 快速写入
  • 快速读取(预先计算,但仅在您阅读时更新(IIRC)
  • 无法进行动态查询,所有这些都是通过map或map / reduce函数预先定义的

所以,基本上 - 你需要对这类数据进行动态查询吗?读取速度对您来说非常重要吗?如果你需要动态查询,那么你会想要Raven或Mongo(对于这种事情,Couch可能不是你想要的东西)。

FWIW,Mongo在我看来唯一的用例是用于记录,所以你可能在那里有一个anwer。