【问题标题】:Optimal Data Storage for Web Analytics网络分析的最佳数据存储
【发布时间】:2012-03-09 14:19:28
【问题描述】:

我想编写一个自定义网络分析和操作跟踪解决方案,并将其用作反馈机制,例如。用于搜索或内容建议。

如果仅用于短期数据,我会使用一些数据保留有限的 NOSQL 引擎。但理想情况下,我想保留很长的历史。

我过去看到的一个不错的方法是使用 mysql 进行存储,每月一张表,将旧表转换为 MySQL ARCHIVE 格式。为了浏览档案和聚合数据,实现了 MySQL 视图。

我的问题: 像 Google Analytics 这样的东西是如何存储数据的?在结构化数据库或其他东西中。您建议采用哪种方式来避免长期记忆消耗,同时保持查询可能性的灵活性?

(我不关心写入数据库的速度,这将在异步批处理中发生,而不是实时发生)

【问题讨论】:

  • 您可以尝试一些 BI 工具。例如,Infobright 有一个社区版,它可能适合您的工作。它以基于列的格式在内部存储数据,但您可以使用标准 SQL 来收集统计信息。
  • 感谢 ypercube,这对我来说可能会有更快的学习曲线。

标签: mysql nosql analytics archive database-engine


【解决方案1】:

Google 使用自己的 Big Table 实现来存储其数据。如果您对大数据解决方案和利用大数据感兴趣,您应该看看这个。对于基于 google 的 Big Table 构建的开源实现,请查看 Hbase/Hadoop。我会在一分钟内发回一些链接。

对此类数据进行的分析本身使用 map/reduce 操作。

【讨论】:

  • 非常感谢您将我指向 Hbase。我知道 Hadoop 存在,因为我可能不得不为我正在做的另一件事走这条路,所以这符合战略。
【解决方案2】:

我认为 Urchin 最初使用的是它自己定制的多维数据库,但我不确定 Google Analytics 是否仍在使用它。无论如何,分析系统通常使用基于 Cube 的模式来进行快速 OLAP 浏览。

我知道 Microsoft 和 Oracle 在他们的数据库工具中具有这种类型的功能,但它们非常昂贵。我不知道有任何开源多维数据集数据库;但是,如果您使用的是 Java,那么我认为 Mondrian 的工作方式相同,但使用关系数据库进行存储。

【讨论】:

  • 我昨天花了很多时间,试图让 Oracle 在 Debian 上运行以测试其企业版的一部分。这太痛苦了,我想我不会在非官方兼容的操作系统上的生产环境中使用它。但是非常感谢您提供的关键字。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-06
相关资源
最近更新 更多