Hive优化—ORCfile

Hive优化—ORC文件格式

一. 基于index优化

1. row group index

简介:ORC文件中每一个 Stripe 会分成多个 row group , 并保存每个 group 的统计信息,

  • 配置orc.create.index = true 开启生成索引
  • 配置orc.row.index.stride = 10000 设置每个 group 的行数
    - 设置太小,会产生大量的统计信息数据,官方说明必须大于1000

配置以上两个参数,则在查询时,Hive会将where之后的约束传递给ORC reader,这些reader根据组级别的统计信息,过滤掉不必要的数据。

此种优化多用于数值型字段的查询,同时因为需要有效利用每个列的统计信息 max或min,如果想要最大化利用row group index,则需要对数值型字段进行排序。

2. bloom filter index

布隆过滤器简而言之就是一个判断是否存在的算法,若返回不存在,则肯定不存在,若返回存在,则大概率存在。因此可以用于跳过某些不包含需要查询的字段值的stripe,从而达到优化查询的目的。

  • 配置参数 orc.bloom.filter.columns”=”col_name” 对名为col_name的字段设置开启布隆过滤器。

在查询的过程中,假使where col_name = ’a‘ ,则会通过布隆过滤器判断值 ’a‘是否被包含在该Stripe内,若返回不存在,则直接跳过该Stripe。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值