关注
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 而是小时级别 每一个小时做一次 到时候如果再数据倾斜再考虑上面的方法
#数仓开发#
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 什么是优秀的实习经历 #
8487次浏览 211人参与
# 实习简历求拷打 #
12808次浏览 160人参与
# 被上班搭子“传染”了哪些习惯 #
5632次浏览 99人参与
# 秋招被挂春招仍然能投的公司 #
6885次浏览 99人参与
# 工作后,你落下了哪些病根 #
13592次浏览 190人参与
# mt对你说过最有启发的一句话 #
36283次浏览 429人参与
# 外包能不能当跳板? #
54118次浏览 256人参与
# 作业帮求职进展汇总 #
83165次浏览 547人参与
# 摸鱼被leader发现了怎么办 #
101606次浏览 644人参与
# 秋招特别不鸣谢 #
15832次浏览 178人参与
# 考研失败就一定是坏事吗? #
201194次浏览 1373人参与
# 选实习,你更看重哪方面? #
14217次浏览 217人参与
# 投格力的你,拿到offer了吗? #
152689次浏览 817人参与
# 第一次面试 #
1036522次浏览 13683人参与
# 今年秋招你收到了多少封邮件? #
18058次浏览 219人参与
# 京东美团大战,你怎么看? #
158127次浏览 860人参与
# 机械/制造每日一题 #
80267次浏览 1411人参与
# 担心入职之后被发现很菜怎么办 #
266311次浏览 1133人参与
# 你今年的保底offer是哪家 #
155183次浏览 673人参与
# 携程求职进展汇总 #
840281次浏览 5538人参与
