「Hive进阶篇」详解存储格式及压缩方式

本文介绍了Hive的四种存储格式(Textfile、Sequencefile、Orc、Parquet)及其特点,重点讨论了Orc和Parquet在压缩方式(如zlib、snappy)下的性能。行存储引擎适合全字段检索,列存储引擎适合多列查询。根据数据量和查询频率,推荐使用GZip压缩大量不常用数据,Snappy或Lzo压缩常用数据。在生产环境中,建议统一使用Orc格式,ODS层采用zlib压缩,DW层采用snappy压缩以平衡压缩速度和查询效率。

一、前言

hive优化除了有hql语句逻辑优化,hql参数调优等等,还有一个不起眼的细节容易被忽视掉,那便是hive数仓模型表的存储格式和压缩方式,hive底层数据是依托在hadoop,以HDFS文件存储在集群上的,hive数仓模型表选择一个合适的存储格式和压缩方式也是hive优化的一点
本篇就来聊一聊这块知识点吧。😄

通过大纲提问式进行概览,你能通过文章学到什么:
1. hive主要有几种存储格式&压缩方式
2. 每种存储格式和压缩方式的细节
3. 什么场景使用什么存储格式&压缩方式

二、存储格式

hive主要有textfile、sequencefile、orc、parquet 这四种存储格式,其中sequencefile很少使用,常见的主要就是orc和parquet这两种,往往也搭配着压缩方式合理使用。

建表声明语句是:stored as textfile/orc/parquet

1. Textfile

行式存储,这是hive表的默认存储格式,默认不做数据压缩,磁盘开销大,数据解析开销大,数据不支持分片(即代表着会带来无法对数据进行并行操作)

2. Orc

行列式存储,将数据按行分块,每个块按列存储,其中每个块都存储着一个索引,支持none和zlib和snappy这3种压缩方式,默认采用zlib压缩方式,不支持切片,orc存储格式能提高hive表的读取写入和处理的性能。

3. Parquet

列式存储,是一个面向列的二进制文件格

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值