Hive学习之视图、索引DDL
来源:互联网 发布:php 数组 编辑:程序博客网 时间:2024/05/21 05:18
创建视图
视图是纯逻辑对象并不关联任何存储,下面的语句使用给定view_name名称创建视图,若view_name与现存的表或者视图重名,则出错。
CREATE VIEW [IF NOT EXISTS] view_name [(column_name [COMMENT column_comment], ...) ] [COMMENT view_comment][TBLPROPERTIES(property_name = property_value, ...)]AS SELECT ...
在该语句中若不提供列名,视图的列名将根据SELECT .子句生成,如果SELECT.子句包含没有别名的标量表达式如x+y,视图的列名将按照_C0,_C1等形式产生。当重命名列名时可以指定列注释。若SELECT .子句无效则创建视图将会失败。
当被创建时,视图的schema是冻结的,对当前表的后续修改不会影响到视图的schema。如果当前表被删除或者改变,后续对视图的查询将会失败。视图是只读的,不能作为LOAD/INSERT的目标。一个视图可以包含ORDERBY和LIMIT从句,如果查询该视图的语句也包含这些从句,查询层级的从句将会在视图从句之后计算。例如视图指定了LIMIT 5,相关查询语句为select from v LIMIT 10,那么最多5行记录被返回。创建视图的例子如下:
hive> create view test_view as select * from test;OKTime taken:0.818 secondshive>describe test;OKa1 string b1 string c1 string d int # PartitionInformation # col_name data_type comment d int Time taken:0.315 seconds, Fetched: 9 row(s)hive>describe test_view;OKa1 string b1 string c1 string d int Time taken:0.212 seconds, Fetched: 4 row(s)
删除视图
删除视图将会移除指定视图的元数据,当删除被其它视图引用的视图时,不会给出警告信息,依赖该视图的视图将会失效,必须手动删除或者重新创建。删除视图的语句如下:
DROP VIEW [IF EXISTS] view_name
修改视图属性
修改视图属性的语句为:
ALTER VIEW view_name SET TBLPROPERTIES table_propertiestable_properties: : (property_name = property_value,property_name = property_value, ...)
修改视图的AS SELECT子句
ALTER VIEW view_name AS select_statement
修改视图的AS SELECT子句会改变视图的定义,需要注意的是要修改的视图必须已经存在,如果视图拥有分区,分区将不会被Alter View As Select替代。
创建/删除/修改索引
创建索引
创建索引的语句如下,该语句使用给定的列集合在表上创建索引。index.handler.class.name指定了索引处理器,如org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler。如果使用WITH DEFERRED REBUILD子句,那么新的索引被初始化为空的,无论表中是否含有数据。默认情况下,索引的分区匹配表的分区,PARTITIONED BY子句可以用来指定表分区的子集(该子集也可以是空的用以指示索引覆盖表的所有分区),例如一个表被date和region分区,索引的分区仅有date,那么索引的分区将会覆盖所有的region分区。在同一个数据库中,索引名称可以用于多个表,这是因为索引名称是包含表名的全限定名称。在不指定保存索引的名称时,索引被保存在名为数据库名__表名_索引名__的表中。
CREATE INDEX index_nameON TABLE base_table_name (col_name, ...)AS 'index.handler.class.name'[WITH DEFERRED REBUILD][IDXPROPERTIES(property_name=property_value, ...)][IN TABLE index_table_name][ [ ROW FORMAT ...] STORED AS ... | STORED BY ...][LOCATION hdfs_path][TBLPROPERTIES(...)][COMMENT"index comment"]
删除索引
DROP INDEX [IFEXISTS] index_name ON table_name
删除索引的同时也删除保存索引的表。
修改索引
下面的语句为使用WITH DEFERRED REBUILD子句的索引创建索引,或者重建已经创建的索引,如果指定分区,仅有该分区被重建。
ALTER INDEX index_name ON table_name [PARTITION partitionSpec] REBUILD
- Hive学习之视图、索引DDL
- Hive学习之Hive数据库DDL
- hive视图和索引
- Hive视图和索引
- Hive学习之函数DDL和Show、Describe语句
- hive学习3-DDL语句
- [疯狂Java]SQL-DDL:索引、视图
- Oracle学习笔记 -- day06 DDL、DML、视图索引序列、数据导入导出、数据恢复
- hadoop学习之HIVE(3.1):hive建库,建表语句(DDL)
- hadoop学习笔记--11.hive DDL操作
- HIVE-DDL
- Hive DDL
- Hive ----DDL
- HIVE入门一之数据库DDL语句
- HIVE入门二之表DDL(一)
- (7-10)hive表视图、索引
- Hive数据仓库--HiveQL视图和索引
- Hive数据仓库--HiveQL视图和索引
- tomcat内存溢出
- 安装网站时出现“连接数据库出现数据库服务器或登录密码无效,无法连接数据库,请重新设定”解决方法
- extern "C"的用法解析
- android签名APK注意事项
- 学习GameKit
- Hive学习之视图、索引DDL
- swift语言中文教程
- ubuntu登入界面错误解决
- Linux TomCat 基本使用命令
- 在MDK上建立STM32固件库工程
- 软件测试基本方法(二)之白盒测试
- VS2010安装帮助文档
- Swift 语言学习!!!!
- select操作