Hive的视图和侧视图

Hive的视图和侧视图

Hive的视图

什么是视图

1、通过隐藏子查询、连接和函数来简化查询的逻辑结构

2、虚拟表,从真实表中选取数据

3、只保存定义,不存储数据

4、如果删除或更改基础表,则查询视图将失败

5、视图是只读的,不能插入或装载数据

视图的优点

1、将特定的列提供给用户,保护数据隐私

2、查询语句复杂的场景

视图的语法

视图操作命令:CREATE、SHOW、DROP、ALTER

CREATE VIEW view_name AS SELECT statement; -- 创建视图
	-- 创建视图支持 CTE, ORDER BY, LIMIT, JOIN, etc.
SHOW TABLES; -- 查找视图 (SHOW VIEWS 在 hive v2.2.0之后)
SHOW CREATE TABLE view_name; -- 查看视图定义
DROP view_name; -- 删除视图
ALTER VIEW view_name SET TBLPROPERTIES ('comment' = 'This is a view');
--更改视图属性
ALTER VIEW view_name AS SELECT statement; -- 更改视图定义, 

Hive的侧视图

1、常与表生成函数结合使用,将函数的输入和输出连接

2、OUTER关键字:即使output为空也会生成结果

select name,work_place,loc from employee lateral view outer explode(split(null,',')) a as loc;

3、支持多层级

select name,wps,skill,score from employee 
lateral view explode(work_place) work_place_single as wps
lateral view explode(skills_score) sks as skill,score;

4、通常用于规范化行或解析JSON

总结

视图

Hive中的试图,仅仅是一个sql语句的快捷方式

hive中的视图只是逻辑视图,没有物化视图

hive的视图,不支持增删改,只支持查询

hive的视图,只有的查询的时候,才会真正执行

侧视图

Lateral View和UDTF类功能函数一起使用,表中的每一行和UDTF函数输出的每一行进行连接,生成一张新的虚拟表,可以对UDTF产生的记录设置字段名称,新加的字段可以使用在sort by,group by等语句中,不需要再套一层子查询。Lateral View的作用是可以扩展原来的表数据。

猜你喜欢

转载自blog.csdn.net/giantleech/article/details/115331046
今日推荐