下面是一个“在运行时预提或聚合”的数据的例子?(为什么MongoDB不能很好地使用它?)
这是从MongoDB文档中引用的内容:
传统商业智能。数据仓库更适合于新的、特定于问题的BI数据库。但是,请注意,MongoDB可以很好地处理一些报告和分析问题,在这些问题中,数据是在运行时预先提取或聚合的--但经典的夜间批处理加载业务智能虽然可能,但不一定是最佳选择。
发布于 2011-07-14 18:17:25
让我们来做一些简单的事情,比如计算点击量。有几种方法可以报告点击情况。
现在大多数大型系统都使用#2。有几个系统特别适合这一点(参见Hadoop)。
#3对于SQL数据库(如MySQL)来说是很难做到的,因为有很多磁盘锁定发生。但是,MongoDB不会经常锁定磁盘,并且往往具有更好的写入吞吐量。
因此,MongoDB最终成为了非常好的“实时计数器”。这就是他们所说的predistilled or aggregated in runtime
。
但是如果MongoDB有很大的写吞吐量,它不是应该擅长做批处理作业吗?
从理论上讲,这可能是真的,MongoDB确实支持映射/减少。然而,MongoDB的Map/Reduce目前相当慢,无法与Hadoop等其他Map/Reduce引擎相提并论。最重要的是,商业智能(BI)领域充满了许多其他工具,这些工具非常具体,可能比MongoDB更适合。
发布于 2011-07-14 16:14:13
哪一个数据是“在运行时预蒸馏或聚合”的?
这种情况的示例可以是需要来自多个集合的数据的任何报表。
为什么MongoDB不能很好地使用
?
在文档数据库中,您不能进行连接,因此很难构建报告。通常报告它从许多表/集合中聚合的数据。
而且,由于mongodb (以及一般的文档数据库)非常适合数据分发和反规范化,因此只要有可能,就应该预先构建报告,并在运行时仅显示来自此集合的数据。
对于某些任务/报告,不可能预先构建数据,在这种情况下,mongodb会为您提供map/reduce、分组等。
https://stackoverflow.com/questions/6689181
复制相似问题