Кассандра пагинация внутри раздела - PullRequest
0 голосов
/ 04 мая 2018

Как я могу разбить данные на страницы внутри раздела? Я не могу использовать токен для этого, поэтому я создал поле microtime со временем создания и упорядочил записи по нему. Теперь я нарезаю данные, используя '<' и '>', и это создает много ограничений для моих запросов. Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 04 мая 2018

Для прямой нумерации страниц большинство драйверов (я точно знаю о Java и Node.js) имеют понятие paging . Вы в основном выполняете свой запрос, но устанавливаете размер выборки равным количеству записей, которые вы хотите иметь на странице. Вы можете захватить текущее «состояние подкачки» и установить его в «Cooker» или скрытый параметр формы страницы, а также восстановить его, когда пользователь нажмет кнопку «Next», чтобы вы могли получить следующую страницу.

Обратный пейджинг более сложен, но также выполним - в основном вам нужно где-то сохранить значение ключа (ей) кластеризации для первой записи, которую вы выводите на предыдущей странице, а затем выполнить запрос, как select * from table where partition_key = value and clustering_column > value.

...