Database design 可排序和日期范围有限,使用NoSQL解决方案的数据模型
我试图对卡桑德拉的观点进行建模。 因此,视图如下所示:Database design 可排序和日期范围有限,使用NoSQL解决方案的数据模型,database-design,nosql,cassandra,data-modeling,Database Design,Nosql,Cassandra,Data Modeling,我试图对卡桑德拉的观点进行建模。 因此,视图如下所示: link name | unique visits | non unique visits | ... --------------------------------------------------- page 1 | 4 | 8 | ... page 2 | 2 | 4 | ... page 3 | 3
link name | unique visits | non unique visits | ...
---------------------------------------------------
page 1 | 4 | 8 | ...
page 2 | 2 | 4 | ...
page 3 | 3 | 8 | ...
page 4 | 1 | 1 | ...
page 5 | 9 | 11 | ...
...
<page1><page2><page3>...<page n>
所以这里的主要要求是我需要显示指定日期范围的数据。例如用户
可以更改日期选择器和唯一访问|非唯一访问应显示点击总数
在那个日期范围内。
杀死我所有试验的另一个要求是,数据应在唯一访问和非唯一访问基础上进行排序
在过去的MySql中,我使用以下方案实现了这样的模型:
链接id bigint
日期时间
独特的
非唯一访问int
其中链接id,日期->主键
因此,类似下面的查询给出了令人满意的结果
选择链接id、日期、唯一访问次数作为唯一访问次数、唯一访问次数作为非唯一访问次数
从agg_单击
按链接id、日期分组
按唯一订单访问描述
限制0,50
但是,正如您所理解的,这不是太可伸缩的,查询的性能取决于页面计数和天数计数。
另一个问题是,在计算字段上执行排序时需要进行全表扫描
所以,数据建模专家们,请!!!一点建议。
非常感谢您。我建议您缩小查询参数的范围,并提前离线计算所有可能的结果。是的,这是一个解决方案,但问题是每个用户的链接可能超过100k,您认为从数据库中提取100k对象是一个好主意吗?每个用户请求提取100k对象是否是常规做法?谢谢,还是你想为每个潜在的视图创建一个集合?在这种情况下,我如何构造数据?我的日期范围可能是一年或几天。有很多潜在的结果。谢谢