建模分析数据的最佳实践

时间:2013-12-23 12:47:59

标签: mongodb database-design analytics data-modeling bigdata

我正在开发一种产品,用户可以使用该产品创建自己的移动网站。现在,由于这是一个移动网站创建平台,因此在应用程序中创建了大量网站。我需要将所有访问者数据保存在数据库中,以便产品可以向他/她的网站用户显示分析。

当网站较少时,一切正常。但是现在数据正在快速增长,因为服务器上有很多请求。我使用mongo作为NoSQL DBMS来保存所有数据。在名为“analytics”的集合中,我通常会插入带有站点ID的行,以便可以向用户显示该行。由于数据量很大,显示用户分析的性能也很慢。磁盘空间也在逐渐增长。

保留此类BIG数据的最佳建模方法。

  1. 我应该为每个站点创建集合并将数据存储在每个站点的单独集合中吗?
  2. 我还应该明智地分开收集日期吗?
  3. 数据的清洁程序应该是什么。行业中其他领导者采用的最佳做法是什么?
  4. 请帮忙

1 个答案:

答案 0 :(得分:0)

我强烈建议您在http://docs.mongodb.org/manual/administration/optimization/阅读MongoDB优化策略。您将找到各种方法来识别执行速度慢的查询/操作以及在上述页面中改进它们的建议。希望这可以帮助您解决缓慢的查询/性能问题。

如果您还没有看过,我还建议您查看http://docs.mongodb.org/ecosystem/use-cases/处的各种用例,如何针对这些情况建模,以及是否有类似于您要实现的目标。

在完成优化策略并进行适当更改后,如果您仍然遇到性能问题,我建议发布以下信息以获取进一步的建议:

  • 您目前在绩效方面的状态是什么?计划目标状态是什么?
    • 您的系统如何看待硬件/软件特性?

一旦您需要性能特征,以下问题可能有助于您实现目标:

  • 常见的查询模式有哪些,哪些模式很慢?

    • 潜在地寻找可以提高查询性能的索引
    • 可能会根据访问模式寻找架构重构
    • 根据其使用方式,潜在地寻找用于汇总/汇总分析数据的架构重构。
  • 写入是否也很慢,也是一个问题?

  • 数据有多大,如何增长或有意增长

    • 这可能会进一步深入了解可能的建议