1.使用ReplacingMergeTree引擎
CREATE TABLE xxx ( \
id_card String,\
session_id String,\
timestamp DateTime('Asia/Shanghai'),\
realname String,\
phone_num String,\
email String
) \
ENGINE = ReplacingMergeTree() \
PARTITION BY toYYYYMMDD(timestamp) \
ORDER BY(id_card) \
PRIMARY key id_card \
SETTINGS storage_policy ='xxx'
使用ORDER BY排序键,作为判断数据是否重复的唯一键。这个表以id_card作为判断是否重复的唯一键。ReplacingMergeTree通过ORDER BY,表示判断唯一约束的条件。当分区合并之时,根据ORDER BY排序后,相邻重复的数据会被排除。
2.OPTIMIZE TABLE xxx(表名) FINAL 强制合并重复数据
例如:OPTIMIZE TABLE user_table FINAL
3.clickhouse导出数据,以制表符\t分隔、导出的数据不带引号。
clickhouse-client -h ip -u 用户名 --port=端口 --password=密码 --query='select * from xxx final FORMAT TabSeparated' > xxx(导出到哪个文件)