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 -- 查看视图的元数据信息