хранилище nosql для отслеживания поведения пользователя - PullRequest
0 голосов
/ 04 августа 2011

Я пытаюсь разработать систему с записями действий пользователя на нашем сайте, чтобы позже мы могли сделать несколько шаблонов. Я не уверен, какое хранилище данных мне следует использовать, но я рассматриваю что-то вроде NoSQL, потому что его легко масштабировать. Это должно быть что-то без схемы, поэтому мы можем легко изменить формат данных при необходимости. Кроме того, он должен записывать данные довольно быстро и часто, но чтение выполняется очень редко.

Данные должны быть примерно такими:

идентификатор пользователя = 1, действие = act1, отметка времени = 1234, дополнительная_информация = что-то здесь ID пользователя = 2, действие = act1, отметка времени = 324, дополнительная_информация2 = что-то_откуда_ 100 *

После хранения мы хотим создать некоторую статистику для одного пользователя, одного действия, одной дополнительной_информации.

Можете ли вы дать мне несколько советов о том, какое хранилище я должен использовать?

PS: наше веб-приложение написано на PHP

Ответы [ 3 ]

2 голосов
/ 04 августа 2011

Исходя из ваших требований - быстрая, частая и безопасная запись, не очень быстрое чтение, масштабируемость и ключ, который будет «представителем» коллекции и по которому вы будете получать данные, я рекомендую Cassandra DB.Его описание:

Лучшее использование: когда вы пишете больше, чем читаете (ведение журнала).

Необходимые ресурсы:

http://cassandra.apache.org/

Разработано Facebook для поддержки системы обмена сообщениями, но также используется другими крупными игроками, такими как Digg, Twitter, Reddit, Rackspace, Cloudkick, Cisco, SimpleGeo, Ooyala, OpenX.

AsЧто касается письма, то оно самое быстрое и самое надежное.

РЕДАКТИРОВАТЬ:

Также еще одно ключевое предложение, описывающее Кассандру:

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

И, как я понял, эта ниша более или менее необходима для этой цели.

Здесь вы можете получить информацию о деталях и о хорошем,объективное сравнение NoSQL db mechs -

http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

Если вы хотите более простой выход, но за счет менее безопасного написания, MongoDB также является жизнеспособным выбором.

У него более простая система запросов, поэтому вам будет проще искать данные.

Ресурс:

http://www.mongodb.org/

Cheers

0 голосов
/ 08 августа 2011

Насколько я понимаю, вам нужна простота использования и динамический / без схемы.Хотя информации недостаточно, но я чувствую, что вам нужно что-то вроде Redis или MongoDB.Обратите внимание, что MongoDB хранит документы JSON, а запросы иногда становятся сложными, и, возможно, в этом есть некоторая кривая обучения.С другой стороны, с Redis вы можете пойти в кратчайшие сроки.Однако вы должны знать, что вы должны думать иначе, чем СУБД.Для анализа данных нет объединений и реляционных материалов, поэтому вам необходимо соответствующим образом понять и спроектировать свое решение.

В своем блоге я объяснил несколько различных типов баз данных NoSQL, если вам нужен обзор NoSQL, http://ttltheory.wordpress.com/2011/08/07/next-generation-data-storage/

0 голосов
/ 04 августа 2011

Можете ли вы дать мне несколько советов о том, какое хранилище я должен использовать?

Не совсем, нет. И вы, похоже, уже решили использовать NoSQL DB.

Информация, на которую вы (мы?) Должны ответить, - какую информацию (в явном виде) вы хотите получить, как вы хотите ее проанализировать и как вы хотите представить результаты.

Любым способом внедрите полное решение, используя систему nosql, но если вы не определили свои требования, я настоятельно рекомендую использовать реляционную базу данных для моделирования данных и создания образцов отчетов.

...