clickhouse - 如何避免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 │
└────┴────────────┘
*/
解决方案
ReplacingMergeTree
只要重复记录重复主键,最有可能是您需要的。MergeTree
当遇到复制记录时,您还可以尝试其他引擎以执行更多操作。FINAL
查询时可以使用关键字来保证唯一性。
推荐阅读
- python - FuncAnimation:使用列表更新位置
- java - 开头为正数,结尾为负数的列表
- python - 如何在 Django 模板中对 forloop 值求和?
- c# - Application Insights 遥测处理器未捕获异常
- javascript - 选择性地禁用 HTML 嵌入脚本中的 VS Code JS 验证错误?
- java - WebSphere Network Deployment 8.5.5.0 的 Axis2 1.6.2 WebService 问题
- python - 给定一个字典字典,其中键是 bin,值是频率,我如何有效地计算 bin 的均值和标准差?
- asp.net-mvc - 来自 MVC 的授权 Web API 访问
- azure - 可以在不重新部署应用程序的情况下编辑部署在 Windows Azure 上的云应用程序的 web.config?
- r - 在 R 中格式化直方图