Как избежать Кассандры РАЗРЕШАТЬ ФИЛЬТРИРОВАТЬ? - PullRequest
0 голосов
/ 19 марта 2019

У меня есть следующая модель данных: -

 campaigns {
  id int PRIMARY KEY,
  scheduletime text,
  SchduleStartdate text,
  SchduleEndDate text,
  enable boolean,
  actionFlag boolean,
.... etc   
 }

Здесь мне нужно получить данные, основанные на дате начала и конце данных без ALLOW FILTERING.Я получил больше предложений по переработке схемы для полного удовлетворения требований, но я не могу фильтровать данные на основе идентификатора, так как мне нужны данные в ч / б датах.

Кто-то дал мне хорошее предложение полностью заполнить этот сценарий для выполнения следующего запроса: -

select * from campaings WHERE startdate='XXX' AND endDate='XXX' ; // Без функции «Разрешить фильтрацию»

1 Ответ

1 голос
/ 19 марта 2019
CREATE TABLE campaigns (
SchduleStartdate text, 
SchduleEndDate text, 
id int, 
scheduletime text,
enable boolean, 
PRIMARY KEY ((SchduleStartdate, SchduleEndDate),id));

Вы можете сделать следующие запросы к таблице,

slect * from campaigns where  SchduleStartdate = 'xxx' and SchduleEndDate = 'xx'; -- to get the answer to above question.

slect * from campaigns where  SchduleStartdate = 'xxx' and SchduleEndDate = 'xx' and id = 1; -- if you want to filter the data again for specific ids

Здесь SchduleStartdate и SchduleEndDate используются в качестве ключа раздела, а идентификатор используется в качестве ключа кластеризации для обеспечения уникальности записей.

Таким образом, вы можете фильтровать на основе начала, конца, а затем ID, если это необходимо.

Недостатком является то, что вам нужно фильтровать только по идентификатору, что невозможно, так как вам нужно сначала ограничить ключи разделов.

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