Hive(五):常见存储格式的性能测试、比较

7 篇文章 0 订阅
  1. 测试方法
  • 以下是测试textFile存储的Demo,其它存储的测试方法参照既可以
create table page_views_text(
track_time string,
url string,
session_id string,
referer string,
ip string,
end_user_id string,
city_id string
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 
stored as textFile;

insert overwrite table page_views_text select * from page_views;
  1. 比较
  • 测试数据比较
存储格式原文件大小当前存储格式下文件大小存储耗时
textFile(默认)18.1M18.1M19015089
parquet18.1M13.1M13721063
RCFile18.1M17.9 M18799676
ORC(默认内置压缩ZLIB)18.1M2.8 M2914107
ORC(去掉内置默认压缩)18.1M7.7 M8101648
AVRO18.1M18.9 M19777791
SequenceFile18.1M18.9M19777807
  • 总结比较
存储格式特点存储比较压缩比较查询比较
textFile行式存储hive表中默认的存储格式,存储的字段类型默认全是string支持压缩查询速度慢
SEQUENCEFILE行式存储比textFile多了头部、标识、信息长度等信息存储比textFile大;支持压缩,但是压缩的是value
RCFile行列混合先在水平上划分多个group,然后然后每个group内部再以列存储支持压缩,压缩10%左右查询快
ORC行列混合在RCFile基础上优化;在水平上划分为多个strips,每个strip由:Index Data(包含每一列的最大值和最小值以及每一列中的行位置),Row Data(用于表扫描),strip footer(包含流位置的目录)存储是textFiled的40%,使用压缩10%查询快
  1. 行式存储和列式存储
  • 行式存储
    在这里插入图片描述
  • 列式存储
    在这里插入图片描述
  • RCFile
    在这里插入图片描述
  • ORC
    在这里插入图片描述
存储方法存储特点压缩比较查询比较
行式存储一个快存储一列或者多列数据 ,按照行压缩,由于一行中有多个字段,而且字段类型有可能不一样,所有压缩性能差查询一张表中的某几个字段,由于是行式存储而进行全表扫描,查询慢,
列式存储在HDFS上一个block存储一列或多列必然按列压缩,每一列对应的相同的数据格式,所以压缩性能好查询一张表中的某几个字段,由于是列式存储不需要全表扫描,查询快如果是select  * from table 这种反之慢,因为列式存储查询出结果还要组装数据
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值