列式数据库~clickhouse问题汇总

一 简介:常见的clickhouse 问题汇总

二 问题系列
  1 内存问题
     Code: 241. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Memory limit (for query) exceeded: would use 80.15 GiB (attempt to allocate chunk of 17179869184 bytes), maximum: 74.51 GiB.
     分析 内存溢出情况,内存总量放不下目标数据

这里有两种情况

1 多用户并发执行,每个用户查询的数据量都很大,导致了总体超过了内存限制,导致了溢出

2 group by单语句问题  ClickHouse会限制group by使用的内存量(它使用 hash table来处理group by)

3 insert 语句也可能导致 内存溢出问题,调整参数

变量调整user.xml相关变量

其他调整

1 减少并发  2 改写语句 3增大内存 4 调整参数

2 如何将hive导致ck中
    解决方式: 1 Waterdrop将Hive中的数据导入ClickHouse中 2Waterdrop经过配置文件配置即可,不用编写代码和导入csv
    github地址 https://github.com/InterestingLab/waterdrop
    1 此插件能支持多种输入输出目标,强烈推荐 2需要依赖spark
 3  ck多表join的问题
   1 多表join效果效率不是很高
   2 多表join的语法非常复杂 只能期待后续版本
 4 关于ck的查询与索引问题
   CK本身并没有索引,建表的时候已经指定了主键,建议一切查询都要带上主键条件,这样,能大大加快速度(merge),防止全表扫描,将很多数据置入内存中
 5 关于ck的适用场景 
  经过权威人士的测试,ck更多适用于单表查询的场景,对于多表join的效果和写法都存在问题,不建议使用,分布式架构采用Distribution+ReplicatedMergeTree

6 ck关于DDL操作的一些限制

1 不要进行 modify column,更改列的操作代价是非常高昂的

上一篇:Android中的一些基础知识(二)


下一篇:MVC5个人用户账户身份验证集成google和facebook的OAuth2登陆