在各个表做关联的时候,如果主表过大且某个值过多再去join其他表很容易产生数据倾斜问题
我们的思路就是要将数据均匀的分配到每个任务上
这里我们以空值为例,使用rand(1)即可均匀分配数据
select * from(select *,case when department in ('-999','') then rand(1) else department end as department2 from profile_v2.detail_member_user_info_base) aLEFT JOIN profile_v2.member_user_info_red_ticket b ON a.department2 = b.store_id;