关注
3. 事实表关联维表 一般是大小表join 即事实表大维表小 或者 维表大 事实表属于增量数据 比较小
楼主说的情况 事实表很大 维表也很大
大数据处理其实不怕数据量大 而怕分布不均匀 数据倾斜是说事实表中数据有集中分布
情况1:
数据其实比较均匀 但经过hash后 某个分区数据就很多 可以尝试下调整分区数可能有效 虽然大多情况下没用
情况2:
事实表存在长尾效应 头部严重集中 比如淘宝的全体店铺的销售流水表 关联 店铺维表 头部店铺的销量一定是非常大的
对于这种的 可以分开处理
select
t1.*,t2.*
from
(
select * from fact_table where id in (1,2,3) -- 这三家店铺是头部单独处理
)t1
left join
(
select * from dim_table where id in (1,2,3) -- 此时维表就很小了 可以用mapjoin
)t2 on t1.id = t2.id
union all
select
t1.*,t2.*
from
(
select * from fact_table where id not in (1,2,3)
)t1
left join
(
select * from dim_table where id not in (1,2,3)
)t2 on t1.id = t2.id;
情况3:
数据量相当大 且不止是头部 头身都很大 只有少数数据比较少 想象的场景是物联网中 某个机具当天的心跳信息 关联 机具的基础信息 几乎每个机具的心跳信息都有上千万条
1.维表能不能先过滤 可能维表1kw条 但关联用到的只有100w 转为大小表join
select * from dim_table where id in (select id from fact_table group by id)
2.如果两个表都很大 那不是数据倾斜 而是数据堆积 每个任务处理时间都很长
这种的不要以天级别做join 而是小时级别 每一个小时做一次 到时候如果再数据倾斜再考虑上面的方法
#数仓开发#
查看原帖
点赞 评论
相关推荐

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习进度记录 #
148440次浏览 1627人参与
# 好未来求职进展汇总 #
5386次浏览 36人参与
# Keep实习校招 #
48511次浏览 252人参与
# 京东美团大战,你怎么看? #
15624次浏览 151人参与
# 我的求职精神状态 #
1085次浏览 18人参与
# 大家每天通勤多久? #
30565次浏览 224人参与
# 平安产险科技中心求职汇总 #
244386次浏览 2613人参与
# 大城市找工作会更容易吗 #
15610次浏览 114人参与
# 金山WPS工作体验 #
20130次浏览 124人参与
# 提前批过来人的忠告 #
97583次浏览 1092人参与
# 签约有哪些注意事项 #
26561次浏览 222人参与
# 生化环材还是天坑吗 #
29599次浏览 272人参与
# 招银网络科技工作体验 #
18671次浏览 85人参与
# 华为存储OD事变 #
121423次浏览 679人参与
# 生物制药/化工校招攻略 #
39886次浏览 275人参与
# 校招第一份工作你干了多久? #
66657次浏览 334人参与
# 腾讯音乐求职进展汇总 #
82035次浏览 450人参与
# 宁德时代求职进展汇总 #
104801次浏览 622人参与
# 4399求职进展汇总 #
17346次浏览 137人参与
# 你觉得机械有必要实习吗 #
47469次浏览 432人参与
# 京东工作体验 #
12444次浏览 88人参与
# 你最近一次加班是什么时候? #
60650次浏览 329人参与