Кассандра: эффективный способ сравнить статистику? - PullRequest
0 голосов
/ 02 июля 2018

Я хочу сравнить статистику по часам между сегодняшним днем ​​и вчерашним днем. Моя структура выглядит так

CREATE TABLE stats0( id UUID,hour_0 INT, hour_1 INT,[all hours], hour_23 INT,total BIGINT, PRIMARY KEY (id));

CREATE TABLE stats1( id UUID,hour_0 INT, hour_1 INT,[all hours], hour_23 INT,total BIGINT, PRIMARY KEY (id));

CREATE TABLE today( id UUID, today INT, PRIMARY KEY(id))

Это пример.

ДЕНЬ 1:

  • сегодня установлено на 0.
  • статистика загрузки в таблицу stats0

ДЕНЬ 2:

  • сегодня установлено на 1.
  • статистика за сегодня загружается в stats1 и сравнивается с stats0

ДЕНЬ 3:

  • усекать статистику0
  • сегодня установлено на 0.
  • статистика за сегодня загружается в stats0 и сравнивается с stats1

ДЕНЬ 4:

  • усеченная статистика1
  • сегодня установлено на 1.
  • статистика за сегодня загружается в stats1 и сравнивается с stats0

И продолжай в том же духе. Я сравниваю часы stats0 и stats1 в течение дня.

Есть ли способ сделать это более эффективно?

1 Ответ

0 голосов
/ 02 июля 2018

@ nasubik Чтобы избежать переименования таблиц каждый день, что является здесь одной неэффективностью, вы можете создать структуру, в которой дата находится в таблице, например:

CREATE TABLE stats (идентификатор UUID, дата, час_0 INT, час_1 INT, [все часы], час_23 INT, всего BIGINT, ПЕРВИЧНЫЙ КЛЮЧ (id));

Я бы тоже это проверил; это перевернет таблицу, и производительность будет зависеть от того, как вы загружаете данные в таблицу:

CREATE TABLE stats (идентификатор UUID, дата, час (0-23) INT, the_stat_value INT, ПЕРВИЧНЫЙ КЛЮЧ (id));

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