Дизайнерский стол для встречного использования в Кассандре - PullRequest
0 голосов
/ 11 ноября 2019

Я должен спроектировать таблицу счетчиков, записи в которую выполняются очень часто, и обновление счетчика будет очень быстрым. В конце концов, даже для чтения 1 записи мне придется просматривать тысячи / более тысяч устаревших / захороненных данных, что будет дорого.

Модуль учитывает все факторы, необходимые, когда пользователь / подписчик общается с ботом. ,

  1. Эта таблица предназначена для представителя отдела обслуживания клиентов, который будет часто проверять состояние дел ОТКРЫТО, РАЗРЕШЕНО и ВЫДЕЛЕНО.
  2. Таким образом, каждый разговор пользователя может быть в ОК, ОТКРЫТО, РАЗРЕШЕНО и НАЗНАЧЕНО гос.
  3. В любой данный момент времени будут выполняться чтения, чтобы проверить, как разговоры могут быть в разных состояниях.

Ниже приведена схема таблицы:

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/

...