Hive的文件存储格式

textFile

  • textFile为默认格式
  • 存储方式:行存储
  • 缺点:磁盘开销大;数据解析开销大;压缩的text文件,hive无法进行合并和拆分

sequencefile

  • 二进制文件,以<key,value>的形式序列化到文件中
  • 存储方式:行存储
  • 优点:可分割、压缩,一般选择block压缩,与hadoop api中的mapfile是互相兼容的。

rcfile

  • 存储方式:数据按行分块 每块按照列存储
  • 压缩快 快速列存取
  • 读记录尽量涉及到的block最少
  • 读取需要的列只需要读取每个row group 的头部定义。
  • 读取全量数据的操作 性能可能比sequencefile没有明显的优势

orc

  • 存储方式:数据按行分块 每块按照列存储
  • 压缩快 快速列存取
  • 效率比rcfile高,是rcfile的改良版本

ORC实际上是在RC文件存储格式做了一些优化,它的主要优点有:
(1)、每个task只输出单个文件,这样可以减少NameNode的负载;
(2)、支持各种复杂的数据类型,比如: datetime, decimal, 以及一些复杂类型(struct, list, map, and union);
(3)、在文件中存储了一些轻量级的索引数据;
(4)、基于数据类型的块模式压缩:a、integer类型的列用行程长度编码(run-length encoding);b、String类型的列用字典编码(dictionary encoding);
(5)、用多个互相独立的RecordReaders并行读相同的文件;
(6)、无需扫描markers就可以分割文件;
(7)、绑定读写所需要的内存;
(8)、metadata的存储是用 Protocol Buffers的,所以它支持添加和删除一些列。

snappy和lzo
row format delimited fields terminated by '\t'
stored as orc tblproperties("orc.compress"="SNAPPY")

自定义格式

用户可以通过实现inoutformat和outputformat来定义输入输出格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值