Я должен спроектировать таблицу счетчиков, записи в которую выполняются очень часто, и обновление счетчика будет очень быстрым. В конце концов, даже для чтения 1 записи мне придется просматривать тысячи / более тысяч устаревших / захороненных данных, что будет дорого.
Модуль учитывает все факторы, необходимые, когда пользователь / подписчик общается с ботом. ,
- Эта таблица предназначена для представителя отдела обслуживания клиентов, который будет часто проверять состояние дел ОТКРЫТО, РАЗРЕШЕНО и ВЫДЕЛЕНО.
- Таким образом, каждый разговор пользователя может быть в ОК, ОТКРЫТО, РАЗРЕШЕНО и НАЗНАЧЕНО гос.
- В любой данный момент времени будут выполняться чтения, чтобы проверить, как разговоры могут быть в разных состояниях.
Ниже приведена схема таблицы:
CREATE TABLE IF NOT EXISTS conversation_counter_by_fallout_status(
counter COUNTER,
fallout_status TEXT,
account_id TEXT,
organization_id TEXT,
PRIMARY KEY ((account_id,fallout_status));
fallout_status
: ОК, ОТКРЫТО, НАЗНАЧЕНО, РАЗРЕШЕНО. account_id
: ID бота
Тип запросов к таблице:
update counter
set counter = counter + 1
where account_id = ? and fallout_status = ?;
select counter,fallout_status
from counter
where account_id= ?
and fallout_status = ? ;
delete from counter
where account_id= ?
and fallout_status = ?;
Можно ли по-другому обработать счетчики в Кассандре? Я буду использовать apache-cassandra-3.11.4.
Некоторые ссылки, на которые я ссылался, чтобы узнать об этой теме, -https://academy.datastax.com/support-blog/counting-keys-might-well-be-counting-starshttp://rockthecode.io/blog/highly-available-counters-using-cassandra/