hive 部分踩过的坑

1.hive索引

https://www.cnblogs.com/zlslch/p/6105294.html

分区数据非常庞大的情况下,索引常常是优于分区的。

Hive并不像事物数据库那样针对个别的行来执行查询、更新、删除等操作。这些操作依赖高效的索引来实现高性能。

为什么创建索引?

没有索引时,类似'WHERE tab1.col1 = 10' 的查询,Hive会加载整张表或分区,然后处理所有的rows,但是如果在字段col1上面存在索引时,那么只会加载和处理文件的一部分。

hive > create index user_index on table user(id) 
> as 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' 
> with deferred rebuild
> IN TABLE user_index_table;

#更新数据
ALTER INDEX user_index on user REBUILD;

#设置属性:设置 Hive 的索引属性来优化索引查询

set hive.exec.dynamic.partition.mode=nonstrict;----设置所有列为 dynamic partition
set hive.exec.dynamic.partition=true;----使用动态分区

#设置优化参数(这两个参数默认为false,需要打开)
set hive.optimize.index.filter =true;
set hive.optimize.index.groupby =true;

 

2.show partitions

how partitions 可以展示这个表格之下的所有分区信息。这个命令常常用在使用SQL语句操作数据之前。举个简单的例子,如果我们想要根据uid融合两个hive表格,那么在筛选数据的时候用到分区dt(datetime)以确保融合的数据是在同一天生成的。

3.sorted as parquet

hive 查询结果转为parquet格式 存入hdfs中

parquet:

压缩?我理解的是一个压缩格式。以列储存。缩短查询时间。提升存储效率,压缩内存。

https://cloud.tencent.com/developer/article/1158295

https://blog.csdn.net/worldchinalee/article/details/82785262

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值