hive 学习笔记

本文介绍了Hive的三种存储格式——textfile、sequence file和rcfile,强调了它们的特点和适用场景。此外,讨论了动态分区表与静态分区表的区别,并列举了Hive的聚合操作类型。文章还分享了Hive性能优化的方式,如启用map阶段的聚合,并探讨了Hive查询中的数据类型问题、JOIN操作的实现原理及不同JOIN类型的应用。
摘要由CSDN通过智能技术生成

1.hive文件的三种存储格式

textfile,sequence file,rcfile。基于HDFS的行存储具备快速数据加载和动态负载的高适应能力,因为行存储保证了相同记录的所有域都在同一个集群节点。但是它不太满足快速的查询响应时间的要求,因为当查询仅仅针对所有列中的 少数几列时,它就不能跳过不需要的列,直接定位到所需列;同时在存储空间利用上,它也存在一些瓶颈,由于数据表中包含不同类型,不同数据值的列,行存储不 易获得一个较高的压缩比。RCFILE是基于SEQUENCEFILE实现的列存储格式。除了满足快速数据加载和动态负载高适应的需求外,也解决了SEQUENCEFILE的一些瓶颈。

其中textfile是文本存储,磁盘开销大,hive不会做切分,无法并行。sequence file是二进制存储  以key value方式存储,不过key为空,防止在map阶段按照key进行排序,使用默认的writable方式进行序列化和反序列化,存储性能高。

2.动态分区表和静态分区表的区别

静态分区表是在插入的时候明确指定分区路径,但是当在数据量特别大的时候,会导致sql语句写的太多,此时动态分区表能够根据字段来动态创建分区,但是动态分区要求至少有一列分区字段是静态的,防止因涉及错误导致查询产生大量的分区。

3.hive聚合操作有哪些

count统计个数 sum计算集合的和 求集合平均值 计算集合的方差 协方差 计算集合最值  计算集合占比


4.hive性能优化方式有哪些

SET hive.map.aggr=true 这个设置会触发在map阶

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值