ClickHouse基本概念和使用注意事项

ClickHouse基本概念和使用注意事项。

首先解释下ClickHouse是什么?ClickHouse是俄国人搞出来的一个列式数据仓库,以应对实时的数据查询分析,经常被拿来和ElasticSearch作比较。

基本概念

  1. 集群
  2. 分片
  3. 数据库

集群就不用说了,分片就是一个个的节点。

相对于MySQL,主要说下本地表和分布表的概念。

简单来说,本地表数据只存在于本地,分布表则是本地表的集合。

无论是直接往本地表写数据,还是往分布表写数据,数据都会分散到各个节点的本地表中,所以当有多个节点时,直接对本地表查询,每次得到的结果可能都不一样(每次路由的节点不同,所以只得到该节点上的数据),而查询分布表则可以得到全部数据。

SQL语句

  1. DDL

建数据库和表时要加 on cluster_name cluster指定集群

  1. 单副本集群和双副本集群所使用的DDL不一样

  2. SQL查询跟MySQL不完全兼容

比如 delete from table where 1通不过。

再比如,不能对定长字段使用like查询,比如uuid FixedString ipv4 ipv6等字段,不然会报类似 Illegal type IPv4 of argument of function like的异常。

还有一点需要注意,如果对多个字段使用相同的like查询,那么只会查询其中一个字段!这时就得用子查询,坑啊!

数据同步

MySQL数据同步到ClickHouse需要使用MaterializeMySQL引擎。

本人刚开始接触ClickHouse,对其认知较少,以上说法可能存在疏漏和错误,敬请指正!

Leave a Comment

豫ICP备19001387号-1