• 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 -- 查看视图的元数据信息
  • 相关阅读:
    使用xdebug调试PHP程序
    删除有序数组中的重复元素
    libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
    C++中的纯虚方法
    排序算法:堆排序算法实现及分析
    虚拟蜜罐honeyd安装使用
    软件目录结构规范(以python为例)
    python源码为何都是pass
    对类的实例直接赋值
    Path Analyzer Pro出现raw socket问题
  • 原文地址:https://www.cnblogs.com/lijingang/p/11390817.html
Copyright © 2020-2023  润新知