Hive的视图与索引

文章介绍了Hive中的视图和索引,视图作为虚表提供了一种逻辑数据层,方便查询和数据安全,而索引则能提升查询效率。Hive不支持主键和外键,但可以对字段建立索引以加速特定操作。创建、查询、删除视图和索引的语法也一并给出,强调了索引在优化查询中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

Hive中的索引只有有限的功能,Hive中没有主键和外键的概念,可以通过对一些字段建立索引来加速某些操作。Hive对外部表和视图都是可以建立索引的。若有索引表,删除一个索引将会删除这个索引表。若被索引的表被删除了,那么对应的索引和索引表也会被删除;若原始表的某个分区被删除了,那么这个分区对应的分区索引同时会被删除掉。

下面是Hive视图与索引的概念和使用,enjoy~~

一、视图

1,含义

视图是一个虚拟表,其内容由查询定义。Hive 中的视图和RDBMS中视图的概念一致,都是一组数据的逻辑表示,本质上就是一条SELECT语句的结果集。视图是纯粹的逻辑对象,没有关联的存储(Hive 3.0.0引入的物化视图除外),当查询引用视图时,Hive可以将视图的定义与查询结合起来,例如将查询中的过滤器推送到视图中。

2,特点

(1)不支持物化视图 ;
(2)只能查询,不能做加载数据操作 ;
(3)视图的创建,只是保存一份元数据,查询视图时才执行对应的子查询 ;
(4)view定义中若包含了ORDER BY/LIMIT语句,当查询视图时也进行了ORDER BY/LIMIT语句操作,view当中定义的优先级更高 ;
(5)Hive视图支持迭代视图。

3,意义

(1) 使用视图使数据操作更简便,相当于封装了sql语句,类似于关系型数据库中的存储过程。
(2) 使用视图,基表中的数据有了一定的安全性,使用视图可以基于限制条件过滤数据,通过视图限制数据访问可以保护信息不被随意查询。

4,视图的操作

(1)新建视图

   CREATE VIEW [IF NOT EXISTS] [db_name.]view_name 
      [(column_name [COMMENT column_comment], ...) ]
      [COMMENT view_comment]
      [TBLPROPERTIES (property_name = property_value, ...)]
      AS SELECT ... ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员喵姐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值