alllow фильтрация, моделирование данных в cql
В настоящее время я использую и изучаю методы моделирования данных в Кассандре. До сих пор я понимаю, что вам нужно иметь моделирование данных на основе выполненных запросов. Тем не менее, несколькоselect
требования делают моделирование данных еще сложнее или невозможнее обрабатывать его на 1 таблице. Итак, когда вы можетеЧтобы справиться с этими требованиями на 1 столе, необходимо вставить 2-3 таблицы. Другими словами, вам нужно сделать несколько вставок за одну операцию.
В настоящее время яЯ имею дело с моделью данных структуры кампании. У меня есть таблица кампании на Кассандре со следующим cql;
CREATE TABLE campaign_users
(
created_at timeuuid,
campaign_id int,
uid bigint,
updated_at timestamp,
PRIMARY KEY (campaign_id, uid),
INDEX(campaign_id, created_at)
);
В этой модели мне нужно иметь возможность делать инкрементный экспорт только по временной отметке. В Кассандре естьallow filtering
режим, который позволяетselect
запросы на вторичные индексы. Итак, мой оператор cql для инкрементального экспорта выглядит следующим образом;
select campaign_id, uid
from campaign_users
where created_at > minTimeuuid('2013-08-14 12:26:06+0000') allow filtering;
Однако, если используется разрешающая фильтрация, появляется предупреждение о том, что оператор имеет непредсказуемую производительность. Итак, это хорошая практика, опираясь наallow filtering
? Какие могут быть другие альтернативы?