关注
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 而是小时级别 每一个小时做一次 到时候如果再数据倾斜再考虑上面的方法
#数仓开发#
查看原帖
点赞 评论
相关推荐
查看13道真题和解析 点赞 评论 收藏
分享
10-19 13:10
The University of Sydney Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 校招生月薪1W算什么水平 #
42050次浏览 231人参与
# HR问:你期望的薪资是多少?如何回答 #
67048次浏览 653人参与
# “vivo”个offer #
41189次浏览 288人参与
# 如果上班像打游戏,你最想解锁什么技能 #
9716次浏览 77人参与
# 我和mentor的爱恨情仇 #
77537次浏览 428人参与
# 为了实习逃课值吗? #
31835次浏览 292人参与
# 打工人的精神状态 #
98327次浏览 1288人参与
# 被同事甩锅了怎么办 #
24002次浏览 100人参与
# 你见过哪些工贼行为 #
27380次浏览 137人参与
# 一人一个landing小技巧 #
125172次浏览 1453人参与
# 你的秋招第一场笔试是哪家 #
258412次浏览 2026人参与
# 满帮集团求职进展汇总 #
6479次浏览 68人参与
# 考研失败就一定是坏事吗? #
149431次浏览 1081人参与
# vivo工作体验 #
29031次浏览 125人参与
# 和mentor 1on1 都聊什么? #
1992次浏览 21人参与
# 哪一瞬间觉得自己长大了 #
39344次浏览 494人参与
# 上班后和你想的一样吗? #
87888次浏览 671人参与
# 实习吐槽大会 #
386465次浏览 2156人参与
# 如何准备秋招 #
64504次浏览 830人参与
# 你想留在一线还是回老家? #
62580次浏览 537人参与
# 工作后明白的那些道理 #
22787次浏览 225人参与