Duplicate Key模型可以根据排序字段去重吗?

类似clickhouse可以手动执行optimize table对replacingMergeTree表去重。 Duplicate Key模型可以根据排序字段去重吗?
我不想要UNIQUE KEY模型,因为性能损耗。 但是依然想要去重,不必实时去重。

你好,Duplicate Key模型保留的所有明细数据,不支持去重。需要去重的话也可以考虑使用primary key模型。

我想存明细数据,担心primary key支撑不了那么大的量。

不能像clickhouse那样灵活控制mergeTree数据合并的时机吗?查询时需要准确性时可以合并(加final关键字),需要速度时可以不合并(不加final关键字)。可以手动合并(optimize table)也可以通过clickhouse自身的调度合并。

可以考虑明细+物化视图。

我介绍一下我的使用背景。
之前一直使用clickhouse,但join性能比较差,着手调研starrocks。

我的使用场景是flink实时任务将明细数据写入starrocks,为了极致的查询性能(不能慢于clickhouse)需要选用UNIQUE KEY模型。
但是我没法保证flink写入starrocks的EXACTLY_ONCE,只能保证at least once。有时候flink实时任务需要重启也会导致数据重复写入。
所以需要在数据仓库层支持幂等性写入。但是明细层并不需要实时地进行数据去重,发现数据有问题之后手动进行去重也可以接受。

之前用clickhouse的replacingMergeTree可以比较方便的解决这个问题。
这应该是一个比较普遍的场景,starrocks有没有比较优雅的方式处理?

UNIQUE KEY模型 可以去掉读时合并的的策略不? 由我自己控制什么时候合并。

不能,系统内部自动合并的,如果你在数据流能控制什么时候合并到话,那可以考虑在写入的时候去保证exactly once?