如何使用MongoDB为多租户分析设计集合?

时间:2012-01-22 12:07:58

标签: database-design mongodb multi-tenant

我在Mongo上看到了几个关于多租户方法的帖子,但希望我能针对更具体的要求获得更具体的反馈。

以下是我从业务方面所知道的:

  • “免费评估”:应允许新租户(客户)免费注册;他们中的许多人将长期留在系统中,活动量和体积都很低。
  • 分析[每个租户]是解决方案的关键组成部分。不需要实时分析,其中大部分可以在每个租户的“批量”处理中完成。
  • 可能还需要一些交叉租户的“内部”分析处理,但是在后期阶段。

我认为需要“轻量级”分配新租户 - 与“每个租户数据库”方法不一致。

假设我为不同的租户保留了单独的集合,在同一个DB中:

  • 为每个租户的集合安排如此多的map-reduce聚合(而不是多租户集合的“一大”扫描)是否有效率
  • 是否有任何实用的方法可以跨多个集合执行分析计算?
  • 除了集合和索引总数的限制之外,是否存在大量集合的任何其他问题?比如,失去对一些用于固定集合集的库和工具的支持?

或者,在管理“固定集”多租户集合时:

  • 馆藏结构的“最佳实践”是什么?我是否应该在多租户集合中的每个文档中“通过引用”保留“租户文档”?
  • 在这种情况下运行map-reduce的“最佳做法”是什么?我应该尝试一个巨大的map-reduce,还是运行多个map-reduce任务来过滤每个租户的集合?

谢谢, 最大

0 个答案:

没有答案