线上我们有一张用户操作表,在数据大盘中有统计每日有多少用户,进行了操作的需求。由于源表中我们用户操作一次就会把数据插入一次保存到doris中,所以我们需要进行精准的判断。
在传统的mysql中,我们可能使用 select cts,count(distinct(user_id)) from user_operator_log group by cts就可以查询了,但是在doris中,我们使用这个语句查询就会非常的慢,那么怎么办呢?
解决办法:
1、添加一个物化视图:
create materialized view user_operator_log_user as select cts, bitmap_union(to_bitmap(user_id)) from user_operator_log group by cts;
2、然后我们再执行
select cts, bitmap_union(to_bitmap(user_id)) from user_operator_log group by cts
执行后结果就秒出了,同时统计的数据就非常精准了。
还没有评论,来说两句吧...