文章目录
1 CollapsingMergeTree
以增代删
1.1使用方式?
如果sign 标记为1 标识这行有效数据,标记为-1标识需要被删除
Create table collpase_table(
id String,
code Int32,
create_time DateTime,
sign Int8
)Engine = CollapsingMergeTree(sign)
Partition by toYYYYMM(create_time)
order by id
(1)折叠数据并不是实时触发,在分区合并时触发
(2)只有相同分区内的数据才能被折叠
(3)限制:对于写入数据的顺序有严格要求,要使sign=1和sign=-1相邻,只能严格按照顺序写入,所以这是一个单线程模型
2 VersionedCollapsingMergeTree
2.1 CollapsingMergeTree的升级版,对数据写入顺序没有要求,按照版本号来排序需要折叠的数据,实现不需要严格控制写入顺序的
Create table collpase_table(
id String,
code Int32,
create_time DateTime,
sign Int8
ver UInt8
)Engine = VersionedCollapsingMergeTree(sign,ver)
Partition by toYYYYMM(create_time)
order by id
3 各种 MergeTree之间的关系
(1)MergeTree-》
(1.1)Aggregating MergeTree , Collapsing MergeTree
Summing MergeTree ,VersionedCollapsing MergeTree
ReplacingMergeTree Graphite MergeTree
本文介绍了ClickHouse中的CollapsingMergeTree和VersionedCollapsingMergeTree引擎,它们用于数据去重。CollapsingMergeTree需要按顺序写入数据,通过sign字段进行增删操作;而VersionedCollapsingMergeTree则允许不按顺序写入,通过版本号ver进行数据折叠。这两种引擎在数据处理上有不同的应用场景和限制,且都是MergeTree家族的一部分,包括AggregatingMergeTree、SummingMergeTree等。
1943

被折叠的 条评论
为什么被折叠?



