美文网首页
ClickHouse随记

ClickHouse随记

作者: 杀哥哥 | 来源:发表于2021-08-06 10:35 被阅读0次

      最近项目上遇到一部分需求,需要处理很大的数据级,领导推荐了clickHouse,目前还在一边使用一边学习,此处随记遇到的问题和解决方案,不足之处,请多指正。

    一、ClickHouse的区别

      之前的项目中用到的是mysql,数据量上来之后,mysql的查询就很吃力,后来数据同步到clickhouse上,clickHouse支持mysql查询,有些地方不太相同,clickhouse是列式数据库管理系统,数据始终是按列存储的,有增删查,不能修改数据,删除又分物理表和分布式表,分布式表不支持删除,需要直接去删除物理表,这点需要注意,之前我删除数据时执行alert成功,但是数据还是在的,索性直接删了表重新同步数据,好吧,个人感觉有点别扭,但毕竟是分析型数据库。

    二、ClickHouse的group by问题

        结合业务中,所有的查询基本都用到了group by,这ClickHouse的group by很奇怪,查询的字段包括分组的字段,必须要在group by中罗列,不然会报错,查询执行不通过,举个栗子:

      这里做一个简单的查询,查询两个字段other_id,user_id,通过user_id分组,需要查询other_id,这是如果group by中如果没有other_id,则会提示报错,当时我遇到这样一个场景,就是我需要查询other_id,user_id这里两个字段,但是不想让other_id参与分组,这里首先我说一下mysql的查询方式

    表数据 mysql查询

        这里的user_id等于3的other_id实际上是有两个值2和3,那么在clickHouse中查询,需要user_id分组但是不想让other_id参与分组怎么办

    other_id参与分组的查询结果 other_id不参与分组的方式查询

            clickHouse的聚合函数any(),意思是选择第一个遇到的值,这里对比一下mysql,mysql在这种情况下默认也是取第一个。

    目前暂时遇到这么几个问题,后续遇到会持续更新,不足之处,请多指正,共同学习.......

    相关文章

      网友评论

          本文标题:ClickHouse随记

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