Clickhouse版本折叠引擎使用中遇到的一次问题
在clickhouse中没有实时删除,更新的操作,若想达到实时删除,更新的效果,需要使用clickhouse的版本折叠引擎-VersionedCollapsingMergeTree
版本折叠引擎通过插入 取消 行 来抵消原始记录,再插入一条修改过的记录,完成了数据修改
在查询时,需要进行特殊处理,采用group by (主键,version)having sum(record_status)>0方式进行查询。
但是在进行数据修改,先查询原始记录,然后修改记录状态,插入 取消 行时,如果有字段为浮点型(Float32,Float64),那插入的取消行中该字段的值可能会不一致(浮点型数据都是近似等于),在进行group by查询时,仍然会将删除/修改的数据查出来,导致修改,删除的动作不生效。