我的项目有两张Cassandra的table。
create table IF NOT EXISTS post_by_user
(topic_id varchar,
post_id UUID,
title varchar,
post_body varchar,
user_id varchar,
view_count int,
date_created date,
primary key (user_id, post_id))
WITH CLUSTERING ORDER BY (post_id DESC);
create table IF NOT EXISTS post_by_topic
(topic_id varchar,
post_id UUID,
title varchar,
post_body varchar,
user_id varchar,
view_count int,
date_created date,
primary key (topic_id, post_id))
WITH CLUSTERING ORDER BY (post_id DESC);
现在我想创建一个基于视图计数的顶部查看文章的表。因为可能有多个主题和用户,所以表的分区键应该是什么?材料化的观点有可能吗?
还有一种方法可以使分区键保持一个常量值。
请建议。。。
1条答案
按热度按时间50few1ms1#
在上面的一个表上创建物化视图并不能帮助您计算总体排名靠前的文章。举个例子,如果我们在
post_by_user
如下所示,我们只能为每个用户计算top post:您需要一个分区键正好等于
post_id
在此基础上,可以创建一个物化视图来计算总体顶部查看的文章。注意:如果你分开
date_created
分为单独的列,例如year
,month
,day
,你也可以计算每日的热门帖子,每月的热门帖子等。参考:cassandra中的物化视图