明细模型表执行批量删除DELETE FROM xxx where xxx IN(),事务提交成功,但是数据一直没有被删除,这个问题该怎么排查

Viewed 70

Version: doris-2.1.2-rc04

1、明细模型表执行批量删除操作
DELETE FROM h867044.dwd_event_WlydRelease WHERE part_date >= '2024-06-24' AND unique_id in (5102235210004, 5102235210003, 5102233710001, 5102233610001, 5102232610004, 5102232210004);
2、事务提交成功,但是数据一直存在
SHOW DELETE FROM h867044;
state为finish
3、查看表tablets一切正常
SHOW tablets FROM h867044.dwd_event_WlydRelease;
4、手动触发base compaction成功, 但是没有效果,数据依据存在
http://${IP}:8040/api/compaction/run?table_id=803552&compact_type=full
5、如果执行单条删除,DELETE FROM xxx where xxx = xxx, 数据能正常删除

doris从1.0版本经历多次升级到现在的2.1.2版本,目前集群一切正常,这种情况应该怎么进一步排查问题呢?

1 Answers

1.首先确定个参数是否有开启:skip_delete_predicate
执行 show variables like "%skip_delete_predicate%"; 看下

image.png

2.如果这个参数确定没有开启,是关闭装状态,需要找几个tablet看下compaction status,具体的查看方式
show tablets from tableName => show tablet xxxx => 执行 DetailCmd 中内容 => CompactionStatus 看下rowset的layout

3.如果把这个删除条件,放到查询里,是生效的不?


本地未能复现,需要在复现的情况下去看对应的compactionstatus,进行分析