Как правильно структурировать таблицу DynamoDB для сортировки результатов без условия хеш-ключа?
Я новичок в DynamoDB, поэтому я все еще пытаюсь понять, как его использовать, но у меня есть то, что я считаю простой задачей, но я не уверен, как ее решить.
Мне нужно создать таблицу для хранения вопросов по категориям, в которой мне нужно сохранить счетчик кликов. Итак, скажем что-то вроде этого:
ID: 1
Question: What is this?
Category: General
Clicks: 100
Теперь проблема в том, что мне нужен оптимизированный способ получить самые общие вопросы, на которые нажимают, и вопросы, на которые чаще всего нажимают, по категориям, скажем, 10 лучших.
В классическом стиле SQL это будет примерно так:
SELECT ID, Question
FROM Questions
ORDER BY Clicks DESC
LIMIT 10
Может ли кто-нибудь указать мне в правильном направлении, как структурировать таблицу? Я пробовал сортировку, но для нее всегда требуется условие хеш-ключа, поэтому я не понимаю, как я могу это сделать, поскольку мне нужны 10 лучших результатов, а не один.
Заранее спасибо!
1 ответ
Как вы накапливаете клики, если вы можете выяснить, как вы правильно накапливаете поток кликов в таблице, это и будет вашим ответом.
Вам нужно будет реализовать механизм, который сопоставляет входящие клики с записью элемента, по которому выполняется щелчок, и увеличивает ее с помощью атомарного счетчика. С его помощью вы сможете затем создать разреженный индекс и отсортировать его в порядке убывания, чтобы получить то, что вам нужно.