clickhouse 配置项解析

config.xml

  1. max_table_size_to_drop

    此参数在 /etc/clickhouse-server/config.xml 中,应用于需要删除表或分区的情况,默认是50GB,意思是如果删除50GB以上的分区表会失败。建议修改为0,这样不管多大的分区表都可以删除

  2. max_concurrent_queries
    最大并发查询限制,默认100

users.xml

  1. max_memory_usage
    此参数在 /etc/clickhouse-server/config.xml 中,表示单次Query占用内存最大值,超过的话会查询失败。建议尽量调大一些,同时保留一点给 OS

  2. max_bytes_before_external_group_by
    min_insert_block_size_rows=8192, min_insert_block_size_bytes

聚合需要分两个阶段进行:1.查询并且建立中间数据 2.合并中间数据。
数据“溢出”到磁盘一般发生在第一个阶段,如果没有发生数据“溢出”,ClickHouse在阶段1和阶段2可能需要相同数量的内存

建议将max_memory_usage设置为max_bytes_before_external_group_by大小的两倍

  1. max_bytes_before_external_sort
    与 max_bytes_before_external_group_by 类似,只不过将 group 换成了 sort

  2. max_threads
    设置单个查询所能使用的最大线程个数,默认是CPU的核数 ‘auto(4)’

  3. background_pool_size
    后台线程池的大小,merge线程就是在该线程池中执行,该线程池不仅仅是给merge线程用的,默认值16,允许的前提下建议改成cpu个数的2倍(线程数)

  4. background_schedule_pool_size
    执行后台任务(复制表、Kafka流、DNS缓存更新)的线程数。默认128, 建议改成cpu个数的 16 倍(线程数)

  5. background_distributed_schedule_pool_size
    设置为分布式发送执行后台任务的线程数,默认16,建议改成cpu个数的2倍(线程数)

  6. max_partitions_per_insert_block
    限制单个插入块中的最大分区数。默认值:100,填0表示不限制。一旦单个SQL插入的数据分区块数大于max_partitions_per_insert_block,就会报错 Too many partitions for single INSERT block

  7. max_insert_block_size
    ClickHouse内部所有的数据操作都是面向Block数据块的。
    默认的情况下,每个数据块最多可以写入1048576行数据(由max_insert_block_size参数控制)。也就是说,如果一条INSERT语句写入的数据少于max_insert_block_size行,那么这批数据的写入是具有原子性的,即要么全部成功,要么全部失败

补充

system库里面的表都不是复制表 直接set只会在当前server生效

distribution查询的时候会传递的,最终这些set其实全部保存在client端。随着每个query走的(修改了一个server端,那么client查询会默认将参数传递)

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值