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

StackOverflow https://stackoverflow.com/questions/1776378

  •  21-09-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

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

Это было полезно?

Решение

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

alt text

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

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

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

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

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

Фаза рендеринга:Реализовано в вашем текущем веб-фреймворке

MySQL -> JSON -> Memcached -> Построение флэш-графиков

Здесь, на SO, было несколько сообщений о выборе компонентов построения флэш-карт для интернета.Лично я добился хорошего успеха с Карты amCharts.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top