0

所以我打算使用 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" }

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

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

4

1 回答 1

1

正如@Joachim Isaksson 对您上述问题的评论,您生成的数据量巨大。基于此,您必须决定您是否有能力处理此金额。

如果您确实拥有它们,我想您之后将需要一些 map & reduce 方法来从数据中获取一些东西(使用当前的数据设计)。

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

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

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

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

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

于 2013-02-20T15:29:00.037 回答