场景:
使用ReplicatedMergeTree 引擎 创建的表 做类似于hive overwirte 模式的写数据 ,具体的操作步骤是:先使用delete 然后在insert 发现insert 删除前的相同的数据 select时不可见
解决方案:
- session 级别 : set insert_deduplicate =0 ; 详细说明见:clickhouse官方文档

具体操作
- 第一步:创建一个Replicated表
CREATE TABLE test
(
`id` Int32,
`day` Int32
)
ENGINE = ReplicatedMergeTree('/clickhouse/default/test/', 'replica')
PARTITION BY day
ORDER BY (id, day)
SETTINGS index_granularity = 8192;
- 第2步: 初始化 3条记录
insert into test (id, day) values(1 , 202010),(2 , 202010),(3 , 202010);
- 第3步: 删除某一条记录
ALTER TABLE test DELETE WHERE id=1;
- 第4步: 查询 得到只有 ID 为 2 和 3 的数据

本文解决使用ClickHouse ReplicatedMergeTree引擎表,在进行类似Hive overwrite模式写数据时,出现insert后删除的数据不可见的问题。通过调整insert_deduplicate参数设置,确保数据正确更新。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



