MongoDb用于流量分析

时间:2013-02-20 14:49:57

标签: mongodb analysis traffic

所以我计划使用mongodb(我是新手)来跟踪我的色情网站的一般印象和流量。我的横幅广告有时超过100万次展示。我也有各种各样的横幅......所以可能每天都有可能我会在横幅上留下10亿印象,我想把它存储在数据库中,这样我就可以看到哪个横幅在某个时间范围内最好转换,以及什么横幅转换在某些国家最好等。

集合中的对象例如如下所示:

{ "_id" : ObjectId("5124d03d512c175714000000"), "bid" : ObjectId("5124a9ec512c178710000000"), "city" : "Rome", "country" : "Italy", "client_id" : "127.0.0.1", "referer" : "youporn.com", "user_agent" : "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0", "visit_datetime" : "2013-Feb-20 02:31:41", "visit_year" : "2013", "visit_month" : "Feb", "visit_day" : "20" }

所以我需要信息和建议这是存储印象的好方法,或者我的组织应该完全不同(可能是每个国家/地区的单独收藏,但这在某些时候也会有问题)?

我非常感谢所有的想法,建议,问题和评论。

1 个答案:

答案 0 :(得分:1)

AS @Joachim Isaksson对上述问题发表了评论,您生成的数据量巨大。在此基础上,你必须决定你是否有能力处理这个数额。

如果你有它们,我想你需要一些地图&之后减少方法以从数据中获取某些东西(使用当前的数据设计)。

我在这里看到的主要问题是,你应该有一些你想要回答的具体问题。如果这样做,您可以相应地为集合建模。特别是在您需要数据的维度。否则你很可能只是收集了一堆你从未使用过的数据,甚至更糟糕的是收集错误的数据。

如果您只对国家和日期感兴趣,为什么不在横幅/日/国家/地区组合中增加一个条目?因此,不是每次都保存整个日期和国家,而是创建一个条目,如:

{ "bannerId" : "b1", "country" : "IT", "date" : "20130220", "count" : 0 }

然后只增加对象的计数部分。这样可以节省大量数据。如果您需要更详细的信息(例如每小时的时间段),您还可以每小时保存一个条目(日期+小时)。

否则,为什么不查看现有的数据仓库应用程序,它还提供了解释数据的所有工具?也是一种选择。