hive多表查询语句优化

针对一条在中台使用Hive进行的复杂查询语句,该查询涉及多个表连接和聚合操作,导致执行速度慢。优化建议包括:1) 分析表的分区策略,确保查询只扫描必要的分区;2) 使用Bucketing和Sorting来提高JOIN效率;3) 对频繁查询的字段创建索引;4) 考虑数据倾斜问题,调整JOIN策略;5) 评估是否能将部分计算下推到数据源或使用Spark等更高效的计算引擎。
摘要由CSDN通过智能技术生成

INSERT INTO sxhb_getsxhbareasite SELECT
‘140400’,
pos.pos_y,
pos.pos_x,
cons.county_code,
cons.company_no,
cons.company_name,

CASE

    WHEN cons.cons_type = 'important' THEN
    '重点监测企业' ELSE '涉污企业' 
END cons_type,
cons.category_name trade_name,
cons.county_name,
pd.powers day_powers,
avgs.fluctuate worth,
cons.is_control,
cons.cons_type,

data1.addr,
py.powers year_powers,
control_type,
alarm_type
FROM
(select company_no,max(elec_addr) addr from sx_company_pollute GROUP BY company_no ) data1,
sx_pollute cons,
sx_pos_network pos
LEFT JOIN view_sx_pollute_power_day pd ON pd.company_no = cons.company_no
LEFT JOIN view_sx_pollute_power_mon_avg avgs ON avgs.company_no = cons.company_no
LEFT JOIN sx_pollute__power_year py ON py.company_no =cons.conpany_no
WHERE
pos.company_no = cons.company_no and data1.company_no=cons.company_no and py.record_year = year(CURRENT_DATE)

这条语句在中台使用hive查询特别慢,该如何优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值