данные временных рядов pycassa по нескольким ключам

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

У меня есть ключи UUID, хранящиеся в отдельных ключах, например:

user1, {UUID01: '', UUID02: '', UUID03: '', UUID04: ''}
user2, {UUID05: '', UUID06: '', UUID07: '', UUID08: ''}
user3, {UUID09: '', UUID10: '', UUID11: '', UUID12: ''}
user4, {UUID13: '', UUID14: '', UUID15: '', UUID16: ''}

Конец каждого UUID относится к твитам в другом семействе столбцов:

UUID01, { ... }
UUID02, { ... }
UUID03, { ... }

Теперь я могу эффективно упорядочить время твитов для всех пользователей или для одного пользователя. Но как я могу получить упорядоченные по времени события, например, для пользователя1, пользователя2 и пользователя3?

Обратите внимание, что у пользователя 1 может быть много новых твитов, а у пользователя 2 может быть несколько новых твитов.

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


person rich tier    schedule 29.08.2012    source источник


Ответы (1)


Сортировка (объединение) на клиенте или дублирование в отдельную ленту новостей — это, по сути, два ваших варианта. Выбрать свой яд.

FWIW, я видел исследовательскую работу, которую я больше не могу найти, анализируя, что лучше. Он пришел к выводу, что дублирование лучше до определенного порога громкости твита. (~ 10000 на пользователя, IIRC.)

person jbellis    schedule 04.09.2012