适用于大量写作的mongodb设计数据库

时间:2018-07-03 12:50:28

标签: mongodb nosql facebook-insights

我在mongo db中设计数据库时遇到问题。

因此,通常,系统将以不同的每个频道的速率从不同的社交网站api(twitter api,instagram api,fb api)连续收集有洞察力的用户数据(例如,点赞,转发,观看)。同时还每小时将每个洞察保存为历史数据。这些当前的实时见解应由网站上的用户查看。 我应该将洞察数据保存在缓存中,将历史洞察数据保存在文档中吗?

1 个答案:

答案 0 :(得分:1)

预期的写入率和查询率是多少? 数据集将以什么速率增长?这些是关键问题,这些问题将决定MongoDB集群的大小和拓扑。如果您的写入速率未超过单个节点的写入容量,那么您应该能够将数据托管在单个replica set上。但是,这假设您的数据集不大(> 1TB)。在这种情况下,从单个节点故障中恢复大小可能很耗时(不会造成中断,但是单个节点故障时间越长,第二个节点发生故障的风险就越高)。

在两种情况下(写容量超过单个节点或数据集都大于1TB),粗略的指导原则是这是考虑[sharded cluster][2]的时候了。分片群集的设计超出了单个StackOverflow答案的范围。