第27章视图与索引

         本章描述如何创建和管理视图(VIEW)。视图基于用户的需求产生,保存任何结果把数据设为一个viewHive中View的使用与SQL中View的使用一样。它是一个标准的RDBMS概念。可以在视图上执行所有DML操作。

27.1 创建视图(Creatinga View)

在执行一个SELECT语句时,创建一个视图。语法如下:

CREATE VIEW [IF NOT EXISTS] view_name [(column_name [COMMENT column_comment], ...) ] 
[COMMENT table_comment]
AS SELECT ...

27.1.1  创建视图实例

 创建一个视图的例子。使用之前创建emp表,执行查询检索薪资大于且等于30000的员工详细信息。存储结果在视图emp_30000中。创建视图emp_30000的语句如下:


CREATE VIEW emp_30000 
AS
SELECT * FROM employee
WHERE salary>30000;

执行语句和结果如下:

大数据学习笔记-------------------(27)_Hive删除索引        

27.2 删除视图(Droppinga View)

 删除视图的语法如下:

DROP VIEW view_name

执行如下查询语句删除一个名为emp_30000的视图:

DROP VIEW emp_30000;

大数据学习笔记-------------------(27)_Hive创建视图_02

27.3 创建索引(Creatingan Index)

索引(Index)只是表的特定列上的指针。 创建索引(Index)意味着在表的特定列上创建指针。 其语法如下:

CREATE INDEX index_name 
ON TABLE base_table_name (col_name, ...)
AS 'index.handler.class.name'
[WITH DEFERRED REBUILD]
[IDXPROPERTIES (property_name=property_value, ...)]
[IN TABLE index_table_name]
[PARTITIONED BY (col_name, ...)]
[
[ ROW FORMAT ...] STORED AS ...
| STORED BY ...
]
[LOCATION hdfs_path]
[TBLPROPERTIES (...)]

27.3.1创建索引实例

创建索引的例子,使用表emp,给emp表的salary列创建index_salary索引。执行如下语句创建索引:

CREATE INDEX inedx_salary ON TABLE emp (salary) 
AS
'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler'
WITH DEFERRED REBUILD;

它是salary列的指针。如果列被修改,则使用索引值存储更改

 大数据学习笔记-------------------(27)_Hive创建视图_03   

27.4 删除索引(Droppingan Index)

 删除索引的语法如下:

DROP INDEX <index_name> ON<table_name>

执行如下语句,删除index_salary索引:

DROP  INDEX index_salary ON emp;

大数据学习笔记-------------------(27)_Hive删除索引_04