Мой запрос:
Учитывая идентификатор пользователя, найдите подходящую рекомендацию песни для этого пользователя на основе его оценок по сравнению с оценками других пользователей.
Я хочу, чтобы здесь все было в реальном времени. Таким образом, по мере поступления событий правильно взвешивайте рекомендации и поддерживайте семейство столбцов, поддерживающее такой запрос, как
SELECT recommendation_id FROM cf WHERE user_id=123 AND recommendation_type='song'
Итак, я подумал о чем-то вроде семейства столбцов, в котором хранятся все рейтинги пользователя (каждая песня — это столбец), а затем набор рекомендаций. Однако я не могу придумать способ заставить это работать в режиме реального времени. Я хочу топологию шторма, которая заполняет рейтинг, а также возможные рекомендации.
Еще одна вещь, которая кажется запутанной, заключается в том, что в cassandra требуется много обновлений. Было бы лучше, если бы это было только созидание, не так ли?
Я пытался найти примеры такой модели данных, но пока не нашел. Любые ресурсы, найденные другими, будут полезны.
Обновление. Другой способ обозначить проблему заключается в том, что я пытаюсь найти структуру данных, поддерживающую итеративную совместную фильтрацию. Это возможно?