存储格式~

目录

存储格式

ORC(Optimized Row Columnar)

ORC的数据存储方式

ORC具有以下一些优势:


存储格式

Text,Sequence,RCfile,ORC,Parquet,AVRO

Text:可读性好,占用磁盘空间大(文本 行式存储),使用但是不常用

Sequence:Hadoop API提供的一种二进制文件,以key,value的形式序列化带文件中(二进制 行式存储)

RCfile:面向列的存储格式(二进制 列式存储,压缩)

ORC:RCfile的升级版,优化了压缩、查询(二进制列式存储,压缩),文件可切分,支持复杂的数据结构,常用的压缩格式Lzip,Snappy,压缩、解压一般是冲突的在

Parquet:存储嵌套式数据,如json;支持更多编码;可以很sparkSQL很好的结合。列式存储高压缩(二进制列式存储,高压缩)压缩和查询性能比ORC稍差

ORC(Optimized Row Columnar)

ORC的数据存储方式

存储过程中,记录会被横向切分成多个stripes,每个stripes内的数据以列为单位进行存储,

所有列的内容保存在同一个文件中,通过配置对block压缩,设置HDFS的每个block存储ORC文件

的一个stripe。每个stripe的默认大小为256MB,相对于RCFile每个4MB的stripe而言,更大的stripe

使ORC的数据读取更加高效。

首先根据行组分割整个表,在每一个行组内进行按列存储

元数据使用Protocol Buffers序列化,并且文件中的数据尽可能的压缩以降低存储空间的消耗

目前也被Hive SQL、Spark SQL、Presto等查询引擎支持

设置stripe的只保存在一个block上的话,如果当前block上的剩余空间不足以存储下一个strpie,

ORC的writer接下来会将数据打散保存在block剩余的空间上,直到这个block存满为止。这样,下

一个stripe又会从下一个block开始存储。

ORC具有以下一些优势:

ORC是列式存储,有多种文件压缩方式,并且有着很高的压缩比。

文件是可切分(Split)的。因此,在Hive中使用ORC作为表的文件存储格式,不仅节省HDFS存储

资源,查询任务的输入数据量减少,使用的MapTask也就减少了。

提供了多种索引,row group index、bloom filter index。

ORC可以支持复杂的数据结构(比如Map等)

ORC中的特定的序列化与反序列化操作可以使ORC file writer根据数据类型进行写出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值