一、视图

1、视图定义

  视图其实是一个虚表,视图可以允许保存一个查询,并像对待表一样对这个查询进行操作,视图是一个逻辑结构,并不会存储数据。

2、视图的创建

  通过创建视图来限制数据访问可以用来保护信息不被随意查询。

  create table userinfo(

    id int,name string,age int,address string

  );

  create view some_userinfo as

  select id,name from userinfo;

3、删除视图

  drop view if exists userinfo;  

4、关于视图的知识

  show tables 可以查看视图,不能使用insert和load命令来操作视图。

  视图是只读的,对视图的操作都是操作元数据。

二、索引

1、索引的概念:

  hive中只有有限的索引功能,hive中没有主键和外键的概念,可以通过对一些字段建立索引来加速某些操作。一张表的索引数据存储在另外一张表中。

  当逻辑分区太多太细时而无法使用时,建立索引也就成为分区的另外一个选择。维护索引和创建索引需要消耗计算资源。

  除了s3文件系统的数据,对外部表和视图都是可以建立索引的。

  目前hive通过实现索引接口的Java类(CompactIndexHandler)来指定索引处理器,还增加了Bitmap索引处理器(应用于排重后较少的列)

  不能使用drop table语句之前删除索引。

  若有索引表,删除一个索引将会删除这个索引表。

  若被索引的表被删除了,那么对应的索引和索引表也会被删除;若原始表的某个分区被删除了,那么这个分区对应的分区索引同时会被删除掉。  

2、创建索引:

  表结构:create table_employee(

        name string,

        salary float,

        subordinates array<string>,

        deductions map<string,float>

        address struct<street:string,city:string,state:string,zip:int>

      )partitioned by(country string,state string)

  索引结构:create index employee_index on table_employee(country)

       as ‘org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler’  // 'Bitmap'

       with deferred rebuild

       in table employee_index_table

       partitioned by (country,name)  //此分区是针对于employee_index_table

  使用索引:

    SELECT 字段名表

    FROM 表名

    WITH (INDEX(索引名))

    WHERE 查询条件

hive之视图和索引的更多相关文章

  1. Hive的视图和索引(九)

    Hive的视图和索引 1.Hive Lateral View 1.基本介绍 ​ Lateral View用于和UDTF函数(explode.split)结合来使用. ​ 首先通过UDTF函数拆分成多行 ...

  2. 优化MySchool数据库(事务、视图、索引)

    事务.视图.索引: 事务:当生活逻辑中的“一个步骤”,需要使用多条SQL去完成时,必须使用事务来确保其“完整性“. 视图:简化数据库结构,方便你编写SQL语句(简化SQL语句的编写) 索引:提高“数据 ...

  3. mysql优化---订单查询优化:视图优化+索引创建

    订单的表结构采用了垂直分表的策略,将订单相关的不同模块的字段维护在不同表中 在订单处理这个页面,需要查询各种维度, 因此为了方便查询创建了v_sale_order视图(老版本) drop view v ...

  4. Oracle数据库之视图与索引

    Oracle数据库之视图与索引 1. 视图简介 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改. 视图基于的表称为基表,视图是存储在数据字典里的一条SE ...

  5. 序列、视图、索引(面试看这个就GO了)

    oracle内置对象 序列.视图.索引 序列 create sequence aaa start with 1; 使用 视图 创建好之后 然后直接用 就OK了 有了视图可以代替子查询,使得sql简洁 ...

  6. accp8.0转换教材第5章事务、视图、索引、备份和恢复理解与练习

    知识点:事务.视图.索引.数据库的备份和恢复 一.单词部分 ①transation事务②atomicity原子性③consistency一致性④isolation隔离性 ⑤durability持久性⑥ ...

  7. PL/SQL 编程(三 )程序包和包体,触发器,视图,索引

    一.程序包和包体 程序包(package):存储在数据库中的一组子程序.变量定义.在包中的子程序可以被其它程序包或子程序调用.但如果声明的是局部子程序,则只能在定义该局部子程序的块中调用该局部子程序. ...

  8. java数据库编程之事务、视图、索引、备份、恢复

    第五章:事务.视图.索引.备份和恢复 5.1:事务 事务的概念:事务(transcation)是讲一系列数据操作捆绑成为一个整体进行统计管理. 如果某一事务执行成功了,则该事务进行操作的所有数据将会提 ...

  9. sqlserver2012 在视图中建索引

      第一种 如果已经有视图但是要加索引只需要执行 以下SQL就好(前提是此视图必须                    绑定到架构) CREATE UNIQUE CLUSTERED INDEX in ...

随机推荐

  1. [CSP-S模拟测试]:不等式(数学)

    题目描述 小$z$热衷于数学.今天数学课的内容是解不等式:$L\leqslant S\times x\leqslant R$.小$z$心想这也太简单了,不禁陷入了深深的思考:假如已知$L,R,S,M$ ...

  2. P1058立体图(面对代码解释)

    传送 样例: 输出样例: (洛谷上面的那个太丑了就不放了) 大佬博客在此 乍一看好像真的没有什么思路 所以我们结合ybr大佬的代码进行分析 疑点都将在代码下面进行分析(面对代码做题模式开始) #inc ...

  3. Oralce-资源配置PROFILE

    profile:作为用户配置文件,它是密码限制,资源限制的命名集合 在安装数据库时,Oracle自动会建立名为default的默认配置文件 使用profile文件时,要注意以下几点: 建立用户时,如果 ...

  4. LinkedList 源码解读

    LinkedList 源码解读 基于jdk1.7.0_80 public class LinkedList<E> extends AbstractSequentialList<E&g ...

  5. ElasticSearch删除索引

    curl -X DELETE http://{ES IP address}:9200/{index_name}

  6. Recurrent Neural Network(3):LSTM Basics and 《Inside Out》

    下图是Naive RNN的Recurrent Unit示意图,可以看到,在每个时间点t,Recurrent Unit会输出一个隐藏状态ht,对ht加工提取后将产生t时刻的输出yt.而在下一个时间节点t ...

  7. HTML5--sessionStorage、localStorage、manifest

    sessionStroage: <!DOCTYPE html> <html lang="en"> <head> <meta charset ...

  8. vuejs基础-事件修饰符

    事件修饰符: .stop 阻止冒泡 .prevent 阻止默认事件 .capture 添加事件侦听器时使用事件捕获模式 .self 只当事件在该元素本身(比如不是子元素)触发时触发回调 .once 事 ...

  9. docker实现分布式项目部署

    docker的安装及基本命令这里就略过了,可以看我的这篇笔记https://www.cnblogs.com/pyweb/p/11351878.html. 这次需要在docker上部署两个项目,整体的流 ...

  10. Learning OSG programing---osgAnimation(3)

    接下来是用createModel函数创建模型: osg::ref_ptr<osg::Group> createModel(bool overlay, osgSim::OverlayNode ...