hiveSQL官网:https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions
https://cwiki.apache.org/confluence/display/Hive/Home
hive在创建表格时候有多种格式类型,默认格式文件格式textFile,常用的textFile、ORC,RCFile、parquet另外还有AVRO、inputformat
,数据存储分为:案列存储和按行存储
hive表文件压缩格式常用压缩方式ZLIB、SNAPPY
snappy压缩语句:
未压缩前数据大小:
用snappy压缩格式后文件大小:
比较:
综上:
在实际的开发当中,hive表的数据
1.存储格式:orcfile/qarquet
2.数据压缩格式:snappy
hive 优化方式有可以从两大方面
数据存储的优化,数据处理的优化
一数据优化:
1.大表拆分成子表
2.外部表和分区表
a二者结合使用
b单独使用
3.数据压缩
存储格式(常用textfile(创建表默认)、RCFile、parquet)
压缩格式:常用snappy
二、数据处理优化
1.Hive的SQL语句
优化SQL语句
Join :有三种join:map join、reduce join、 SMB join
具体事例
事例一:
优化前:
select d.already_check_num,i.order_code from
(select order_info_id,already_check_num from order_detail) d
join
(select id,order_code from order_info) i
on
i.id=d.order_info_id;
性能:
优化后:
select d.already_check_num,i.order_code from
order_detail d
join
order_info i
on
i.id=d.order_info_id;
性能:
实例二:
优化前:
select d.already_check_num,i.order_code,d.check_status from
order_detail d
join
order_info i
on
i.id=d.order_info_id where d.check_status="un_check"
优化后:
select d.already_check_num,i.order_code from
(select order_info_id,already_check_num from order_detail where check_status ="un_check") d
join
(select id,order_code from order_info) i
on
i.id=d.order_info_id;
性能:
vi /opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11/etc/hive/conf.dist/hive-default.xml.template
快速查询paralle
:/paralle即可
join 并发执行(相互不干扰的情况可以让多个join并发执行)
在hive-default.xml中设置参数默认情况下最多可以有8个job任务同时执行如下图,一般自定义10-15之间
动态分区属性:设置文nonstrict表示允许所有分区都是动态的(默认strict)
---设置为strict,表示必须保证至少一个分区是静态的
2.mapreduce
控制reduce number
如在通常情况下数据只经过map端/*map..
JVM的优化