sbymdh2003 2022-06-02 14:48 采纳率: 0%
浏览 30

hive 大表 小表 顺序

问题遇到的现象和发生背景

小表关联大表的性能问题,目前我一张大表,10亿左右,用日期分区,每个分区大概是5000W。有张很小的表,表数据是变动的。大概只有几条。

问题相关代码,请勿粘贴截图

select dt,count(1)
from 大表 t
join 小表 t1
on t.dt=t1.dt
group by dt

使用上面的方式查询非常的慢,我也改使用left semi join和mapjon、in、exists性能都很差。
如果改成

select dt,count(1)
from 大表 t
where t.dt in(日期1,日期2)
group by dt
这种方式很快。
请问有什么好的办法提升性能。因为日期参数不是固定的,只能从小表里面取

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 笑看风云路 大数据领域优质创作者 2022-06-02 15:16
    关注

    上面的方式走的是全表扫描
    下面的添加了where子句,走的是分区查询
    解决办法:
    select dt,count(1)
    from 大表 t
    where t.dt in (select dt from 小表)
    group by dt

    评论

报告相同问题?

问题事件

  • 创建了问题 6月2日

悬赏问题

  • ¥20 python忆阻器数字识别
  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真