Как я могу эффективно сделать запрос к таблице Cassandra с различным количеством для извлечения? - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть кластерные ключи Cassandra Table FeedCount с ключом раздела (PKey) (тип файла, состояние, время). Мне нужно получить данные для графика, на котором мне нужно показать

  • ВСЕГО СЧЕТА: 100
  • ПРОЙДЕНО: 80
  • СБОЙ: 20

как мне эффективно выполнять запросы по приведенной выше таблице.

  1. Запрос на COUNT ALL для Total как count () & Передается как: Count () где status = "пройдено", а затем программно рассчитать не удалось как Failed = Всего - пройдено;

    Всего = select count(*) from FeedCount where Pkey='any';

    Пройдено = select count(*) from FeedCount where Pkey='any' and filetype ='abc' and status =true'

  2. Запросить только статусы для данного fileType и вычислить итоговое значение, то есть Пройдено + Ошибка = Всего.

    Пройдено = select count(*) from FeedCount where Pkey='any' and filetype ='abc' and status =true'

    Не удалось = select count(*) from FeedCount where Pkey='any' and filetype ='abc' and status =false'

    Точка проходит по всем строкам, счетчик эффективен или просто запрос со вторым запросом, чтобы найти итог?

1 Ответ

0 голосов
/ 05 апреля 2020

Имхо, не должно быть большой разницы между двумя подходами, так как вы в основном читаете все данные - у вас есть только 2 варианта для поля status, поэтому вы эффективно читаете все данные во втором случае.

Единственное отличие, которое я могу себе представить, состоит в том, что в первом случае вы делаете select count(*) from FeedCount where Pkey='any';, тогда как во втором случае вы фактически делаете select count(*) from FeedCount where Pkey='any' AND filetype = 'abc';, и если у вас несколько типов файлов, то ваши результаты не не то же самое.

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