HIVE视图&侧视图
一.Hive高阶建表
如需要hive高阶建表资料的小伙伴们请点击下方链接
链接: HIVE高阶.
二.Hive视图
1. 视图概述
- 通过隐藏子查询、连接和函数来简化查询的逻辑结构
- 虚拟表,从真实表中选取数据
- 只保存定义,不存储数据
- 如果删除或更改基础表,则查询视图将失败
- 视图是只读的,不能插入或装载数据
2. 应用场景
- 将特定的列提供给用户,保护数据隐私
- 查询语句复杂的场景
3.Hive视图操作命令
- 视图操作命令: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; -- 更改视图定义,
- 模拟面试:如何知道查询的是表还是视图?
- show create table 表名;
4.Hive视图操作实例
select distinct name,address[0],info.age from employee_partition e
join a_p a on a.test=e.add;
create view v_e_p as select distinct name,address[0],info.age
from employee_partition e join a_p a on a.test=e.add;
- 删除其基础表的分区
- 再查询视图,发现视图里什么都没有了
三.Hive侧视图
- 常与表生成函数结合使用,将函数的输入和输出连接
- OUTER关键字:即使output为空也会生成结果
select name,work_place,loc from employee lateral view outer explode(split(null,',')) a as loc;
- 支持多层级
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;
- 通常用于规范化行或解析JSON
用侧视图完成wordcount
create external table wctest(line string)
stored as textfile location '/wctest';
hdfs dfs -put /root/a.txt /wctest
select word,count(word) from wctest
lateral view explode(split(line,' ')) a as word group by word;
四.Hive高级查询
对Hive高级查询知识点感兴趣的小伙伴请移步
链接: Hive(五)高级查询.