Как получить отсортированные журналы в Кассандре? - PullRequest
0 голосов
/ 10 января 2020

В моем приложении мы храним логи в Кассандре. Пользователь может просматривать журналы после указания даты начала и окончания журналов. Мы выбираем данные на основе этих дат и также осуществляем разбиение на страницы, так что конечная дата первой страницы становится начальной датой для страницы 2.

Таблица:

CREATE TABLE audit_trail (
    account_id bigint,
    user_id bigint,
    time timestamp,
    category int,
    ip_address text,
    action_description text,
    additional_data map<text,text>,
    source int,
    source_detail varchar,
    PRIMARY KEY ( (account_id), time )
     ) WITH CLUSTERING ORDER BY (time DESC);

Проблема :

Журналы, которые мы получаем, не отсортированы, а разбросаны. Например, при нажатии на запрос для журналов за день с 1 по 10 мы могли бы получать журналы за день 10,8,9,2,1 или в любом другом порядке.

Цель:

  1. , чтобы получить журналы в отсортированном порядке, чтобы журналы с первого дня отображались вверху, а затем со второго дня и т. Д.
  2. нет данных перетасовки. Как и при столкновении, таблица в Cassandra реструктурируется, что может привести к получению данных, которые мы уже видели на странице 1 на странице 2.

Пропускная способность данных велика, обычно около 1000 журналов в час.

1 Ответ

0 голосов
/ 14 января 2020

С КЛАСТЕРНЫМ ЗАКАЗОМ ПО (время DES C);

Добавление этого в конце таблицы решило проблему для меня.

...