模型
unique
unique key
k1,k2,k3
业务说明
1.源表中的唯一键是(k2,k3),为了符合查询场景,人为将K1纳入唯一键组合中,95%以上的场景下,都能保证(k1,k2,k3)的事实唯一
2.但是极少情况下,针对starrocks中已经存在的数据,上游源表可能修改k1的值,导致starrocks存在两条(k2,k3)相同的记录。这时候,应该先按照(k2,k3)分组,再删除修改时间update_time(非key)最早的记录,只保留相同分组中时间最新的一条记录
目前做法
1.关联查询出所有(k2,k3)重复的记录值
2.再使用多线程(线程池minCore=8,maxCore=16,任务等待队列长度=50,CPU=8C)逐行delete by unique 删除数据
结果:从33W数据量的单表中,删除5000条数据都要删除5、10分钟以上,太慢
问题:
有没有更好、更快的清除“重复数据”的方式?