hive数据模型之视图
视图
视图是用来简化操作的,它其实是一张虚表,在视图中不缓冲记录,也没有提高性能
测试:
create view view1
as
select dept.deptno,dept.dname,emp.ename
from emp,dept
where emp.deptno=dept.deptno;
物化视图
(*)能够缓存数据
(*)hive把物化视图当成一张“表”
(*)将数据缓存到文件中:orc文件(是一个列式存储文件)
create materialized view view2
as
select dept.deptno,dept.dname,emp.ename
from emp,dept
where emp.deptno=dept.deptno;
从最终的操作结果来看,视图在创建视图的是候仅仅是创建了输入,只有在查询的时候才翻译成mapreduce程序,进行查询数据,而物化视图在创建表的时候就已经生成mapreduce程序,在查询简单查询物化视图数据的时候并没有生成mapreduce程序
说明物化视图在创建的时候已经导入了数据,同时也被当做文件写入了hdfs