美文网首页
ClickHouse Projection的使用小结

ClickHouse Projection的使用小结

作者: 淡淡的小番茄 | 来源:发表于2022-03-28 08:32 被阅读0次

    物化视图 和 Projection技术其实都是预聚合的思路。ClickHouse release v22.2版本已经默认将Projection功能开启(allow_experimental_projection_optimization )。 2022-03-17日ClickHouse release v22.3-lts已经发布。大家可以基于此版本来使用Projection功能。

    物化视图和Projection的功能对比

    较物化视图最大的优点:Projection可以保证数据一致性。物化视图可以理解为触发的机制,写入base表的时候,一起写入物化视图,两个过程无法保证一致性。从业务功能方面两者解决的问题的场景是一样的。都是通过预聚合方式,提前将数据聚合好。相比而言,物化视图灵活性会更优,一般来说都是通过物化视图将源表数据抽取到新表中,这样我们可以在新表上按照业务场景灵活的进行分区、索引操作。这些在Projection上是做不到的。尤其对于聚合前后数据量相当的场景,如果对一致性要求不高的场景,使用物化视图会是更好的选择。

    Projection的使用和介绍

    大家可以参考如下文档:

    https://presentations.clickhouse.com/percona2021/projections.pdf

    写的还是非常详细的。

    Projection新建好后,执行正常的业务SQL,怎么判断是否命中了,联调的时候可以将参数:force_optimize_projection配置为1,查询的时候如果没有命中Projection,会抛出错误信息的。生产环境可以别这么做,此参数默认值是0。

    查询优化的思路

    1)聚合查询(聚合后数据较聚合前数据量少很多)

    一致性要求高场景,使用Projection。对一致性要求低,或者想对聚合后的表做更灵活的配置,请选用物化视图。

    2)明细查询或者聚合后数据较聚合前数据量相当

    建议使用二级索引(跳数索引)来进行查询优化。

    相关文章

      网友评论

          本文标题:ClickHouse Projection的使用小结

          本文链接:https://www.haomeiwen.com/subject/honujrtx.html