Кассандра сортировка результатов по количеству - PullRequest
4 голосов
/ 14 января 2012

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

Может ли это быть смоделировано с использованием Cassandra, и если да, то как будет выглядеть модель?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 03 октября 2013

Согласно техническому блогу eBay , нет ничего необычного в том, чтобы хранить значения счетчиков в самом ключе. Таким образом, чтобы сохранить количество раз, когда Боб, Кен и Джимми заходили на веб-сайт, одна строка должна выглядеть следующим образом:

logins: [(0001_Bob,''), (0002_Bob, ''), ..., (0010_Ken, ''), (0012_Jimmy, ''), ...]

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

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

login_count: [(Bob, 2), (Ken, 10), (Jimmy, 10), ...]

0 голосов
/ 16 января 2012

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

...