Создание материализованного представления на одной из ваших таблиц выше не может помочь вам вычислить общее количество просматриваемых постов.В качестве иллюстрации, если мы создадим материализованное представление для post_by_user
следующим образом, мы сможем вычислить только топ-пост для каждого пользователя:
CREATE MATERIALIZED VIEW toppostforuser AS
SELECT post_id FROM post_by_user
WHERE post_id IS NOT NULL AND user_id IS NOT NULL AND view_count IS NOT NULL AND date_created IS NOT NULL
PRIMARY KEY (user_id, post_id, view_count, date_created)
WITH CLUSTERING ORDER BY (view_count desc);
Вам потребуется таблица с ключом раздела, равным простоpost_id
, над которым можно создать материализованное представление для вычисления общего количества просматриваемых постов.
Примечание : если вы разделите ваш date_created
на отдельные столбцы, такие как year
, month
, day
, вы также можете вычислять ежедневные топ-посты, ежемесячные топ-посты.сообщения и т. д.
CREATE MATERIALIZED VIEW dailytoppostforuser AS
SELECT post_id FROM post_by_user
WHERE post_id IS NOT NULL AND user_id IS NOT NULL AND view_count IS NOT NULL AND year IS NOT NULL AND month IS NOT NULL AND day IS NOT NULL
PRIMARY KEY ((user_id, year, month, day), post_id, view_count)
WITH CLUSTERING ORDER BY (view_count desc);
Ссылка: Материализованные представления в Кассандре