Hive笔记整理

Hive 视图

1、视图的特点:

①不支持物化视图
②只能查询,不能做加载数据操作 load data into
③视图的创建,只是保存一份元数据,查询视图时才执行对应的子查询
④view定义中若包含了ORDER BY/LIMIT语句,当查询视图时也进行ORDER BY/LIMIT语句操作,view当中定义的优先级更高
⑤view支持迭代视图
⑥一旦创建成功,无法修改

2、为什么创建视图?

select a.name,b.age from table1 a join table2 b on(a.id=b.id) => view
如果后期经常执行这个查询语句,每次都写麻烦
可以将长的SQL(数据表)与视图对应映射,每次查询这个视图就是执行了长的SQL语句

3、视图操作

#创建视图
CREATE VIEW  IF NOT EXISTS  view1 AS SELECT * FROM logtbl order by age;
#可以查看已经创建的视图
show tables
#删除视图
drop view view1 

创建视图的时候不会启动MR任务
select * from view1;
但是在查询视图的时候会启动MR任务
视图的创建,只是保存一份元数据,查询视图时才执行对应的子查询

Hive 索引

索引

优化查询性能
若使用select * from table where age = 10;假设这个表的数据非常大,是有10个block组成
name查询的性能会很低
提高性能?
索引1(age > 10) block1(100,200) block2(200,389)
索引2(age = 10) block1(101,220) block2(200,389)
这个索引就类似目录

创建索引库,用于存放索引

create index t2_index on table psnbucket_partition(age) 
as 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' with deferred rebuild 
in table t2_index_table;

索引库中只是保存一些元数据,比如 对哪个字段创建索引,对哪个表创建索引等

alter index t2_index on psnbucket_partition rebuild; 

这一步是真正的创建索引信息,并且存储到索引库中,若数据库有新增数据,也可以使用以上语句重建索引

查看索引库:

66 hdfs://zfg/user/hive_remote/warehouse/psnbucket_partition/height=188.0/000000_0 [0,30,60,90,120] 188.0
77 hdfs://zfg/user/hive_remote/warehouse/psnbucket_partition/height=188.0/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值