我是靠谱客的博主 娇气小蜜蜂,最近开发中收集的这篇文章主要介绍使用clickhouse映射加快查询速度,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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映射加快查询速度所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部