hive之视图和索引
一、视图
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之视图和索引的更多相关文章
- Hive的视图和索引(九)
Hive的视图和索引 1.Hive Lateral View 1.基本介绍 Lateral View用于和UDTF函数(explode.split)结合来使用. 首先通过UDTF函数拆分成多行 ...
- 优化MySchool数据库(事务、视图、索引)
事务.视图.索引: 事务:当生活逻辑中的“一个步骤”,需要使用多条SQL去完成时,必须使用事务来确保其“完整性“. 视图:简化数据库结构,方便你编写SQL语句(简化SQL语句的编写) 索引:提高“数据 ...
- mysql优化---订单查询优化:视图优化+索引创建
订单的表结构采用了垂直分表的策略,将订单相关的不同模块的字段维护在不同表中 在订单处理这个页面,需要查询各种维度, 因此为了方便查询创建了v_sale_order视图(老版本) drop view v ...
- Oracle数据库之视图与索引
Oracle数据库之视图与索引 1. 视图简介 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改. 视图基于的表称为基表,视图是存储在数据字典里的一条SE ...
- 序列、视图、索引(面试看这个就GO了)
oracle内置对象 序列.视图.索引 序列 create sequence aaa start with 1; 使用 视图 创建好之后 然后直接用 就OK了 有了视图可以代替子查询,使得sql简洁 ...
- accp8.0转换教材第5章事务、视图、索引、备份和恢复理解与练习
知识点:事务.视图.索引.数据库的备份和恢复 一.单词部分 ①transation事务②atomicity原子性③consistency一致性④isolation隔离性 ⑤durability持久性⑥ ...
- PL/SQL 编程(三 )程序包和包体,触发器,视图,索引
一.程序包和包体 程序包(package):存储在数据库中的一组子程序.变量定义.在包中的子程序可以被其它程序包或子程序调用.但如果声明的是局部子程序,则只能在定义该局部子程序的块中调用该局部子程序. ...
- java数据库编程之事务、视图、索引、备份、恢复
第五章:事务.视图.索引.备份和恢复 5.1:事务 事务的概念:事务(transcation)是讲一系列数据操作捆绑成为一个整体进行统计管理. 如果某一事务执行成功了,则该事务进行操作的所有数据将会提 ...
- sqlserver2012 在视图中建索引
第一种 如果已经有视图但是要加索引只需要执行 以下SQL就好(前提是此视图必须 绑定到架构) CREATE UNIQUE CLUSTERED INDEX in ...
随机推荐
- 20180805-Java ByteArrayOutputStream类
下面的例子演示了ByteArrayInputStream 和 ByteArrayOutputStream的使用: import java.io.* public class ByteStreamTes ...
- 学习日记2、easyui treeGrid属性及时间
属性 该属性扩展自数据网格(datagrid),下面是为树形网格(treegrid)添加的属性. 名称 类型 描述 默认值 idField string 定义标识树节点的键名字段.必需. null t ...
- 秒杀Servlce接口设计
秒杀Servlce接口设计 1.创建service包,创建SecKillServlce业务接口 SecKillServlce.Java package org.secKill.service;/** ...
- 一些比较好的blogs
01Trie水过普通平衡树 MinMax容斥 Trie与可持久化Trie 圆方树 CDQ分治 网络流 有上下界的网络流 Mobius函数 组合数学盒子小球 dsu on tree VFK大爷的反演课件 ...
- 笨办法学Python(learn python the hard way)--练习程序11-20
#ex11.py1 print("How old are you?",end=''), age = input() print("How tall are you?&qu ...
- web复制到剪切板js
web复制到剪切板 clipboard.js 好使!开源项目,下载地址: https://github.com/zenorocha/clipboard.js 使用方法: 引入 clipboard.mi ...
- 五一清北学堂培训之数据结构(Day 1&Day 2)
Day 1 前置知识: 二进制 2.基本语法 3.时间复杂度 正片 1.枚举 洛谷P1046陶陶摘苹果 入门题没什么好说的 判断素数:从2枚举到sqrt(n),若出现n的因子,则n是合数 ...
- Mac下隐藏或显示文件/文件夹
命令行操作 显示:defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏:defaults write com.apple.fi ...
- Vagrant 入门 - 同步目录(synced folders)
原文地址 尽管可以非常轻松的启动一台虚拟机,但很少有人希望通过 SSH 使用基于终端的编辑器来编辑文件.幸运的是,借助 Vagrant 你不需要这样做.通过使用同步目录,Vagrant 会自动同步 g ...
- 【转载】Spring boot学习记录(二)-配置文件解析
前言:本系列文章非本人原创,转自:http://tengj.top/2017/04/24/springboot0/ 正文 Spring Boot使用了一个全局的配置文件application.prop ...