主页 > 新闻资讯 > 大数据学习:Hive支持的文件格式

大数据学习:Hive支持的文件格式

作者:张老师 浏览次数: 2021-03-25 17:44
在Hive的学习当中,大家对于HiveQL的重视,都是显而易见的,但是对于Hive的很多配置细节,往往容易忽视,这就容易导致对于Hive操作数据的基础不牢。今天的大数据学习分享,我们来讲讲Hive支持的文件格式。

本质上来说,Hive底层数据是以文件的形式存储在Hadoop的HDFS中,因此选择一个合适的文件存储格式,即使在不优化HiveQL语句的情况下,Hive性能也能得到提升。

大数据学习:Hive支持的文件格式

就好比我们在电脑中,使用记事本和Word文档存储同一段文字。记事本存储的文件占据更小的空间,但是Word文档支持更多的操作,这就是文件存储格式不同的直观表现。

在Hive中同样如此,选择不同的文件存储格式,代表着不同的数据存储方式,对于数据库性能的表现也会有所不同。

常见的Hive文件存储格式

常见的Hive文件存储格式包括文本格式文件(TextFile)、二进制序列化文件(SequenceFile)、和行列式文件(ORCFile)。

TextFile

Hive默认文件存储方式,存储方式为行式存储,自身不支持压缩和分片,通过LOAD和INSERT两种方式加载数据。

SequenceFile

将数据存储为序列化的键值对形式,其中值为原始数据,键为生成的内容,存储方式为行式存储。

自身支持两种压缩RECORD和BLOCK,其中RECORD表示只对值进行压缩,BLOCK表示键值都会被压缩。

自身支持切片,通过INSERT方式加载数据。

ORCFile

ORCFile是RCFile的优化版本,存储方式为行列存储。

自身支持两种压缩ZLIB和SNAPPY,其中ZLIB压缩率比较高,常用于数据仓库的ODS层,SNAPPY压缩和解压的速度比较快,常用于数据仓库的DW层

自身支持切片,通过INSERT方式加载数据。

ORCFile以其高效的数据存储和数据处理性能得以在Hive的实际生产环境中大量运行。

存储方式分为行式存储、列式存储和行列存储:

行式存储按行将数据存储在底层文件系统中,便于对于整行数据的修改,但是单列读取时也会读取整行数据。

列式存储以列为单位存储在底层文件系统中,便于单列的读取与统计,但是整行操作性能较差。

行列存储是列式存储的特殊形式,先基于行对数据进行分组,然后基于列对每组数据进行存储。行列存储结合了行式存储和列式存储的优点。

当HiveQL语句需要执行MapReduce任务时,切片是指在MapReduce任务中是否支持对文件进行Split(分割)成多个分片,每个分片交给一个Mapper处理,可以多个Mapper并行处理,提升MapReduce程序执行效率。

关于大数据学习,Hive支持的文件格式,今天就大致讲到这里了。对于Hive文件存储格式的认识,对于后续提供工作效率还是很有用的,修改文件存储格式,也是Hive性能优化的一种可行的方式。成都加米谷大数据,专业大数据培训机构,大数据开发、数据分析与挖掘,零基础班本月正在招生中,课程大纲及试听课程可联系客服获取!
热点排行
推荐文章
立即申请>>