Hadoop-Hive 内部表/外部表 分区表/分桶表区别

本文详细解析了Hive中内部表与外部表的区别,包括它们的管理方式、数据存储及删除特性;同时对比了分区表与分桶表的存储格式与应用场景,如数据管理、查询效率提升等。

实战派 ESP32-S3,双模无线开发板

ESP32-S3 原生支持 ESP-IDF,WiFi + 蓝牙一次搞定

1)hive中内部表和外部表的区别

内部表:又叫管理表,表的创建,和删除都由hive自己决定。
外部表:表结构上同内部表,但是存储的数据时自己定义的,外部表在删除的时候只删除元数据,原始数据时不能删除的。

内部表和外部表的区别主要体现在两个方面

  • 删除:删除内部表,删除元数据和数据;删除外部表,删除元数据,保留数据。
  • 使用:如果数据的所有处理都在 Hive 中进行,那么倾向于 选择内部表,但是如果 Hive 和其他工具要针对相同的数据集进行处理,外部表更合适。使用外部表访问存储在hdfs上的数据,然后通过hive转化数据并存储到内部表中。
2)hive中分桶表和分区表的区别

分区表: 原来的一个大表存储的时候分成不同的数据目录进行存储。
  如果说是单分区表,那么在表的目录下就只有一级子目录,如果说是多分区表,那么在表的目录下有多少分区就有多少级子目录。不管是单分区表,还是多分区表,在表的目录下,和非最终分区目录下是不能之间存储数据文件的。

例:
	单分区表:
		Hdfs://Hadoop01/user/hive/warehouse/myhive.db/student/p0
	多分区表:
		Hdfs://Hadoop01/user/hive/warehouse/myhive.db/student/p0
		Hdfs://Hadoop01/user/hive/warehouse/myhive.db/student/p1
		Hdfs://Hadoop01/user/hive/warehouse/myhive.db/student/p2
		Hdfs://Hadoop01/user/hive/warehouse/myhive.db/student/p1/p11

分桶表: 原理和hashpartitioner 一样,将hive中的一张表的数据进行归纳分类的时候,归纳分类规则就是hashpartitioner。(需要指定分桶字段,指定分成多少桶)

bucket:在hdfs中表现为同一个表目录或者分区目录下根据某个字段的值进行Hash散列之后的多个文件,分桶的表现形式就是一个单独的文件.

例:
Hdfs://Hadoop01/user/hive/warehouse/myhive.db/student/age>15
Hdfs://Hadoop01/user/hive/warehouse/myhive.db/student/age>20
Hdfs://Hadoop01/user/hive/warehouse/myhive.db/student/age>30

分区表和分桶的区别除了存储的格式不同外,最主要的是作用:

  • 分区表:细化数据管理,缩小mapreduce程序 需要扫描的数据量
  • 分桶表:提高join查询的效率,在一份数据会被经常用来做连接查询的时候建立分桶,分桶字段就是连接字段;提高采样的效率

实战派 ESP32-S3,双模无线开发板

ESP32-S3 原生支持 ESP-IDF,WiFi + 蓝牙一次搞定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值