Оптимальное хранилище данных для веб-аналитики - PullRequest
4 голосов
/ 18 февраля 2012

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

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

Один хороший подход, который я видел в прошлом, состоял в том, чтобы использовать mysql для хранения, одну таблицу в месяц, при этом старые таблицы конвертировались в формат MySQL ARCHIVE. Для просмотра архивов и сводных данных были реализованы представления MySQL.

Мой вопрос: Как что-то вроде Google Analytics хранит свои данные? В структурированной базе данных или что-то еще. Каким способом вы бы порекомендовали избежать долговременной потери памяти при сохранении гибкости возможностей запросов?

(меня не беспокоит скорость записи в БД, это будет происходить в асинхронных пакетах, а не в реальном времени)

Ответы [ 2 ]

2 голосов
/ 18 февраля 2012

Google использует собственную реализацию Big Table для хранения своих данных. Если вы заинтересованы в решениях для больших данных и использовании больших данных, вам следует обратить на это внимание. Для реализации с открытым исходным кодом, созданной на основе Google Big Table, посмотрите Hbase / Hadoop. Я опубликую несколько ссылок через минуту.

Сама аналитика, выполненная для данных этого типа, использует операции map / Reduce.

1 голос
/ 19 февраля 2012

Я думаю, что Urchin изначально использовал свою собственную многомерную базу данных, созданную на заказ, но я не уверен, что Google Analytics все еще использует ее.В любом случае, аналитические системы часто используют схемы Cube для быстрого просмотра OLAP.

Я знаю, что Microsoft и Oracle имеют такой тип функциональности в своих инструментах баз данных, но они очень дороги.Я не знаю ни о каких базах данных с открытым исходным кодом;однако если вы используете Java, то я думаю, что Mondrian работает таким же образом, но использует реляционную базу данных для хранения.

...