文章目录
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