Как мы используем инфраструктуру обработки данных в Sports.ru и Tribuna.com?

    Год назад мы отказались от всех публичных счетчиков в пользу закрытых сервисов и собственной инфраструктуры обработки данных. Собирая на Олимпиаде по 10 млн. хитов в сутки, мы нащупали предел доброты Google Analytics, за которым бесплатное обслуживание уже не возможно. Но теперь у нас есть свой лунапарк со сверткой и графиками, поэтому мы можем легко снизить интенсивность использования GA, сохранив за ним только аудиторские функции. О том, как мы собираем данные и как используем их в своей работе – в простыне с веселыми картинками внутри.

    У нас нет такого помещения с мониторами и славными бородатыми парнями. Эта картинка найдена в Интернете и сделана в NOC Wallmart. Парни могут себе позволить )

    «Я вообще не замечаю код. Я вижу блондинок, брюнеток, рыженьких. Кстати, ты… выпить хочешь?»

    Нельзя сказать, что мы знали, что делаем в начале пути. Мы предполагали, что данные добавят нашему интуитивному творчеству чуть больше смысла. И нам очень хотелось много красивых графиков и больше понимания, чем живут наши пользователи. Мы совсем не ожидали, что за год построим систему полного цикла обработки данных, а компания начнет дышать в ритме Data Driven.

    И нам действительно было где развернуться: каждый день на сайтах Sports.ru и Tribuna.com появляется 700 новостей и 500 текстов (из которых 97% — пользовательские), а под ними возникает 30 тысяч комментариев, 120 тысяч оценок и 2 тысячи статусов. Весь этот вал контента оседает не только на сайтах с их 750 тысячами уников и 5 миллионами хитов в сутки, но и разлетается через 100 тысяч тегов по 160 мобильным приложениям (где 200 тысяч уников совершают 8 миллионов хитов за сутки) и по 1200 тематическим группам в соцсетях.

    Простите, не мог удержаться, но валить цифрами — мой конек!
    Простите, не мог удержаться, но валить цифрами — мой конек!


    Так вот, это наши нормальные цифры. Паранормальными цифры становятся в плотные дни спортивных событий, как сейчас происходят в Сочи. Каждый олимпийский день мы пробиваем отметку в 1 миллион уников. Мгновенный трафик может подскакивать в 10 раз, а итоговый объем хитов за день вырастает в 1,5-2 раза.

    Мы знали, что данных обрабатывать придется много: за первые месяцы эксплуатации инфраструктуры обработки данных у нас накопилось 500 гигабайт сырого материала и агрегатов. Но сразу вписываться в свой Hadoop-кластер или вычислительный комбайн было бы слишком рискованно, да у нас и не было такой возможности — так что мы выкручивались.

    Бирюзовым обозначены компоненты в нашей собственной ИТ-инфраструктуре, оранжевым - все то, что мы используем как внешний сервис
    В начале прошлого года мы не знали и половины слов на этой схеме


    Мы сделали все просто: данные о показах страниц собираются с помощью опенсорсного счетчика Piwik, точнее с помощью его фронтендовой части — на бэкенде у нас кластер nginx, ноды которых ведут access.log обращений от этого счетчика. Сырые данные из логов пакетами загружаются через Amazon S3 в Amazon Redshift, где из хитов ClickStream вычисляются клиентские сессии. Дополнительно в Redshift выгружаются данные из SQL-хранилища сайта, необходимые для обогащения создаваемых структур. Над созданными структурами разработан план SQL-запросов, который используется для формирования графиков и отчетов в Chart.io, а так же для Adhoc-анализа данных.

    Кроме того, мы регистрируем отдельные действия пользователей в NoSQL-хранилище для быстрого расчета матрицы рекомендаций для наших пользователей, обрабатываем access.log обращений к страницам сайта с помощью агентов Okmeter, их же используем для анализа пользовательского контента из SQL-хранилищ. В итоге, всю сложную часть BigData (хранение данных, сложные вычисления, построение графиков и отчетов) мы не стали делать в виде собственной фермы оборудования и коллекции ПО, а полностью вынесли ее в SaaS. Себе мы оставили только сбор сырых данных и конечное потребление агрегатов.

    Кому тут кипяточку?
    Кому тут кипяточку?


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

    Рекомендации для пользователей


    Пользуясь случаем, передаем этой иллюстрацией привет перфекционистам
    Мы знаем теперь очень многое о наших читателях и не только то, что они нам рассказывают при регистрации—какие команды и спортсмены нравятся или не нравятся — но и то, что мы узнаем о них из поведенческого профиля: с каких фанатских сайтов или поисковых запросов пользователи приходят на Sports.ru и Tribuna.com, новости с какими тегами читают и комментируют, какие посты и комментарии плюсуют, а какие — минусуют, что интересно друзьям. Формируя матрицу предпочтений каждого посетителя, мы накладываем на нее матрицу рекомендаций и даем каждому релевантные подсказки.

    Мониторинг бизнес-метрик


    Когда нам все-таки надоедает смотреть за тем, как горит огонь, течет вода и работают коллеги— мы наблюдаем за этими графиками

    Сделать большой ЦУП с мониторами, графиками и славными бородатыми парнями — самое очевидное, что приходит в голову после запуска инфраструктуры обработки данных. Графики мы сделали, а вот мониторы и бородачей привлекать не стали: группы оперативного реагирования на инциденты нам точно не требуются.

    Но мы повесили на некоторые бизнес-метрики алерты с помощью Okmeter. Хоть этот сервис предназначен в большей степени для мониторинга технических метрик (аптайм, трафик, системные показатели и т.п.), его функциональность позволяет строить метрики из любых данных из любого SQL-хранилища. За полгода эксплуатации сервис дважды оповещал нас о том, что на сайте перестали появляться комментарии: в новогоднюю ночь и когда на сайте появился кривой баннер, блокирующий Javascript на страницах.

    Но самое крутое в Okmeter — это режим Play, в котором можно работать с графиком (добавлять метрики, функции над данными, менять параметры отображения) в режиме реального времени.

    Рисуем скорость количества комментариев на сайте в режиме реального времени

    Сервис делают отличные парни из России, пока что он закрыт для регистрации, но инвайт можно попросить на сайте okmetric.com


    Дистрибуция и производство контента



    Непонятные графики

    Непонятные таблицы

    Еще одни непонятные таблицы

    Мы, конечно же, подглядываем за тем, что пишут наши пользователи, как они реагируют на материалы, новости, ищем популярные комментарии и фотографии, а самое лучшее — забираем в работу редакции. Сообщество пользователей, в каком-то смысле, является чашкой Петри, в которой зарождаются крутые шутки и хлесткие реплики (мы замечаем эти факты по резкому всплеску плюсов или минусов), там же мы проверяем свои редакционные и социальные гипотезы, а самое лучшее распространяем по всем нашим каналам: приложениям, соцсетям, теговым потокам.

    На первый взгляд, эта деятельность похожа на наглую эксплуатацию населения и неприкрытый краудсорсинг, и это действительно так. Но! Этот же механизм позволяет молодым и неизвестным авторам Трибуны становиться популярными. Мы замечаем действительно ярких персонажей и берем их в оборот в социальной редакции: выносим посты на главную, раскидываем ссылки по потокам, даем им советы по оформлению и подаче.

    Adhoc-анализ


    Веселых картинок про аналитику у нас не очень немного, поэтому мы начинаем постить котов
    Веселых картинок про аналитику у нас не очень много, поэтому мы начинаем постить котов


    С инфраструктурой BigData у нас наконец-то появился инструмент, с помощью которого мы можем достоверно отвечать на вопросы: “Почему произошло именно так?”, “Как можно улучшить продукт?”, “Какого цвета кнопка здесь лучше всего работает?” и т.п. Каждый день мы используем магию чисел для оценок, поиска зависимостей и корреляций.

    Например, мы недавно запустили персонализированное принуждение к регистрации: разными способами мы узнаем о том, какой командой интересуется посетитель, выбираем из этой команды популярного игрока, вешаем фотку этого спортсмена на приглашение о регистрации и показываем этому посетителю специальный блок. Мы уже выяснили, что такое персонализированное обращение работает в разы эффективнее, чем милые котики или Гус Хиддинк. А вот выбрать текст для такого приглашения, мы решили простым ABCD-тестом. Так выглядят варианты теста на подопытном Александре Амисулашвили из “Крыльев Советов”:
    image

    Попробуйте сами угадать лучший вариант и сравните его с нашими результатами (делалась выборка на 100 000 показов).

    Результаты CTR им. А. Амисулашвили
    Результаты CTR им. А. Амисулашвили


    Почтовые рассылки


    Для подобных рассылок раз в неделю никакая BigData, конечно, не нужна

    Измерять эффективность email-рассылок можно и без специальных навыков и средств. Мы же используем инфраструктуру данных для кампейнинга: выборке пользователей для отправки им персонализированных сообщений. Мы выявляем пользователей, которые не заходили несколько недель на сайт, чтобы рассказать им через email, что интересного у нас появилось, пока их не было. Мы напоминаем игрокам об их Fantasy-команде или турнире прогнозов, которые они забросили. Мы приглашаем болельщиков в тематические форумы по интересам.

    Бизнес-аналитика



    Подглядеть в полный недельный отчет Sports.ru
    Ха-ха!


    Раз в неделю руководители всех отделов Sports.ru и Tribuna.com собираются для ретроспективы прошедшей недели и обсуждении планов на текущую. Каждый участник рассказывает о своей области деятельности, опираясь на данные в отчете, который формируется еженедельно из данных, собранных в нашей инфраструктуре. Мы обсуждаем структуру трафика, продажи, конкурентов и рынок в целом, деятельность редакции и SMM, разработку, продукт, финансы, ИТ. Ценность этих встреч исключительно в синхронизации знаний и приоритетов на уровне всей компании — никакой бюрократической отчетности под козырек.



    … И это лишь малая часть того, что у нас уже есть в BigData. Мы показали вам нашу инфраструктуру сквозь замочную скважину с одной только целью — вдохновить вас на обработку данных в своем проекте. Это действительно не так страшно и дорого, как кажется на первый взгляд: мы обошлись без капитальных затрат в оборудование на старте, хоть и потратили 4 человеко-месяца разработки. На аренду серверов и оплату внешних сервисов мы тратим не более 60 тыс. рублей в месяц. И мы уверяем вас — прозрение стоит того.

    Пффф! Пост про BigData и ни одного упоминания MapReduce или хотя бы слова ПЕТАБАЙТ. Коты сваливают отсюда
    Уиииии

    Дерзайте!

    UPD: продолжение и техническая часть поста тут http://habrahabr.ru/company/sports_ru/blog/216229/
    Sports.ru 53,14
    Компания
    Поделиться публикацией
    Комментарии 62
    • НЛО прилетело и опубликовало эту надпись здесь
        0
        вот-вот прыгнет :)
          +23
          На 17 минуте прыгает!
            0
            Вот это кот — целый час мышь выжидал, но молодец — поймал таки! Не зря час на кота смотрел, подозревал, что не просто так он сидит.
        +2
        Есть ли у вас открытый API для работы с вашими данными?
          +4
          Публичного API нет и вроде не планируеются, а в этом может быть потребность? Кажется, что наши данные могут быть интересны только конкурентам =)
          0
          На морде okmetric из-за вот этого бага code.google.com/p/chromium/issues/detail?id=336403 в хроме бывает что вкладка падает совсем (со словами «Oh snap!» так что даже js`ом не поймаешь в чем проблема)
          Поэтому с морды интерактивные графики для 32 хрома убрали.

          Но если вам не трудно зайти на okmetric.com/ohsnap.html и посмотреть будет падать или нет.
          И если падает — написать версию хрома («window.navigator.appVersion» в js консоли).
            +2
            Кстати да, выкладывали бы датасеты по типам спорта и командам, было бы неплохо.
              +1
              Мы уже третий год думаем о публичном API со спортивной статистикой и всякими индексами популярности, но пока что руки так и не дошли.
                0
                Какого рода данные вы готовы отдавать бесплатно через API? Я, кстати, пытался найти результаты футбольных матчей + таблицы чемпионатов в свободном доступе, через API. Бесплатных не смог найти (

                  +1
                  Бесплатных и нет: сырые данные мы сами покупаем у провайдеров статистики. Но мы часто делимся агрегированной статистикой с партнерами на условиях: «Трафик в обмен на продовольствие».
              +1
              Эмм… 500 ГБ — это Big Data?
                +7
                Прикинь, какие наглецы! Без петабайтов, Map Reduce и Hadoop называют свою поделку Big Data!
                  +18


                  Конечно у вас big data, не вздумайте даже сомневаться.
                    +1
                    Круть!
                  +1
                  Если картинками, то нет, а вот если текстами…
                  +4
                  По поводу email-рассылок, поймал себя на мысли, что вы очень точно сформировали подборку, что я, таки, заходил на сайт.

                  Только вот что меня сильно отталкивает от действий на «Спортсах», так это странная система отображения комментариев.
                  Комментарии идут друг за другом, т.е. проследить дискуссию между пользователями — не реально! Постоянно нужно нажимать кнопку «Ответ на комментарий пользователя… ». Не комфортно читать — нет желания комментировать!

                  Не пробовали вы другой вариан отображения комментариев? Планируете? Теперь у вас есть отличный инструмент для АБ-тестирования))
                  Почитал бы про это на Хабре! )
                    +2
                    Зато лучше, чем у ч.ру, где плагин комментариев грузится раз на 50 после обновления страницы с новостью.
                      0
                      Ну так это проблема я.ру (если я вас правильно понял), а не подобного типа комментариев!
                      На Хабре, вот, отлично все грузится.
                        0
                        Да, это их проблема с их сторонним сервисом fanat.ru. Лучше бы они всё оставили как было раньше…
                          0
                          Если честно, то не знаю как было раньше.
                          Я имел ввиду, что нет разницы, какого вида комментарии, древовидные или в 1 колонку. Грузиться он должны одинаково быстро. Все остальные вопросы к разработчикам =)
                      0
                      Думаем про ветки с комментами для отдельных типов страниц, но опять же — не доходят руки =( Ну и эмоцианальное обсуждение спорта все-таки отличается от вдумчивых, ветвистых дискуссий на хабре. Так, например, выглядит топ комментариев для типичной новости:
                      image
                        +1
                        Согласен, бывают разные типы материалов, например — обсуждение прошедшего матча или аналитика перед туром!
                        В первом посте будет больше коротких комментариев, во втором длинных комментариев с рассуждениями.

                        Но при любом варианте есть место дискуссии. Спорт это эммоции в чистом виде… Радость, злость, ирония или просто троллинг. Иногда удачный десятый ответ на комментарий собирает все плюсы и срывает овации. А сейчас вы прячете всю эту прелесть однородным столбом комментариев, где очень легко упустить все нюансы диалога.

                        Пример
                          +2
                          Не стоит забывать просто, что у веток коментов кроме плюсов есть масса минусов:
                          – они очень плохо себя чувствуют в мобайле (где уже почти половина аудитории) и в узких колонках – как у нас в новостях
                          – они не согласуются с идеей рейтинга лучших комментариев, которая аудиторией Sports.ru
                            0
                            – они не согласуются с идеей рейтинга лучших комментариев, которая аудиторией Sports.ru – тут выпало «очень востребована»
                              0
                              – они очень плохо себя чувствуют в мобайле (где уже почти половина аудитории) и в узких колонках – как у нас в новостях

                              — Хабр не плохой пример отображения комментариев в мобайле. Это если смотреть через браузер. Если использовать приложение (у «Спортсов» оно есть), то та же история. Проблем нет в отображении.

                              – они не согласуются с идеей рейтинга лучших комментариев, которая аудиторией Sports.ru

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

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

                              Я высказал свое мнение, почему я не оставляю комментариев на «Спортсах». Мне изначально не понравились комментарии на сайте, и поэтому, я читаю только статьи и редко комментарии. Т.к. в моей подписке, в основном, не самые популярные тематические блоги, то комментариев там не много. Я их быстро пролистываю и ухожу.

                              Но если мне попадается статья с большим количеством комментариев, то я на автомате ищу глазами самые «отличившиеся». ИМХО не правильный подход.
                                0
                                Ну как – «неправильный подход»? Когда под материалом или новостью 500-1000 комментариев (что на Sports.ru не редкость), прочесть самые рейтинговые – это как раз вполне логичный юзкейс, и, кстати, самый часто используемый.

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

                                Ну и с «проблем нет в отображении веток в мобайле» я не совсем согласен. К сожалению, есть.
                                  0
                                  Наверное, у «Спортсов» были причины на то, чтобы сделать именно такие комментарии. И раз у них такое кол-во аудитории, значит правы они, а не я. =)

                                  Но я, к сожалению, бываю там проходом.

                                  Ну и с «проблем нет в отображении веток в мобайле» я не совсем согласен. К сожалению, есть.

                                  Ну так давайте обсудим их! У нас есть для этого «ветки» комментариев =) С какими проблемами вы столкнулись?

                                  P.S. Сделал 2 скриншота из мобайла. Приложение для Реддит, Хабр через браузер
                                    0
                                    Говорю же, это не тот случай, когда прав кто-то один. Есть два сопоставимых по популярности – но разных способа организовывать комментарии. Нельзя применить оба сразу, я лишь постарался пояснить наш выбор из этих двух ))

                                    Кстати, все современные соцсети почему-то сделали такой же.

                                    Также, наверное, и с вашими скриншотами – вам кажется, что проблемы в отъедании полезной площади (и без того небольшой у смартфона) «ветками» нету. Хотя она будет только нарастать с каждым новым ответом. Я не уверен, что готов с этим согласиться – но не настаиваю, чтобы вы меняли свою точку зрения.
                                      0
                                      Говорю же, это не тот случай, когда прав кто-то один. Есть два сопоставимых по популярности – но разных способа организовывать комментарии. Нельзя применить оба сразу, я лишь постарался пояснить наш выбор из этих двух ))

                                      Я вас понял. Ваш подход, видимо, отлично работает.

                                      P.S.
                                      Эпично вы вчера нас раскатали. Полурезервом. С победой =)
                                        0
                                        Я лого в вашем аватаре сразу заметил, но не нашел возможным использовать вчерашний матч как аргумент в дискуссии ))
                                          0
                                          Ну, если что, у меня тоже есть аргумент недельной давности! ;)
                                          Опять ничья!
                                          0
                                          Ну, прямо скажем, не «раскатали» ;)
                                          «Раскатали» — это мы за неделю до этого на «Энфилде» ;)
                          0
                          Лично мне не хватает возможности выбора главных статей по рейтингу (так же и по дате: хотелось бы удобно читать старые материалы сайта). Например, я провожу 90% времени в разделе sports.ru/football, но мне интересно также почитать качественные, одобренные пользователями материалы из других разделов сайта, а туда я редко лажу.
                          Спасибо за sports.ru!
                            0
                            Мы считаем, что такими страницами являются главная сайта (редакционный отбор) www.sports.ru/ и главная трибуны (пользовательский отбор) www.sports.ru/tribuna/
                              +1
                              И в то же время вяло ведете твиттер с моими желанными лучшими текстами: twitter.com/sportsrubest :)
                                0
                                Исправимся, спасибо за напоминание
                            +1
                            У вас там на картинке, где пользователю предлагается вступить в группу/сообщество «Двигатель торговли», она два раза упомянута, сначала как та группа, где друзья пользователя сидят, а потом как та, которую он лайкал. Логичнее было бы это объединить и подавать в одном блоке.
                              +1
                              В данном случае, это не скриншот реальной рекомендации, а макет прототипа. Ну и мы заметили, что когда рекомендуешь человеку что-то и поясняешь, почему это что-то попало в рекомендации, конверсия оказывается в разы выше. И чем проще это объяснение, тем оно работает лучше.
                                0
                                Простота простотой, но на мой скромный взгляд пользователя предложение два раза одного и того же скорее всего будет все-таки неуместно выглядеть, да и нет никакой сложности в двух текстовых блоках и одной картинке к ним с заголовком о чем все это.
                              +2
                              Сначала все валите в один access.log, а потом разбираете по сессиям? Экие вы затейники.

                              access_log /mnt/tmpfs/$arg_sessionpid analytics;

                              вот такая одна строчка в ngxin.conf раскладывает сразу все сессии по файлам. Когда файл N минут не обновляется — уходит в обработку. Десятки тысяч файлов на рамдиске и те же миллионы хитов — нагрузки практически ноль. Ну и главное — дальнейшая обработка ну совсем простая.
                                +2
                                Интересное решение, спасибо.
                                Мы храним не только сессии, но и кликстрим тоже, так что в любом случае все записи нужно отправлять в Redshift. Статистику по сессиям (длина, число страниц, источник и т.д.) считаем уже в нем, так что нет необходимости разбивать лог на отдельные файлы по сессиям.
                                Для нас важно иметь возможность иметь агрегированные данные не только по сессиям (как в Google Analytics или Метрике), но и по дням-неделям (например, число просмотров пользователя за день), поэтому при парсинге логов статистика не считается — все происходит уже в Redshift.
                                  0
                                  Я сейчас глянул первый попавшийся бэкенд одного проекта (чуть больше, чем сабж) и понял, что следуя вашим советам, я бы уперся в лимит инодов где-нибудь так дня через 3 (тоже на tmpfs), если не разгребать эти файлы. :)
                                    0
                                    Если 3 дня не разгребать, то да — понт защитан :)
                                    А так среднее время жизни сессии редко больше 10 минут.
                                      0
                                      Я это написал, чтобы имели в виду те, кто вдруг захочет сделать как вы предложили. :) А то многие склонны применять советы не подумав (иногда и за собой этот недостаток замечаю).

                                      Кстати, есть еще один минус такого подхода: ротация таких логов будет крайне неудобной.
                                        0
                                        У них нет ротации. Сессия уникальна и неповторима. После ее завершения лог обрабатывается и удаляется.
                                      0
                                      Ну самое главное ограничение — у нас в ротации несколько бекендов для счетчика. Клиентские сессии собираются из хитов, накопленных на разных нодах счетчика. Считать это там же на нодах, перекладывая с ноды на ноды и склевая ClickStream — не кажется реальным. А так даже проще масштабировать: поставил еще одну ноду для счетчика и включил с нее заливку ClickStream в RedShift.
                                        0
                                        В этом место тоже как-то странно, зачем сессию разбрасывать рандомно по нодам? Ее же можно приклеить к одной ноде при первом попадании, такой функционал есть у любого балансера уже давно.
                                        P.S. Несколько нод только для счетчика — ну это вы вообще жирно живете :)
                                          0
                                          А зачем приклеивать, если можно не приклеивать? =)
                                            +1
                                            Этим можно оптимизировать многие процессы. Улучшить производительность. Но я смотрю кол-во серверов просто не проблема. Тогда да — можно «не приклеивать». )) Но так можно и вообще дойти вопроса — зачем думать, если можно не думать и просто покупать много серверов…
                                    +2
                                    Классный пост! Не сказать, чтобы супер полезный в практическом смысле, но зато просто прикольный. Жду больше инфы про инфраструктуру и возникающие вопросы в процессе реализации.

                                    Можете привести больше интересных или может даже парадоксальных фактов, которые выяснили после внедрения глубокой аналитики? Типа того, где магазин узнает о беременности девушки раньше ее отца.
                                      0
                                      … или раньше самой девушки. В момент, когда она жалуется подруге на «непонятные симптомы».
                                      0
                                      Раз уж зашел разговор о том чего хватает/не хватает, то после редизайна не хватает какого выделения новых/непрочитанных новостей в личной ленте.
                                        0
                                        А сколько занимают места на диске ваши User Data, Site DB и NoSQL?
                                          +2
                                          600 Гб занимает статистика, 130 PostgreSQL и 35 MongoDB — это не считая реплик.
                                          +1
                                          >>Мы же используем инфраструктуру данных для кампейнинга: выборке пользователей для отправки им персонализированных сообщений. Мы выявляем пользователей, которые не заходили несколько недель на сайт, чтобы рассказать им через email, что интересного у нас появилось, пока их не было. Мы напоминаем игрокам об их Fantasy-команде или турнире прогнозов, которые они забросили. Мы приглашаем болельщиков в тематические форумы по интересам.

                                          так построили бы необходимую вам поведенческую модель юзера и делали бы выборки по ней. У нас поведенческие модели на 600 000 кастомеров хранятся в отдельной базе, занимают весьма мало места и апдейтятся 15 000 000 раз в сутки. Все живет на одном арендованном сервере. Разработка заняла одну неделю. Доделки под текущие бизнесзадачи занимают от 10 минут до дня.
                                            0
                                            А что включает в себя ваша модель?
                                              +1
                                              опредеделенные данные о пользователе, график его суточной активности по часам и дням недели, взаимоотношения с другими пользователями, набор мест где он преимущественно находится, обращение к разным методам АПИ и т.д. Не пользовался он ни разу за неделю функционалом «сменить скин приложения» мы ему можем взять и выслать сообщение что такой функционал есть.

                                              У нас мобильнео приложение гео-радар. i-am-app.ru
                                                +3
                                                ну и понятно что модель эта спроектирована таким образом чтобы можно было лехко осуществлять поиск по нужным полям.

                                                к примеру выбрать всех пользователй которые появлялись вблизи точки 34.23456, 12.232323 не менее 5ти раз, при этом зарегистрировались в мае, и ни разу не оправляли картинки другим пользователям.

                                                это по монгоДб делается в один запрос по набору полей. Быстро, просто, красиво.
                                                  +2
                                                  Отлично, напишите об этом пост!
                                                    0
                                                    это навернное самое неинтересное что у нас есть :)

                                                    вот толи дело распределенный по всем контитнетам децентрализованный серверный бекенд… это да, крутота. А мысль хранить данные в удобном для обработки виде вместо удобного для сбора — это тривиально.

                                                    В самом деле, зачем мне хранить огромное количество сырых данных, если их можно схлопнуть в 2-3 значения важных для бизнеса? Таким образом мегабайты серверных логов превращаются в байты.
                                                    0
                                                    Поддерживаю предыдущего комментатора — было бы очень интересно прочитать об этом пост.

                                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                            Самое читаемое