我尝试在 cassandra 上建模视图。所以视图看起来像这样:
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 中使用以下方案完成了这样的模型:
link_id bigint
date datetime
unique_visits int
non_unique_visits int
where (link_id, date) -> 主键
所以类似下面的查询给出了令人满意的结果。
SELECT link_id, date, SUM(unique_visits) AS unique_visits_sum, SUM(non_unique_visits) AS non_unique_visits_sum FROM agg_clicks GROUP BY link_id, date ORDER BY unique_visits DESC LIMIT 0, 50
但正如您所了解的,这不是太可扩展,查询的性能取决于页数和天数。另一个问题是需要进行全表扫描才能对计算字段执行排序。
所以,数据建模专家,拜托!!!一点建议。并提前非常感谢您。