精华 clickhouse如何实现去重?
发布于 3 个月前 作者 baofengqqwwff 797 次浏览 来自 问答

好像ck的主键不会阻止插入重复的数据,那请教大家一般怎么去重?

6 回复

可以尝试 ReplacingMergeTree 表引擎,会删除相同主键的数据。 https://clickhouse.yandex/docs/en/operations/table_engines/replacingmergetree/

ReplacingMergeTree表去重不够及时,当数据量在千万级别的时候,即使使用OPTIMIZE TABLE也不会合并数据,不知道是不是bug。

我的版本是18.14.18

OPTIMIZE TABLE有延时,时效性也不是很高。ck有没有类似insert overwrite 或者replace into 的功能?

OPTIMIZE ***** xxx FINAL 才会及时合并吧

我用aws 的redshift也是没有根据主键排重,如果某些时候漏了数据,又不清楚从哪里开始漏了,我都要整个小时甚至整天数据删除 **重新导入, 反正恶心

ClickHouse 在使用 ReplacingMergeTree 进行去重时要注意: 1.只能根据主键去重。 2.去重的时候只会去重相同分区的数据,跨分区不会去重,即使是使用 OPTIMIZE **** XXX FINAL 也不会跨分区去重。 如果一定要使用这个特性去重,只能将需要去重的数据放在同一个分区。

回到顶部