Hive的数据存储(视图)
Hive的数据存储(视图)
视图(view)
- 视图是一种虚表,是一个逻辑概念;可以跨越多张表
既然视图是一种虚表,那么也就是说用操作表的方式也可以操作视图 - 但是视图是建立在已有表的基础上,视图赖以建立的这些表称为基表
- 视图最大的好处就是可以简化复杂的查询
现在有两张表
①部门表
②员工表
而在关系性数据库中两张表的deptno部门号是外键的关系
现在来建立一张视图来查询员工数据
--查询员工信息:员工号、姓名、月薪、年薪、部门名称
create view empinfo
as
select e.empno,e.ename,e.sal,e.sal*12 annlsal,d.dname
from emp e,dept d
where e.deptno=d.deptno;
查看视图结构
desc empinfo;
empno int
ename string
sal int
annlsal int
dname string
视图中查询数据
select * from empinfo;
视图是种虚表,它所查出来的数据都是存在于它所依赖的表。如果视图能够存储数据的话是不是可以提高查询效率?答案是肯定的。这种视图是种特殊视图,称为物化视图。
在oracle和mysql中是支持物化视图的,但是在hive中是不支持物化视图的