Hive视图和索引

和关系型数据库中的普通视图一样,hive也支持视图
将部分查询结果,用视图view表示出来,方便查询

索引:提高检索效率
要求,唯一性约束、非空、unique
经常查的列添加索引!
索引建的好,效率提高

Hive View视图

  1. 不支持物化视图物理文件并不存在!虚拟表也是表,但能显示出来
  2. 只能查询,不能做加载数据操作
  3. 视图的创建,只是保存一份元数据,查询视图时才执行对应的子查询
  4. view定义中若包含了ORDER BY/LIMIT语句,当查询视图时也进行ORDER BY/LIMIT语句操作,view当中定义的优先级更高
  5. view支持迭代视图

视图View语法:

创建视图
CREATE VIEW [IF NOT EXISTS] [db_name.]view_name 
  [(column_name [COMMENT column_comment], ...) ]
  [COMMENT view_comment]
  [TBLPROPERTIES (property_name = property_value, ...)]
  AS SELECT ... ;

查询视图:
select colums from view;
删除视图:
DROP VIEW [IF EXISTS] [db_name.]view_name;

视图例子

creat view v_psn AS select id, name from psn;
select * from v_psn;
drop view v_psn

物理磁盘/user/hive/warehouse中不存在v_psn
元数据库TBLS表,存在v_psn视图信息
show tables也能看得见

创建视图View


Hive索引

优化查询以及检索性能

创建索引:
create index t1_index on table psn(name) 
as 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' with deferred rebuild 
in table t1_index_table;
as:指定索引器
in table:指定索引表,若不指定默认生成在default__psn_t1_index__表中

create index t2_index on table psn(name) 
as 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' with deferred rebuild;


重建索引(建立索引之后必须重建索引才能生效)执行map-reduce,真正建索引往表里面加载数据
ALTER INDEX t1_index ON psn REBUILD;

查看存在的索引
show index on psn;

删除索引、是索引名,不是索引表名称!
会将对应的表删除
DROP INDEX IF EXISTS t1_index ON psn;

show tables也能看得见,索引表中没有数据;rebuild后才有数据
没有索引全局扫描,有索引后找偏移量!

hive> select * from t1_index_table;
OK
t1_index_table.name t1_index_table._bucketname  t1_index_table._offsets
小明1 hdfs://mycluster/user/hive/warehouse/psn/psn.data   [0]
小明2 hdfs://mycluster/user/hive/warehouse/psn/psn.data   [56]
小明3 hdfs://mycluster/user/hive/warehouse/psn/psn.data   [112]
小明4 hdfs://mycluster/user/hive/warehouse/psn/psn.data   [168]
小明5 hdfs://mycluster/user/hive/warehouse/psn/psn.data   [219]
小明6 hdfs://mycluster/user/hive/warehouse/psn/psn.data   [275]
小明7 hdfs://mycluster/user/hive/warehouse/psn/psn.data   [331]
小明8 hdfs://mycluster/user/hive/warehouse/psn/psn.data   [386]
小明9 hdfs://mycluster/user/hive/warehouse/psn/psn.data   [442]
Time taken: 0.256 seconds, Fetched: 9 row(s)
hive> show index on psn;
OK
idx_name    tab_name    col_names   idx_tab_name    idx_type    comment
t1_index                psn                     name                    t1_index_table          compact         
t2_index                psn                     name                    default__psn_t2_index__ compact


Hive Lateral View

  1. Lateral View
    于和UDTF函数(explodesplit)结合来使用。
  2. 首先通过UDTF函数拆分成多行,再将多行结果组合成一个支持别名的虚拟表。
  3. 主要解决在select使用UDTF做查询过程中,查询只能包含单个UDTF,不能包含其他字段、以及多个UDTF的问题
语法:
  • LATERAL VIEW udtf(expression) tableAlias AS columnAlias (',' columnAlias)

统计人员表中共有多少种爱好、多少个城市?

hive> select explode(likes) from psn;

hive> select count(distinct(col1)), count(distinct(col2)) from psn
LATERAL VIEW explode(likes) psn AS col1 
LATERAL VIEW explode(address) psn AS col2, col3;
…… ……
Stage-Stage-1: Map: 1  Reduce: 1   Cumulative CPU: 2.91 sec   HDFS Read: 12601 HDFS Write: 4 SUCCESS
Total MapReduce CPU Time Spent: 2 seconds 910 msec
OK
_c0 _c1
4   2

地址是map=key-value

参考资料

Hadoop集群上搭建Hive
Hive建表并加载数据
Hive参数和动态分区
Hive分桶

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271