当前位置: 首页 > news >正文

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;

静态分区示例

创建分区表
创建临时表
临时表需要包含目标表的所有字段( sidnamegenderageacademy)以及分区字段( dt
把数据加载到临时表
把临时表数据加载到目标表

混合分区示例

创建临时表
临时表需要包含目标表的所有字段( sidnamegenderageacademy)以及分区字段( yeardt):
将数据加载到临时表
插入数据到目标表

http://www.dtcms.com/a/21205.html

相关文章:

  • 信通院:政府数字化转型发展研究报告(2024年)
  • 解锁 Java 回调函数:异步编程与事件处理的利器
  • Python实现AWS Fargate自动化部署系统
  • enum class与enum
  • 【Python 学习 / 4】基本数据结构之 字符串 与 集合
  • 【AI】ragflow + ollama + deepseek-r1本地部署后的配置 目的:给AI大模型输入知识,代替模型微调工作
  • npm安装依赖(npm install)时遇到认证错误的解决方案
  • 谐波响应:理论基础与基本操作
  • WPF-数据转换器
  • 【MODIS\VIIRS】h5文件信息查看python代码
  • 连锁企业管理系统的五大核心功能
  • 【Java学习】二维数组
  • 【黑马点评优化】2-Canel实现多级缓存(Redis+Caffeine)同步
  • 使用 Qt 插件和 SQLCipher 实现 SQLite 数据库加密与解密
  • 大模型开发实战篇4:多模态之图片识别
  • 有关计算机的英语单词、短语、句子
  • gozero实现数据库MySQL单例模式连接
  • 人大金仓国产数据库与PostgreSQL
  • Android车机DIY开发之软件篇(十七) Android模拟器移植Automotive
  • DeepSeek R1 本地部署和知识库搭建
  • Effective Objective-C 2.0 读书笔记——内存管理(下)
  • HarmonyOS组件之Tabs
  • 【信息学奥赛一本通 C++题解】1288:三角形最佳路径问题
  • python语言进阶之函数
  • Linux安装Minio
  • 基于51单片机的定时器实现LED闪烁控制(CT107D)
  • 【强化学习】Q-learning算法详解:含MATLAB和Python实现代码
  • 基于SpringBoot+Vue的智慧校园管理系统设计和实现(源码+文档+部署讲解)
  • 配置Api自动生成
  • Python中的HTTP客户端库:httpx与request | python小知识