Hive性能与调优—学习笔记[4]


1、Hive SQL的基本实现(Join、Group by、Distinct)

(1)Join实现:Hive不支持关联字查询。例如:

select t1.name,t2.name from t1 join t2 on t1.id=t2.id;

(2)Group by实现:

select tab.feature1,tab.feature2,count(*) from tab group by feature1,feature2;

(3)Distinct实现:

select tab.fea1id,count(distinct tab.fea2id) num from tab order group by tab.fea1id;

注意:多列Distinct实现比较复杂。类似于Cube。


2、Hive 中的数据抽象
这里写图片描述


3、JOIN类型
(1)Shuffle Join,join key用MRShuffle;
(2)Broadcast Join,一大一小的table,比如星形数据库表很适合,维度表小到能装到单节点内存中;
(3)Sort-Merge-Bucket join,大表和大表的join,数据仓库中一个难点,即是impala也是受限于内存。


4、优化Hive性能的数据管理方式
(1)Small表(维度较小),数据很热,做各种查询,可以增加备份表;
(2)任何数据,需要查询过滤,可以在经常查询的列上排序;
(3)Large Table,join key,sort and bucket;
(4)分开而数据和冷数据;
(5)Large table,查询,比如时间,可以采用partition。


5、Hive table 存储格式
(1)ORCFile:存储列数较多的表;
(2)RCFile、AVro、Delimited Text、Regular、JSON和XML


6、Hive 调优
(1)使用ORCFile;
(2)Partition data;
(3)最小化data shuff。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值