关注
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 而是小时级别 每一个小时做一次 到时候如果再数据倾斜再考虑上面的方法
#数仓开发#
查看原帖
点赞 评论
相关推荐
2025-12-19 20:58
北京科技大学 硬件测试 点赞 评论 收藏
分享
点赞 评论 收藏
分享
mjasjon:你能找到更好的那就去更好的啊 嫌低有什么意义? 还qs50呢 干嘛不留美或者直接家里蹲? 神人
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
3636次浏览 83人参与
# 刚工作,应该先搞钱or搞成长? #
20922次浏览 165人参与
# 牛客AI体验站 #
15743次浏览 278人参与
# 你觉得第一学历对求职有影响吗? #
230129次浏览 1267人参与
# 如何提高实习转正率? #
85859次浏览 504人参与
# 找工作中的小确幸 #
80470次浏览 448人参与
# 实习在多还是在精 #
82859次浏览 509人参与
# 你觉得技术面多长时间合理? #
168190次浏览 1170人参与
# 牛友的春节生活 #
12542次浏览 230人参与
# 月薪多少能在一线城市生存 #
136546次浏览 898人参与
# 哪些公司对双非友好 #
207039次浏览 1163人参与
# 选了这个offer,你有没有后悔? #
738804次浏览 4472人参与
# 秋招踩过的“雷”,希望你别再踩 #
185763次浏览 1684人参与
# 备战春招/暑实,现在应该做什么? #
8270次浏览 205人参与
# 从夯到拉,锐评职场mentor #
8033次浏览 114人参与
# 实习到现在,你最困惑的一个问题 #
7283次浏览 169人参与
# 电网笔面经互助 #
59734次浏览 476人参与
# 找工作中的意难平 #
983906次浏览 6424人参与
# 制造业的秋招小结 #
143431次浏览 2089人参与
# 春招什么时候投? #
13539次浏览 211人参与