ORC数据切分策略

ORC 在map阶段读取数据并进行切分的策略有三种BI、ETL、HYBRID。

ETL策略会将文件(OrcFile)进行切分(以stripe为粒度),多个stripe组成一个split;

BI策略直接以Block为粒度进行split划分(跳过stripe);

HYBRID策略为:当文件的平均大小大于hadoop最大split值(默认256 * 1024 * 1024)时使用ETL策略,否则使用BI策略。 

优缺点:

因为ETL以stripe为粒度切分,所以需要读取File Footer(元数据)到内存,当这个表很大的时候(OCRFile很大),File Footer也很大,可能造成切片失败(driver端OOM)。

但BI策略是以Hdfs的Block进行切分的,所以不需要读取ORC元数据,节约性能,但ETL可以更细粒度的切分,如果不在意切分性能的话。

因此对于一些较大的ORC表的读取建议使用BI策略。对于一些较小的尤其有数据倾斜的表(这里的数据倾斜指大量stripe存储于少数文件中),建议使用ETL策略。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值