zoukankan      html  css  js  c++  java
  • Hadoop Hive概念学习系列之hive里的视图(十二)

      

      不多说,直接上干货!

    可以先,从MySQL里的视图概念理解入手

            视图是由从数据库的基本表中选取出来的数据组成的逻辑窗口,与基本表不同,它是一个虚表。在数据库中,存放的只是视图的定义,而不存放视图包含的数据项,这些项目仍然存放在原来的基本表结构中。

            视图可以被定义为多个表的连接,也可以被定义为只有部分列可见,也可为部分行可见。

            视图的作用有:

                    首先,可以简化数据查询语句

                    其次,可以使用用户能从多角度看待同一数据

                    然后,通过引入视图可以提高数据的安全性

                    最后,视图提提供了一定程度的逻辑独立性等。

            引入视图机制带来的好处:

            通过引入视图机制,用户可以将注意力集中在其关心的数据上(而非全部数据),这样就大大提高了用户效率与用户满意度,而且如果这些数据来源于多个基本表结构,或者数据不仅来自于基本表结构,还有一部分数据来源于其他视图,并且搜索条件又比较复杂时,需要编写的查询语句就会比较烦琐,此时定义视图就可以使数据的查询语句变得简单可行。

           定义视图可以将表与表之间的复杂的操作连接和搜索条件对用户不可见,用户只需要简单地对一个视图进行查询即可,故增加了数据的安全性,但不能提高查询效率。

      Hive视图是一种无关底层存储的逻辑对象。视图中的数据是SELECT查询返回的结果。在视图选定后才会开始执行SELECT查询。

      需要注意的是,视图是只读的,不能向视图中插入或是加载数据

      下面是一个创建并使用视图的例子:

    create view group_by_year_vw
    as
    select year,count(*) as video_ct from videos group by year;
    select * from group_by_year_vw;

      视图通常被用作将数据发布给外部客户端的抽象层。视图可以使用稳定的公开的列名和数据类型来创建。

      视图可以允许在不影响下游数据消费者的情况下修改内部的表结构。

       一定要理解,创建视图,是基于表来创建得到视图的。

    步骤一:创建一个测试表 

    create table test(id int,name string);
    desc test;
    结果是
    id int
    name string

    步骤二:基于表 test 创建一个 test_view 视图

    CREATE VIEW test_view(
    id,
    name_length
    )
    AS SELECT id,length(name) FROM test;

    步骤三:查看 test_view 视图属性

    DESC test_view;

    步骤四:查看视图结果

    SELECT * FROM test_view;

      建议,学习,Hive的视图,与HBase里的视图(包括HBase的概念视图、HBase的物理视图)对比学习。

    HBase里的物理视图

    HBase里的概念视图

    欢迎大家,加入我的微信公众号:大数据躺过的坑     免费给分享
     
     
     

    同时,大家可以关注我的个人博客

       http://www.cnblogs.com/zlslch/   和  http://www.cnblogs.com/lchzls/ 

      人生苦短,我愿分享。本公众号将秉持活到老学到老学习无休止的交流分享开源精神,汇聚于互联网和个人学习工作的精华干货知识,一切来于互联网,反馈回互联网。
      目前研究领域:大数据、机器学习、深度学习、人工智能、数据挖掘、数据分析。 语言涉及:Java、Scala、Python、Shell、Linux等 。同时还涉及平常所使用的手机、电脑和互联网上的使用技巧、问题和实用软件。 只要你一直关注和呆在群里,每天必须有收获

           以及对应本平台的QQ群:161156071(大数据躺过的坑)

     

     

  • 相关阅读:
    ES6(二)
    ES6
    bootstrap
    数组对象
    bootstrap
    html5(二)
    css3转换、动画、布局
    整理的一些兼容写法
    css渐变、背景、过渡、分页
    css3(一)
  • 原文地址:https://www.cnblogs.com/zlslch/p/6105243.html
Copyright © 2011-2022 走看看