zoukankan      html  css  js  c++  java
  • 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 -- 查看视图的元数据信息
  • 相关阅读:
    输入输出、基本运算符、流程控制
    Node学习6-fs模块
    Node学习5-events模块
    Node学习4-Buffer模块
    Node学习3-Path模块
    Node学习2-基础知识/HelloWorld/模块调用/global/process
    Node学习1-基本概念
    gulp/bower/less知识
    AngularJS学习1-基础知识
    JavaScript学习-类/原型链/class
  • 原文地址:https://www.cnblogs.com/lijingang/p/11390817.html
Copyright © 2011-2022 走看看