1、前言
程序运行一段时间后,突然发现不合并分区了。查看服务日志(/var/log/clickhouse-server/clickhouse-server.log)
看到有大量类似如下的日志:
2、解决过程
看日志的提示,大概是没有足够的线程去合并分区了。
网上找了一遍,找到了一个参数文章
ClickHouse的MergeTree 参数调整01
调整了两个参数:
background_pool_size,number_of_free_entries_in_pool_to_execute_mutation
重启完后,又可以合并分区了。可运行了一段时间后又出现不合并分区的情况了。
没办法,继续看日志。后面发现有大量删除表分区的的日志。好吧,看看这个表的存储结构,一看吓一跳,好多的分区。再看更是恐怖,一个分区只有一条数据。
原来是一个同事写的flink程序消费数据,来一条数据写一条导致clickhouse后台在不断的合并分区导致。