问题描述:
使用MergeTree引擎建表,进行插入数据时,发现数据重复。
原因:
MergeTree的主键(PRIMARY KEY)只是用来生成一级索引(primary.idx)的,并没有唯一性约束这样的语义。
ReplacingMergeTree通过ORDER BY,表示判断唯一约束的条件。当分区合并之时,根据ORDER BY排序后,相邻重复的数据会被排除。
解决:
换用ReplacingMergeTree引擎建表
- ReplacingMergeTree建表语法参考:(根据 id + code 分组去重)
- create table replace_test(
- id String,
- code String,
- create_time DateTime
- )ENGINE = ReplacingMergeTree()
- PARTITION BY toYYYYMM(create_time)
- ORDER BY (id,code)
- PRIMARY key id;
-
复制代码
————————————————
原文链接:https://blog.csdn.net/u011110301/article/details/117531124
|