主页 > IT业界  > 

hive:分区>>静态分区,动态分区,混合分区

hive:分区>>静态分区,动态分区,混合分区
分区表

使用场景:数据量庞大且经常用来做查询的表

特点:将数据分别存储到不同的目录里

优点:避免全盘扫描,提高查询效率

分区的类型 

它们的默认值分别是: 

false, 

strict, 要求至少有一个静态分区列,而 nonstrict 模式允许所有分区列都是动态的。

1000

100, 在每个 mapper 或 reducer 节点上允许创建的动态分区的最大数量。

注意: set 属性的修改只作用于当前会话

查看Hive中的属性设置

打开Hive命令行界面/Hue

示例>> 静态分区/动态分区

插入文件数据到静态分区(load data)

插入单条数据到静态分区(insert into )

从其他表插入数据到静态分区( insert into )

在 Hive 中,无论是静态分区还是动态分区,创建表时使用的 SQL 语句是相同的。这是因为分区的定义方式在表创建时是统一的,而分区的具体行为(静态或动态)是在数据插入时通过不同的操作来区分的。

静态分区:在插入数据时,分区值是明确指定的

LOAD DATA 命令:

将数据从文件直接加载到 Hive 表中,适用于批量导入数据文件, 文件中的数据必须与表的非分区列匹配

INSERT INTO 命令:

将数据从其他表或直接通过 VALUES 插入到目标表中,适合小规模数据插入或从其他表导入数据。

动态分区:在插入数据时,分区值是根据数据自动生成的

示例>>混合分区

在这个示例中:

year 是静态分区列,其值固定为 '2023'。

date 是动态分区列,其值从 source_table 中动态生成

Hive 分区和 Oracle 分区的区别 oracle 分区字段用的是表内字段;而 hive 分区字段采用表外字段。 临时表 是为数据提供一个临时的存储和转换空间,以便在将数据加载到目标表之前进行必要的处理或验证 完整分区过程 动态分区示例 第一步: 先创建临时表 临时表包含目标表的所有字段及分区字段 第二步: 导入数据到临时表 load data local inpath './data/student2.txt' into table temp_part1; 静态分区示例 创建分区表 创建临时表 临时表需要包含目标表的所有字段( sid,  name,  gender,  age,  academy)以及分区字段( dt 把数据加载到临时表 把临时表数据加载到目标表 混合分区示例 创建临时表 临时表需要包含目标表的所有字段( sid,  name,  gender,  age,  academy)以及分区字段( year,  dt): 将数据加载到临时表 插入数据到目标表

标签:

hive:分区>>静态分区,动态分区,混合分区由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“hive:分区>>静态分区,动态分区,混合分区