Стратегия сбора аналитики из большого приложения

Superfeedr - это сервис для анализа каналов по запросу. Мы хотим предоставлять нашим пользователям аналитику и изучаем лучшую стратегию для этого.

Вкратце, мы хотим отслеживать количество операций (событий, например: новая запись в данном фиде) в нашей системе, а также агрегированные данные (количество подписчиков фида).

Конечно, агрегированные данные можно «вычислить» на основе событий. (количество подписчиков на ленту - это сумма подписок за вычетом суммы отписок). Тем не менее, поскольку мы хотим изучать это с течением времени (количество подписчиков на ежедневной основе), систематизированный подход может быть неоптимальным, поскольку мы будем пересчитывать одно и то же снова и снова.

Как создать такой компонент в своем приложении? Какой информационный поток? Какие хранилища данных? Какое графическое решение? и т.д...

Я знаю, что это довольно открытый вопрос, но я уверен, что мы не первые, кому это необходимо!

[ОБНОВЛЕНИЕ]: Инфраструктура: у нас есть набор рабочих, которые являются клиентами XMPP и взаимодействуют все вместе. Они основаны на EventMachine, что означает, что они не блокируются при вводе-выводе. Желаемая цель: мы должны иметь возможность собирать огромные объемы данных. В настоящее время мы уже находимся на уровне 200–300 сообщений в секунду и стремимся к 10–100 раз больше.


person Julien Genestoux    schedule 21.11.2009    source источник


Ответы (1)


Трудно сказать без дополнительной информации о вашей инфраструктуре и желаемых целях масштабирования. Вы можете найти эту презентацию о о том, как Twitter использует Hadoop быть учебным. Его представил Кевин Вейл на недавней Конференция NoSQL East.

альтернативный текст

Заимствуя идеи из того, что делает Twitter, вы можете рассмотреть архитектуру, разделенную на фазы сбора, анализа и рендеринга.

Этап сбора: сверхнизкая задержка. Очень масштабируемый. Множество вариантов привязки. Разработано на facebook.

Обработка события журнала узла -> Писец -> HDFS

Этап анализа: язык запросов, подобный SQL, который также позволит вам выполнять исследовательские специальные запросы.

HDFS -> Свинья -> MySQL

Фаза отрисовки: реализована в вашей текущей веб-платформе.

MySQL -> JSON -> Memcached -> Графики Flash

Здесь на SO было несколько сообщений относительно выбора компонентов Flash-диаграмм для Интернета. Лично я добился хороших результатов с AmCharts.

person Ryan Cox    schedule 22.11.2009
comment
Интересные мысли. Спасибо. Я дополнила вопрос вашими вопросами :) - person Julien Genestoux; 22.11.2009