Можем ли мы ограничить в Кассандре, что таблица имеет только ограниченное количество записей или строк? - PullRequest
0 голосов
/ 30 января 2019

Можем ли мы ограничить в Кассандре, что таблица имеет только ограниченное количество записей или строк?Если мы хотим вставить максимум 20 строк в таблицу, то как нам это сделать?

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Нет, но вы можете сделать PER PARTITION LIMIT в запросе, а затем периодически удалять, чтобы создать надгробие для всего диапазона за этим диапазоном.то есть в

CREATE TABLE mytable (
  primary text
  clustering timestamp
  value text
  PRIMARY KEY ((primary), clustering)

Вы можете SELECT * FROM mytable WHERE primary = 'mykey' PER PARTITION LIMIT 20, который тогда у последнего кластеризация 1548857236000 может тогда DELETE FROM mytable WHERE primary = 'mykey' and clustering > 1548857236000.Для большей части идентификатора просто выпускают, что удаляют очень редко (например, раз в час или день в зависимости от нагрузки, чтобы уменьшить размер раздела) и используют LeveledCompactionStrategy.Если достаточно нагрузки, включите компонент даты в первичный ключ, такой как ((primary, yyyyMMdd), clustering), чтобы предотвратить слишком много надгробий и много накоплений в разделе.

0 голосов
/ 30 января 2019

Кассандра не поддерживает этот вид операции.Это часть бизнес-логики в вашем приложении, и это должно быть сделано на уровне приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...