Sql Clickhouse。群集上的优化表无法正常工作

Sql Clickhouse。群集上的优化表无法正常工作,sql,database,replication,ddl,clickhouse,Sql,Database,Replication,Ddl,Clickhouse,我有一个带有复制分区表的集群2x2V19.15.2.2 select * from system.parts => some_part_0_0_1, some_part_0_0_2 and etc. 给我看一些未合并的部分 ,在调用optimize期间,所有部分都将被合并,但在调用此类查询之后 // current settings on each node optimize_throw_if_noop = 1 replication_alter_partitions_sync

我有一个带有复制分区表的集群2x2V19.15.2.2

select * from system.parts 

=> some_part_0_0_1, some_part_0_0_2 and etc.
给我看一些未合并的部分

,在调用
optimize
期间,所有部分都将被合并,但在调用此类查询之后

// current settings on each node 
optimize_throw_if_noop = 1 
replication_alter_partitions_sync = 2 

optimize table my_table on cluster my_cluster partition my_partition final
它只生成一个或多个零件,而旧零件不会合并


我做错了什么?谢谢

从system.parts中选择*处于活动状态


合并过程(由optimize启动)将几个旧(活动)零件合并为新的活动零件。旧部件(合并)变为非活动状态,并将在8分钟后删除(由于性能原因,CH不使用fsync,因此需要8分钟)。

如果四个副本中的一个出现故障怎么办?它说,
有两个未完成的主机(其中一个当前处于活动状态),它们将在后台执行查询。
启动时它是否会收到当前查询?我怎么能确定?谢谢。这是分布式DDL说的。实际上,优化查询只有在表的前导位置才有意义。您需要集群2x2。因此您有两个领导者(每个碎片中有一个)。那个唯一的实时领导者在ZK中安排了一次合并,并自行执行,并将关于新合并部分的元信息放入ZK中。当该碎片中的另一个副本上线时,它将读取ZK并执行合并或下载新部件(这取决于几个因素,这里解释的算法相当大)。