概述
clickhouse的Projection是一个比物化视图更好用的功能。
物化视图不好用,如果源表中的数据进行了修改和删除,物化视图中的数据不会变化,如果想达到数据一致,只能先先删除物化视图,然后再重新把历史数据跑进去,在生产环境上是无法忍受的,除非不更新数据。
Projection就很好了,创建完Projection表后,更新和删除数据后,数据是及时更新的。
2022年Projection还属于实验性质,上生产的话,自己把握。
创建Projection例子:
ALTER TABLE default.register ADD PROJECTION projection_register (
SELECT date,count( distinct user_id ) user_id
GROUP BY date
);
创建完Projection后,只会对创建Projection后的数据起作用,对创建Projection前的数据不起作用。
处理历史数据例子:
alter table default.register MATERIALIZE PROJECTION projection_register;
删除Projection
ALTER TABLE default.register DROP PROJECTION projection_register;
一张源表可以添加多条Projection,clickhouse会自动选择对应的Projection。
创建完Projection后,你的查询可能不会作用,映射起作用的条件有:
1、select语句中出现的字段包括where条件中的字段,都必须在映射语句中出现;
2、如果映射语句中出现了函数,比如toDate(),那么在查询语句中也必须有toDate(),如果映射中没有出现函数,那么查询语句中不能出现函数。
最后
以上就是娇气小蜜蜂为你收集整理的使用clickhouse映射加快查询速度的全部内容,希望文章能够帮你解决使用clickhouse映射加快查询速度所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复