hive 常见存储格式和应用场景

1.存储格式

textfile、sequencefile、orc、parquet

sequencefile很少使用(不介绍了),常见的主要就是orc 和

parquet

bash 复制代码
建表声明语句是:stored as textfile/orc/parquet

行存储:同一条数据的不同字段都在相邻位置,所以当要查找某一条记录所有数据时行存储查询速度比较快

列存储:以列来聚集数据,相同字段的值聚集在一起,所以当查询某一个指定列的所有数据时,列存储查询速度比较快

  1. Textfile

行式存储,这是hive表的默认存储格式,默认不做数据压缩,方便查看和编辑,占用空间大,I/O性能低,磁盘开销大,数据解析开销大,数据不支持分片(即代表着会带来无法对数据进行并行操作)。

  1. Orc

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

  1. Parquet

列式存储,是一个面向列的二进制文件格式(不可直接读取),文件中包含数据和元数据,所以该存储格式是自解析的,在大型查询时效率很快高效,parquet主要用在存储多层嵌套式数据上提供良好的性能支持,默认采用uncompressed不压缩方式。

2.压缩方式

gzip、zlib、snappy、lzo 这四种压缩方式。 压缩不会改变元数据的分割性,即压缩后原来的值不变。

bash 复制代码
建表声明语句是:tblproperties("orc.compress"="SNAPPY")

压缩率的话:gzip压缩率最佳,但压缩解压缩速度较慢

压缩速度的话:snappy压缩解压缩速度最佳,但压缩率较低

是否可切片的话:gzip/snappy/zlib是不支持切片,而lzo支持切片

3.应用场景

选压缩方式

1.数据量极其大且不经常用来做计算的数据,可采用GZip,因为其压缩占比最高,但压缩解压缩速度最慢。

2.数据量不大且经常需要用来计算的数据,可采用Snappy或者Lzo,常常还用来搭配orc和parquet存储格式实现大幅度的数据压缩存储。

选存储格式

1.hive生产环境下时常是采用orc或者parquet 这2种存储格式,但最好是做好统一,别一个数仓里的表存储格式百花齐放我建议就是数仓各层统一采用orc存储格式,拥有一定的压缩率且压缩解压缩速度也适中

2.orc存储格式+zlib压缩方式适合用作数仓ODS层表设计 ,因为这层一般是业务贴源层来入库数据和备份,查询频率打不大,而orc存储格式+snappy压缩方式适合用作数仓DW层表设计 ,这公共层表一般查询较频繁,所以要考虑下查询时解压缩速度

3.一般数据量预测会很大的话才不选用orc存储格式 ,主要是为了避免map端数据倾斜 ,因为orc+snappy不支持分割文件操作,所以压缩文件只会被一个任务读取,压缩文件很大的话就会造成mapper处理该文件极其耗时,这就是所谓的map读取文件出现数据倾斜

相关推荐
夫唯不争,故无尤也1 小时前
Maven创建Java项目实战全流程
java·数据仓库·hive·hadoop·maven
想ai抽1 小时前
深入starrocks-怎样实现多列联合统计信息
java·数据库·数据仓库
还是大剑师兰特2 小时前
Hadoop面试题及详细答案 110题 (71-85)-- 集群部署与运维
大数据·hadoop·大剑师·hadoop面试题
派可数据BI可视化3 小时前
商业智能BI与业务结构分析
大数据·数据仓库·信息可视化·数据分析·商业智能bi
_清浅3 小时前
大数据平台基础(Hadoop大数据原理与应用)
大数据·hadoop·分布式
The Sheep 202313 小时前
WPF自定义路由事件
大数据·hadoop·wpf
还是大剑师兰特1 天前
Hadoop面试题及详细答案 110题 (86-95)-- Hadoop生态系统工具
hadoop·大剑师·hadoop面试题
yumgpkpm1 天前
CMP (类Cloudera) CDP7.3(400次编译)在华为鲲鹏Aarch64(ARM)信创环境中的性能测试过程及命令
大数据·hive·hadoop·python·elasticsearch·spark·cloudera
Q26433650231 天前
大数据实战项目-基于K-Means算法与Spark的豆瓣读书数据分析与可视化系统-基于python的豆瓣读书数据分析与可视化大屏
大数据·hadoop·机器学习·数据分析·spark·毕业设计·kmeans
大数据CLUB1 天前
基于spark的抖音短视频数据分析及可视化
大数据·hadoop·分布式·数据分析·spark