3

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

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

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

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

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

4

2 回答 2

2

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

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

于 2012-02-18T11:49:43.953 回答
1

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

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

于 2012-02-19T11:44:14.227 回答