clickhouse中replacingMergeTree

ReplacingMergeTree是在MergeTree上添加了去重的功能,但是这个功能不可控,合并是一个后台的操作,除非手动触发,不然无法控制,并且它会删除具有相同(区内)主键的重复项。

特点:

1,去重时机不定, 数据的去重只会在合并的过程中出现, 合并会在未知的时间在后台进行,所以你无法预先作出计划。有一些数据可能仍未被处理

2,去重范围有限,有分区的情况下,去重只在分区内去重,没有分区,按照order by 字段去重(order by是必填字段,主键可以不填,主键是用于创建一级索引,也就是用于where查询的条件,用于二分查找到对应的index granularity而index granularity 是作用于order by的系数索引,默认值是8192,非特殊情况不更改,意思是间隔8192创建一个索引)

版本和飞版本

不带版本的,ENGINE = ReplacingMergeTree()

缺点:去重根据排序建去重,但是去重没有顺序,因为是多线程执行,所以数据是删除随机的,可能是删除了最新的数据

带版本的ENGINE = ReplacingMergeTree(字段名)

能解决不带版本的,其实带版本可理解为指明了按照哪个字段值的先后进行区去重,保留最新的数据,版本字段可以是数值版本字段可以是时间

小姐一下:

使用ORDER BY排序键作为判断重复数据的唯一依据。

只有在合并分区的时候才会触发删除重复数据的逻辑。

以数据分区为单位删除重复数据。当分区合并时,同一分区内的重复数据会被删除;不同分区之间的重复数据不会被删除。

在进行数据去重时,因为分区内的数据已经基于ORBER BY进行了排序,所以能够找到那些相邻的重复数据。

数据去重策略有两种:

如果没有设置ver版本号,则保留同一组(同一分区)重复数据中的最后一行。

如果设置了ver版本号,则保留同一组(同一分区)重复数据中ver字段取值最大的那一行。

相关推荐
xhtdj13 小时前
智源大会圆桌大模型没有终局具身智能可能是中国的 AlphaGo 时刻
人工智能·clickhouse·安全·动态规划
xhtdj3 天前
技术采用曲线回望二十年
运维·数据库·人工智能·clickhouse·动态规划
Taerge01104 天前
Doris, StarRocks, ClickHouse, Hologres, ES 对比,选型建议
大数据·clickhouse·elasticsearch
海南java第二人6 天前
ClickHouse 表引擎完全指南:从 MergeTree 到集成引擎的选型实践
clickhouse
lhyzws7 天前
CENTOS上的网络安全工具(三十七)SPARK on CLICKHOUSE
clickhouse
海南java第二人7 天前
用户行为漏斗分析是什么?ClickHouse 如何轻松实现?
clickhouse
时空无限9 天前
clickhouse 数据损坏无法启动问题修复
clickhouse
阿演10 天前
我把这个桌面数据库工具又升级了一轮:现在支持 ClickHouse,还能可视化建表和改表了
数据库·clickhouse·ai编程·数据库连接工具
海南java第二人10 天前
ClickHouse 稀疏索引深度解析:为什么 OLAP 数据库不用 B-Tree?
数据库·clickhouse
海南java第二人11 天前
ClickHouse 主键索引详解:不是唯一标识,而是排序规则
clickhouse