Мы сделали
http://amplifr.com, сейчас первой версии, которую мы выпустили, четыре месяца. Всего мы занимаемся им немногим больше полугода.
Это сервис для публикации и аналитики в соцсетях. Публикация и аналитика оказались примерно схожими по сложности задачами, хотя сначала может показаться, что публикация — совсем простая штука. Сложности в деталях.
В аналитике у нас сейчас все достаточно просто. На текущий момент в базе 14млн записей о действиях пользователей соцсети (лайки, комменты, репосты), 12+млн пользователей соцсетей, это данные чуть меньше, чем пяти тысяч аккаунтов в соцсетях. Мы обсчитываем данные каждые час или два, в зависимости от текущей нагрузки.
Аналитика работает в несколько слоёв. Сначала нужно достать сырые данные (это само по себе не одна операция), потом их обработать в формат, который удобно показывать пользователям.
Сбор данных начинается с шедулинга в кроне. Раз в час отрабатывает скрипт, который ставит в очередь (!) задачи на сбор данных. Обработчик очереди разбирает задачи (у него есть квота на задачи, а то соцсети будут злые, если спамить), сначала делает запрос активности. Проблема в том, что если активности дофига, то вам придется делать несколько запросов, апи вернет «курсор» и вы будете с ним делать непонятно сколько запросов, пока все данные не получите. Проще всего просто сложить сырые данные в базу.
Потом второй обработчик берет данные из базы, когда висит флажок «данные целостны, можно считать» и обсчитывает все публикации по каждой группе и систематизирует это всё.
Этого достаточно для статистики. Если вы хотите аналитику и выводы из этого делать — это третий слой :-)