【问题标题】:Database for tracking users on a website用于跟踪网站用户的数据库
【发布时间】:2013-08-08 07:26:26
【问题描述】:

假设一个网站每天获得大约 50K 的独立访问者。现在,我想使用像素跟踪来跟踪访问网站的用户。在开始任何开发之前,我希望确定我将用于项目的存储数据库。

显然,当某人(管理员)试图查看分析数据时,这将是一个写入密集型数据库,写入过多,搜索很少。

那么,我应该为这个项目使用哪种类型的数据库 - mysql 或不使用 sql ?

如果我的疑问不清楚,请发表评论。

谢谢!

【问题讨论】:

  • 我听说mysql最适合这些写密集型应用程序。因此,我正在考虑将数据附加到某个日志文件,然后通过 cron 作业将整个数据一起写入数据库。将使用两个文件来确保在写入数据库时​​畅通无阻。还有其他建议吗?
  • 您预计每天有多少条记录?每个用户每天访问多少次?每次访问有多少条记录?
  • 一个用户每天大约有 2 次访问!

标签: mysql database nosql web-analytics


【解决方案1】:

鉴于提供的负载估计和合理的保留政策,比如 2 年的数据,我相信常规的关系数据库应该可以做到。 MySQL 支持表的分区和分区的归档。

用户访问数据可以按日期自然分区。对这类数据的分析查询通常也涉及日期或日期范围。为了避免管理太多太小的分区带来的性能问题,我建议按周进行范围分区。

如果您的数据增长了 2 个数量级(每天 1000 万条记录,而不是 100K),您应该认真考虑一些大数据解决方案。 Flume/Hadoop/Hive 的组合将允许以最少的修改重用您的分析查询。

【讨论】:

    【解决方案2】:

    从扩展的角度来看,最简单的事情是将信息写入文件(简单的日志文件)。然后您可以使用Hadoop 并处理数据。首先是无集群(嵌入式模式下的 Hadoop)。然后,您可以添加任意数量的节点。

    但关键问题也是您希望如何处理数据。那么你的分析期望是什么。你想可视化你的数据吗?你想多快得到你的答案?新数据应该以多快的速度集成。你总是有同样的问题或想玩数据?想与其他一些数据混合,等等......

    Mysql 在分析工具方面可能更成熟。 只要您的数据大小不太大,它可能会更快。 使用 Hadoop,您可以使用 Hive 和 consorts 来帮助您处理数据,但可视化可能不是那么简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-17
      • 2010-09-14
      • 2012-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-25
      相关资源
      最近更新 更多