美文网首页
HiveQL 数据定义:视图和索引

HiveQL 数据定义:视图和索引

作者: 无敌的肉包 | 来源:发表于2018-08-13 16:17 被阅读0次

分区
• 创建视图
• 删除视图
• 创建索引
• 删除索引

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

创建视图
CREATE VIEW [IF NOT EXISTS] view_name [ (column_name [COMMENT column_comment], ...) ]
[COMMENT view_comment]
[TBLPROPERTIES (property_name = property_value, ...)] 
AS SELECT ...

•如果没有提供表名,视图列的名字将由定义的SELECT表达式自动生成
•如果修改基本表的属性,视图中不会体现,无效查询将会失败
•视图是只读的,不能用LOAD/INSERT/ALTER

示例
举个例子来看。假设employee表拥有如下字段:Id, Name, Salary, DesignationDept。生成一个查询检索工资超过30000卢比的员工详细信息,我们把结果存储在一个名为视图 emp_30000.

+------+--------------+-------------+-------------------+--------+
| ID   | Name         | Salary      | Designation       | Dept   |
+------+--------------+-------------+-------------------+--------+
|1201  | Gopal        | 45000       | Technical manager | TP     |
|1202  | Manisha      | 45000       | Proofreader       | PR     |
|1203  | Masthanvali  | 40000       | Technical writer  | TP     |
|1204  | Krian        | 40000       | Hr Admin          | HR     |
|1205  | Kranthi      | 30000       | Op Admin          | Admin  |
+------+--------------+-------------+-------------------+--------+

下面使用上述业务情景查询检索员的工详细信息:

hive> CREATE VIEW emp_30000 AS
   > SELECT * FROM employee
   > WHERE salary>30000;
删除视图
DROP VIEW view_name

下面的查询删除一个名为emp_30000的视图:

hive> DROP VIEW emp_30000;

索引是一个表上的一个特定列的指针。创建索引意味着创建一个表上的一个特定列的指针

创建索引
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 (...)]

例子
让我们举个索引例子。使用之前的字段 Id, Name, Salary, Designation, 和 Dept创建一个名为index_salary的索引,对employee 表的salary列索引。

下面的查询创建一个索引:

hive> CREATE INDEX inedx_salary ON TABLE employee(salary)
   > AS 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler';

这是一个指向salary列。如果列被修改,变更使用的索引值存储。

删除索引

下面的语法用来删除索引:

DROP INDEX <index_name> ON <table_name>

下面的查询删除名为index_salary索引:

hive> DROP INDEX index_salary ON employee;

相关文章

  • HiveQL 数据定义:视图和索引

    分区• 创建视图• 删除视图• 创建索引• 删除索引 视图可以允许保存一个查询并且像对待表一样对待这个查询进行操作...

  • Hive权威指南读书笔记0002

    第5章 HiveQL数据操作 在上一章中介绍了HiveQL的数据定义部分,所谓数据定义就是对数据库中表结构的增删改...

  • Hive编程指南学习笔记-持续更新

    HiveQL 数据定义 HiveQL 是Hive查询语言,不完成遵循任一种ANSI SQL标准的修订版。Hive ...

  • HiveQL 数据定义:分区

    分区• 建立分区表• 增加分区• 重命名分区• 删除分区 hive组织表到分区。它是将一个表到基于分区列,如日期,...

  • DDL 数据库表定义语言

    数据库定义语言,用于创建、修改、删除数据库对象,如表、视图、索引、序列等。createalterdroprenam...

  • 数据库知识

    SQL语言分为以下四类: DDL语句 数据库定义语言: 定义数据库、表、视图、索引、存储过程 例如create d...

  • 2.HiveQL:数据定义

    HiveQL和SQL的区别 1.hive不支持行级插入操作,更新操作和删除操作。hive也不支持事务。 1.创建数...

  • Hive数据定义

    Hive数据定义 HiveQL是Hive查询语言,作为ANSI SQL的一种方言。但是其还是有和关系数据库支持的S...

  • SQL之SQL定义语言(DDL)

    SQL定义语言(DDL)是对数据库对象进行创建,删除等操作。数据对象包括:数据库、表、视图、索引等。 1.数据库的...

  • day39-Python连接MySQL

    一、视图和索引 1.视图 1.创建视图 2.查看视图 3.删除视图 2.索引 1.创建索引 2.删除索引 注意:表...

网友评论

      本文标题:HiveQL 数据定义:视图和索引

      本文链接:https://www.haomeiwen.com/subject/cgvsbftx.html