Hive之表类型解析

本文详细介绍了Hive的四种表类型:内部表、外部表、分区表和桶表。内部表的数据存储在warehouse目录下,删除时数据一同被删除;外部表只保存元数据,数据生命周期独立;分区表用于优化查询效率,常用日分区设计;桶表则是将数据均匀分布到多个文件中,提高数据抽样和查询效率。此外,还提到了视图作为虚拟表的作用。
摘要由CSDN通过智能技术生成

 

 

 

 

 

Hive的表在HDFS里面体现都是文件

1、内部表

    内部表示Hive中默认的表类型,表数据默认存储在warehouse目录下,即使我们使用load data的方式,

Hive也会在数据拷贝在warehouse目录下,当我们创建内部表时,Hive会在warehouse下创建表名的目录存储数据文件,

同时会在metastore维护元数据信息,当我们删除表的时候,表的数据会删除,同时metastore中的元数据信息也会同时删除。

 

2、外部表

   外部表在加载数据的时候,实际数据并不会移动到warehouse中,只是与外部数据建议了一个映射关系,表的定义和数据生命周期互相不约束,

数据只是表对HDFS上的某一个目录的引用而已。当删除定义的时候,数据依然存在,仅删除元数据信息(表和数据之间的引用关系),

这种表有个好处就是,即使我们误删除了表,但数据依然存在。

 

3、分区表

   分区表的目的是为了优化查询效率的,当全表数据量过大的时候,就可以考虑设计成分区表,分区表在HDFS上的体现相当于在表级目录下

创建了一层分区目录,在分区目录下才是真正的数据文件,一个分区,一个分区目录。常用的分区设计一般是日分区设计。通过自然日划分表数据存储。

使用分区表的时候一般都需要限制分区,否则一样会全表扫描。除了一级分区设计,还有常用的会设计成二级分区。如下图和SQL演示

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值