您当前的位置: 首页 >  段智华 大数据

大数据Spark “蘑菇云”行动第91课:Hive中Index和Bucket案例实战及存储类型rcfile实战详解

段智华 发布时间:2016-12-04 21:34:18 ,浏览量:6

大数据Spark “蘑菇云”行动第91课:Hive中Index和Bucket案例实战及存储类型实战详解


索引:例如每行扫描,假如1000列,要扫1000列;但做了索引以后,key为关键字做索引,只扫描1列.
     建立索引的时候,一般都有分区表!建立一个partition
     视图上不能建立索引;
     索引表存储格式可以与原有表存储格式不一样。



hive>
use hivestudy;
show tables;
desc rating;
CREATE INDEX index_ratings ON TABLE ratings(userid) AS 'org.apache.hadoop.hive.sql.index.compact.CompactIndexHandler' WITH DEFERRED REBUILD;
SHOW INDEX ON ratings;


 
查看一下数据,但里面是空的。假如在创建索引是我们使用“ WITH DEFERRED REBUILD”语句,则索引创建是为空,可以通过“Alter index ... REBUILD”在一个


partition上或所有partition上构建索引。
执行以下语句,查看索引有了目录了。但还是失败的,数据没有
hive〉 ALTER INDEX index_ratings ON ratings rebuild;




桶表:桶就是一个数据单位,表大的时候使用桶;例如5个桶表,根据key hash落到哪个桶中,提高查询速度。在企业中用的不多,但必须掌握。
先设置参数 hive.enforce.bucketing=true; 原先是一个目录,就变成了几个目录,例如设置3、5、9奇数个桶。


在分区表的基础上重来一次索引,在创建过程中实际移动数据,现在ok了
CREATE INDEX index_users ON TABLE users(userid) AS 'org.apache.hadoop.hive.sql.index.compact.CompactIndexHandler' WITH DEFERRED REBUILD;
ALTER INDEX index_ratings ON users rebuild;


select * from (hdfs webui查询的目录 user_index_user) 查询出了数据


存储格式的例子:
hive>
use default;

CREATE TABLE table_rc() .......as rcfile;
















关注
打赏
查看更多评论

段智华

暂无认证

  • 6浏览

    0关注

    1232博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录