我正在开展一个项目,我正在收集来自不同来源的数据,之后我需要对这些数据进行一些报告。所有报告都是预定义的。
我正在考虑使用RavenDB,因为我认为索引和map / reduce部分可能非常适合这种情况,因此我为每个报告创建了一个索引。
每个报告的单索引是否可行,或者是否存在任何陷阱?那么指数饥饿怎么样?
答案 0 :(得分:0)
每个报表一个索引将导致大量额外索引。而不是“每个数据集一个索引”。然后围绕每个数据集构建多个报告。
如果您正在执行map / reduce,则每个集合可能有多个数据集。例如,您可能具有以下索引:
您可以从这些索引构建许多报告。
您 想要做的是拥有多个索引,如:
这些只是可以压缩到同一索引中的多个地图,因此将它们分开是多余的。
如果每个报告有一个索引,它将很快失控:
A和B之间的唯一区别可能是字段的布局。
最后,您可能需要考虑升级到RavenDB 2.5。有一个名为“Streaming Unbounded Results”的新功能,您可以阅读in Ayende's blog。这可能是将数据从索引提供到报表的最佳方式。如果您的报告引擎需要IEnumerable
数据源(大部分都是),那么您可能希望使用this handy extension method I wrote。