clickhouse 配置项解析
Posted 福州司马懿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了clickhouse 配置项解析相关的知识,希望对你有一定的参考价值。
config.xml
-
max_table_size_to_drop
此参数在 /etc/clickhouse-server/config.xml 中,应用于需要删除表或分区的情况,默认是50GB,意思是如果删除50GB以上的分区表会失败。建议修改为0,这样不管多大的分区表都可以删除
-
max_concurrent_queries
最大并发查询限制,默认100
users.xml
-
max_memory_usage
此参数在 /etc/clickhouse-server/config.xml 中,表示单次Query占用内存最大值,超过的话会查询失败。建议尽量调大一些,同时保留一点给 OS -
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大小的两倍
-
max_bytes_before_external_sort
与 max_bytes_before_external_group_by 类似,只不过将 group 换成了 sort -
max_threads
设置单个查询所能使用的最大线程个数,默认是CPU的核数 ‘auto(4)’ -
background_pool_size
后台线程池的大小,merge线程就是在该线程池中执行,该线程池不仅仅是给merge线程用的,默认值16,允许的前提下建议改成cpu个数的2倍(线程数) -
background_schedule_pool_size
执行后台任务(复制表、Kafka流、DNS缓存更新)的线程数。默认128, 建议改成cpu个数的 16 倍(线程数) -
background_distributed_schedule_pool_size
设置为分布式发送执行后台任务的线程数,默认16,建议改成cpu个数的2倍(线程数) -
max_partitions_per_insert_block
限制单个插入块中的最大分区数。默认值:100,填0表示不限制。一旦单个SQL插入的数据分区块数大于max_partitions_per_insert_block,就会报错Too many partitions for single INSERT block
-
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查询会默认将参数传递)
以上是关于clickhouse 配置项解析的主要内容,如果未能解决你的问题,请参考以下文章