FINAL关键字
ClickHouse会在返回结果之前完全合并数据,从而执行给定表引擎合并期间发生的所有数据转换。
注意:
1.select语句+final的话,会对表的order字段进行排序去重。注意主键要加上分区字段(虽然跨分区不会去重,但select会合并结果)(试验过)。
2.在大多数情况下,避免使用 FINAL. 常见的方法是使用假设后台进程的不同查询 MergeTree 引擎还没有发生,并通过应用聚合(例如,丢弃重复项)来处理它。
3. join 去重表 final 这样不会去重,join (select * from 去重表 final)这样才能去重。
分布式表可以加final,可以实现去重。 要确定好分布式表的sharding_key(一定是主键的第一个),确保相同的数据去到同一个节点。