浅谈Hive SQL的优化

目前团队的数据处理都在Hadoop集群上,

一是因为需要处理的数据量都是亿级的,这种规模的数据适合用Hadoop集群并行处理;

二是免除了分库分表给查询处理上带来的麻烦。Hive是基于Hadoop的一个数据仓库工具,它将存储在HDFS上的结构化的文件映射成一张关系型数据库表,提供简单的SQL查询功能。本文结合Hive SQL的运行原理谈一谈Hive SQL的优化问题。

1. 数据过滤应尽早做,同时只选择所需要的列

这个原则在传统的RDMS数据中应该也适用,因为数据提前过滤了之后进行join或者其他操作的数据量就会变少,这时往往会带来效率上很大的提升。例如:

select 
    b.f_pass_id, 
    a.F_buyer_user_id, 
    a.F_trans_id, 
    a.F_state, 
    a.F_create_time, 
    a.F_pay_time, 
    a.F_seller_user_id, 
    a.F_seller_true_name, 
    a.F_total_amount, 
    a.F_mkt_solution_amount
from jxyy.ods_t_trans_df a 
left outer join jxyy.ods_t_user_reflect_df b
on a.F_buyer_user_id=b.f_user_id
where a.ds='20220119' 
and a.F_buyer_user_id>=10000000 
and a.F_buyer_user_id < 100000000000 
and a.F_create_time >='2014-01-01' 
and a.

你可能感兴趣的:(大数据,sparksql,hive,sql,hadoop)