首页 > 解决方案 > 如何避免clickhouse表中的重复?

问题描述

我创建了表并尝试多次插入值以检查重复项。我可以看到重复插入。有没有办法避免clickhouse表中的重复?

CREATE TABLE sample.tmp_api_logs ( id UInt32,  EventDate Date) 
ENGINE = MergeTree(EventDate, id, (EventDate,id), 8192);

insert into sample.tmp_api_logs values(1,'2018-11-23'),(2,'2018-11-23');
insert into sample.tmp_api_logs values(1,'2018-11-23'),(2,'2018-11-23');

select * from sample.tmp_api_logs;
/*
┌─id─┬──EventDate─┐
│  1 │ 2018-11-23 │
│  2 │ 2018-11-23 │
└────┴────────────┘
┌─id─┬──EventDate─┐
│  1 │ 2018-11-23 │
│  2 │ 2018-11-23 │
└────┴────────────┘
*/

标签: clickhouse

解决方案


ReplacingMergeTree只要重复记录重复主键,最有可能是您需要的。MergeTree当遇到复制记录时,您还可以尝试其他引擎以执行更多操作。FINAL查询时可以使用关键字来保证唯一性。


推荐阅读