Hive动态分区静态分区

简述:分区是hive存放数据的一种方式,将列值作为目录来存放数据,就是一个分区,可以有多列。

这样查询时使用分区列进行过滤,只需根据列值直接扫描对应目录下的数据,不扫描不关心的分区,快速定位,提高查询效率。

hive的分区有两种类型:

  • 静态分区SP(Static Partitioning)
  • 动态分区DP(Dynamic Partitioning)

对于静态分区,表的分区数量和分区值是固定的。新增分区或者是加载分区数据时,需要提前指定分区名。

对于动态分区,分区的值是不确定的,会根据数据自动的创建新的分区。

1.对于静态分区而言分区一开始就是规定好的,包括插入的时候都是根据自己写的东西进行插入。

2.所谓动态分区,分区的值是不确定的,分区的数量是不确定,皆由加载数据确定。
生产环境中,动态分区一般常用于创建新表后,需要一次性加载历史数据。

生产环境中,动态分区一般常用于创建新表后,需要一次性加载历史数据。(本人遇到过)。

且在插入的过程中动态分区还会报错,大概的意思是需要至少一个分区,但是对于全量插入一个表来说一个一个的分区插入属实麻烦,所以进行插入的时候要运行下列代码。

set hive.exec.dynamic.partition=true;
-- 允许所有的分区字段都可以使用动态分区,兼容严格模式
-- 更改动态分区模式为非严格模式
set hive.exec.dynamic.partition.mode=nonstr

相关推荐

  1. Hive动态分区静态分区

    2024-03-10 18:38:04       45 阅读
  2. hive动态分区

    2024-03-10 18:38:04       28 阅读
  3. 静态IP和动态IP分别适用于什么场景

    2024-03-10 18:38:04       67 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-10 18:38:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 18:38:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 18:38:04       87 阅读
  4. Python语言-面向对象

    2024-03-10 18:38:04       96 阅读

热门阅读

  1. 双非二本实习前的准备day8

    2024-03-10 18:38:04       38 阅读
  2. CentOS上安装与配置Nginx

    2024-03-10 18:38:04       42 阅读
  3. linux tar分卷压缩与windows合并解压

    2024-03-10 18:38:04       41 阅读
  4. 安卓 Kotlin 面试

    2024-03-10 18:38:04       39 阅读
  5. C语言 goto 语句的基本格式是什么?如何使⽤?

    2024-03-10 18:38:04       39 阅读
  6. 解读电影级视频生成模型 MovieFactory

    2024-03-10 18:38:04       44 阅读
  7. 数据分析 - 面经 - 灵狐科技

    2024-03-10 18:38:04       45 阅读
  8. 【数论】莫比乌斯反演巩固1

    2024-03-10 18:38:04       35 阅读
  9. 基于51单片机的秒表系统设计

    2024-03-10 18:38:04       38 阅读
  10. powershell远程拷贝文件到windows 服务器

    2024-03-10 18:38:04       40 阅读
  11. the demo for C# multicast delegate 多播委托

    2024-03-10 18:38:04       39 阅读
  12. 【docker】docker常用命令

    2024-03-10 18:38:04       38 阅读