Hive底层文件存储类型parquet

Hive作为数据仓库常用工具之一,在数据量级越来越大的时候,存储问题会暴露出来。那么在之前大部分为了省事方便都会以TextFile*作为存储类型,此类型比较占存储,并且查询效率并不是很高。为了节省集群的存储空间,研究了各种存储类型,网上各类帖子已经把这几类的优缺点和使用场景说的非常明确。我在这稍微提及一下,主要想分享我在使用sqoop抽取数据时进行文件类型转换(parquet)遇到的坑,共享出来希望遇到此问题的朋友借鉴,减少不必要时间消耗。*

一、概述一下各类文件类型的优缺点

1.TextFile

行存储,直接存储文件,数据量级大,磁盘开销大,
优点:数据操作方便,直接使用put上传数据文件,并且可以直接使用cat 查看HDFS上的文件内容

2.SequenceFile

行存储,含有键值对的二进制文件,数据量级大,对于Hadoop生态系统之外的工具不适用,需要通过text文件转化加载。
优点:可压缩、可分割,优化磁盘利用率和I/O

3.rcfile

行列式存储,先将数据按行分块,同一个record在一个块上,避免读一条记录需要读多个block;然后块数据列式存储
缺点:加载时性能消耗较大,需要通过text文件转化加载;读取全量数据性能低(扫描的数据块多效率低 )
优点:可压缩,高效的列存取;查询效率较高。

4.orcfile

列式存储,优化后的rcfile,存储方式和 rcfile 相同
优点:压缩快,快速列存取 ,效率比rcfile高 ,上层presto查询引擎和orc格式兼容性较好
缺点:查询引擎不支持 impala 只能用hive查询数据

5.parquet

列存储Parquet仅仅是一种存储格式,和语言、平台无关,并且不需要和任何一种数据处理框架绑定,通常使用的查询引擎和计算框架都已适配,并且可以很方便的将其它序列化工具生成的数据转换成Parquet格式。
优点:
1.支持多种(几乎大部分)查询引擎,计算框架,数据模型
2.可以使用更多的压缩算法
3.很好的支持: hive,spark,hadoop streaming,mapreduce,impala
4.查询性能和压缩比虽然没有ORC高但是已经达到相对满意的程度了


       如果使用impala组件,使用parquet 存储格式是最好的搭配。根据实际使用情况得知: 使用parquet格式没有采用压缩就已经有 2.3:1 的压缩比了 ,数据量至少比原来减少一半以上,并且不影响原来的查询和计算。

二、sqoop+hive(parquet)

1.hive建表语句
CREATE TABLE
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ORC和Parquet是两种常见的列式存储文件格式,它们在不同的情况下具有适用条件。 ORC文件格式适用条件: - 处理大规模数据:ORC文件格式在处理大规模数据时表现出色。它使用列式存储和压缩技术,可以减少I/O操作和存储空间,提高查询性能。 - 复杂的数据结构:如果你的数据包含复杂的数据结构(如嵌套的结构、复杂的数据类型等),ORC文件格式可以更好地支持这些数据类型,并提供更高的查询效率。 - 实时查询:ORC文件格式支持谓词下推和列式存储,这使得它在实时查询场景下表现出色。 Parquet文件格式适用条件: - 高度压缩和列式存储Parquet文件格式使用列式存储和高效的压缩算法,可以显著减少存储空间,并提供更快的查询性能。 - 多语言支持:Parquet文件格式支持多种编程语言(如Java、Python、R等),这使得它更易于与不同的数据处理框架集成。 - 复杂分析查询:如果你需要进行复杂的分析查询,如聚合、过滤和连接等操作,Parquet文件格式可以提供更高的查询性能。 - 列式存储的优势:由于Parquet使用列式存储,它在处理大规模数据时可以减少I/O操作,并且可以仅读取所需的列,从而提高查询效率。 总的来说,ORC和Parquet文件格式都适用于大规模数据处理和复杂查询分析,但根据具体的使用场景和需求,你可以选择适合你的文件格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值