HiveQL:视图

一.概念

视图可以允许保存一个查询并像对待表一样对这个查询进行操作。这是一个逻辑结构,换言之,hive目前不支持物化视图。

1.使用视图降低查询复杂度

-- 创建一个视图
CREATE VIEW tb1 AS
SELECT * FROM t1 JOIN t2
ON t1.id = t2.id;

-- 从视图中获取数据
SELECT * FROM tb1 WHERE ...

2.使用视图来限制基于条件过滤的数据

/*
1.有些数据库允许将视图作为一个安全机制,也就是不给用户直接访问具有敏感数据的原始表,而是提供给用户一个通过WHERE限制视图,以供访问。
2.HIVE目前不支持次功能,因为用户必须具有能够访问整个底层原始表的权限,这时候视图才能工作。
3.因此,通过创建视图来限制数据访问可以用来保护信息不被随意查询。
*/
CREATE VIEW techops_employee
SELECT * FROM employee WHERE department = 'techops';
-- 这样可以将一张表的数据通过视图划分开,可以起到访问数据权限的划分作用。

3.动态分区的视图和map类型

/*
可以创建具有动态分区的视图,其他略
*/

4.视图的特点

-- 1.定义一个视图实际上不会'具体化'操作任何数据,所以视图实际上是对其所用的表和列的固化过程。
-- 2.对于IF NOT EXITS 和COMMENT是可用的,和创建表是同样的含义。
-- 3.视图是只读的。    
-- 4.一次操作命令
    DROP VIEW IF EXITS shipments -- 删除视图
    SHOW TABLES -- 查看视图
    DESCRIBE TABLE /DESCRIBLE EXTENED TABLE -- 查看视图的元数据信息

 

posted @ 2019-08-21 19:47  行走的灵魂  阅读(299)  评论(0编辑  收藏  举报