2013-02-20 7 views
0

Так что я планирую использовать MongoDB (я новичок там) для отслеживания показов и трафика в целом для моего порно сайта. У меня на баннере иногда более 1 миллиона показов. И у меня есть различные баннеры ... Так что потенциально на ежедневной основе, возможно, у меня будет 1 миллиард показов на баннерах, и я хочу сохранить их в базе данных, чтобы я мог видеть, какой баннер лучше всего конвертируется в определенные временные рамки, и какой конвертер баннера лучше в определенной стране и т.д.MongoDb для анализа трафика

объекта в коллекции, например, выглядит следующим образом:

{ "_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" } 

Так что я нужна информация и советы это хороший способ сохранить впечатления, или моя организация должна быть суммарно различной (возможно отделить коллекций для каждой страны, но в какой-то момент это будет проблематично)?

Я очень ценю все идеи, предложения, вопросы и комментарии.

+0

В ~ 400 байт и 1 бит строк в день вы будете искать около 400 ГБ данных в день. Добавьте на это дополнительные накладные расходы, и вы, вероятно, посмотрите, по крайней мере, на терабайт в день журналов. Не сказать, что это не сработает, я не понимаю, почему нет, просто спрашиваю, звучит ли это разумно для вашего сайта. –

+0

1-2TB приемлемо для меня, и, конечно же, у меня гораздо меньше сводных таблиц, моя идея состояла в том, чтобы очистить коллекции, ежедневно или что-то в этом роде, и использовать сводные таблицы для аналитики. – Splendid

ответ

1

AS @Joachim Isaksson прокомментировал ваш вопрос выше, объем данных, которые вы генерируете, огромен. Исходя из этого, вы должны решить, имеете ли вы возможности справиться с этой суммой или нет.

Если у вас их есть, я думаю, вам понадобится какая-то карта & уменьшите подходы после этого, чтобы получить что-то из данных (с текущим дизайном данных).

Основная проблема, которую я вижу здесь, заключается в том, что у вас должны быть какие-то конкретные вопросы, на которые вы хотели бы ответить. Если да, вы можете смоделировать коллекцию соответственно. Особенно в каком измерении вам нужны данные. В противном случае вы, скорее всего, просто соберете кучу данных, которые вы никогда не используете в конце или, что еще хуже, собираете неверные данные.

Если вас интересует только страна и даты, почему бы не просто увеличить счетчик на запись в комбинации баннер/день/страна? Поэтому вместо того, чтобы экономить каждый раз, когда все даты и страны, создать запись как:

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

А потом просто увеличиваем счетчик часть объекта. Это сэкономит вам массу данных. Если вам нужна более подробная информация (например, по часовым периодам времени), вы также можете сохранить запись в час (дата + час).

В противном случае, почему бы не посмотреть на существующее хранилище данных, которое также предоставляет все инструменты для интерпретации данных? Также будет вариант.

+0

спасибо за ваше предложение, у меня наверняка будут впечатления и уникальности на каждом баннере, это обязательно, но также приемлемо использовать ваше предложение здесь, если производительность при обновлении будет хорошей, так как на первом месте баннер должен быть доставлен как можно скорее. – Splendid

+0

Что бы я сделал в любом случае, это развязка части аналитики с доставкой баннера. Обновление MongoDB, как правило, чрезвычайно быстро, но при этом проблемы с сетью занимают больше времени, чем ожидалось. Для достижения этой цели вы можете использовать какую-либо систему, которая просто берет информацию и обрабатывает ее позже, или вы можете исследовать еще немного о подходе «Fire and Forget» для драйвера MongoDB. В основном вы соглашаетесь с тем, что некоторые операции могут быть потеряны. Если это приемлемо, это также будет вариант. – rit

Смежные вопросы