【发布时间】:2023-03-08 12:33:01
【问题描述】:
我已创建表并尝试多次插入值以检查重复项。我可以看到重复插入。有没有办法避免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 │
└────┴────────────┘
*/
【问题讨论】:
-
我只是重复一下,伙计们在他们的回答中写道:在插入与以前相同的数据块时,任何 Replicated{_/Summing/..}MergeTree 引擎都会提供重复数据删除.它通过添加额外的列来扩展 system.table_engines 的输出格式,包括 supports_deduplication - github.com/ClickHouse/ClickHouse/pull/8830 - 它有助于调查所有引擎及其关键能力。跨度>
-
仅供参考:有 PR (github.com/ClickHouse/ClickHouse/pull/8467) 支持 MergeTree 表上的重复数据删除。希望尽快推出。
标签: clickhouse