您现在的位置是:首页 >其他 >Hive 分区表和分桶表网站首页其他

Hive 分区表和分桶表

笑看风云路 2023-05-17 08:00:02
简介Hive 分区表和分桶表

前言

《Hive 建表语句解析》文章中,建表的时候我们可以使用 PARTITIONED BY 子句和 CLUSTERED BY 子句来创建分区表和分桶表,为什么要创建分区表和分桶表呢?分区表和分桶表有什么区别呢?

分区表

1. 为什么分区

在Hive 查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此为了避免Hive全表扫描,建表时引入了partition概念,来提高查询效率。

注意:

  1. 在逻辑上分区表与非分区表没差别,在物理存储上,分区表会将数据按照指定的分区列值存储在不同的子目录中。
  2. 分区是以字段的形式在表结构中存在,但是该字段不存放实际的数据内容,仅仅是分区的表示。

2. 分区类型

分区分为动态分区和静态分区两种类型

  1. 静态分区:
    条件:需要明确指定分区列的值
    应用场景:非常适合每日增量数据抽取和计算的任务场景。
  2. 动态分区
    条件:设置如下参数
-- 1.打开动态分区模式:
set hi
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。