Hive数仓操作(六)

一、 Hive 分区表

Hive 的分区表通过在 HDFS 中以不同的目录存储不同的分区数据,来提高查询性能并减少数据扫描量。分区表可以根据特定的列(如 性别 列的/)将数据划分为多个部分,使得查询时只需要扫描相关的分区,而不是整个表,下文讲解一下静态分区表。

1. 创建分区表

创建分区表的语法如下:

CREATE TABLE stu_info (id INT,name STRING,age INT
)
PARTITIONED BY (class STRING)  -- 分区列不能提前存在
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

2. 查看分区信息

要查看表的分区信息,可以使用以下命令:

DESC stu_info ;  -- 查看表结构,包括分区信息
SHOW PARTITIONS stu_info ;  -- 查看所有分区

3. 分区表的创建

分区表有两种使用情况,一种是创建分区表并加载数据LOAD DATA,另一种是将已有表转化为分区表并插入数据INSERT INTO

示例一:创建分区表并加载数据

1. 创建分区表

我们首先创建一个分区表 stu_info,用于存储学生信息,并根据 class 列进行分区。

CREATE TABLE stu_info (id INT,name STRING,age INT
)
PARTITIONED BY (class STRING)  -- 分区列
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','  -- 字段分隔符
STORED AS TEXTFILE;  -- 存储格式
2. 准备数据文件

假设我们有一个数据文件 class_one.txt,内容如下:

1,张三,20
2,李四,22
3,王五,21
3. 加载数据到分区表

将数据文件加载到 stu_info 表中,指定 class'one'

LOAD DATA LOCAL INPATH '/opt/datas/class_one.txt' 
INTO TABLE stu_info PARTITION (class='one');

示例二:将已有表转化为分区表

1. 创建已有表

假设我们已经有一个表 stu_info2,其结构如下:

CREATE TABLE stu_info2 (id INT,name STRING,age INT,sex STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','  -- 字段分隔符
STORED AS TEXTFILE;  -- 存储格式
2. 创建新的分区表

接下来,我们将 stu_info2 表转化为分区表 stu_info2_p。首先创建新的分区表:

CREATE TABLE stu_info2_p (id INT,name STRING,age INT
)
PARTITIONED BY (sex STRING)  -- 根据 sex 列分区
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','  -- 字段分隔符
STORED AS TEXTFILE;  -- 存储格式
3. 插入数据到分区表

我们使用 INSERT 语句将 stu_info2 表的数据插入到 stu_info2_p 表中,并按 sex 列进行分区。

INSERT INTO TABLE stu_info2_p PARTITION (sex='male') 
SELECT id, name, age FROM stu_info2 WHERE sex='男';

二、 Hive 分区操作

1. 增加单个分区

可以使用 ALTER TABLE ... ADD PARTITION 语句来添加一个新的分区。

ALTER TABLE stu_info ADD PARTITION (class='three');
2. 同时创建多个分区

可以在同一条语句中添加多个分区,但需要使用不同的子句。

ALTER TABLE stu_info ADD PARTITION (class='four') PARTITION (class='five');
3. 删除分区

对于内表,使用 ALTER TABLE ... DROP PARTITION 语句可以删除指定的分区及其数据。

ALTER TABLE stu_info DROP PARTITION (class='five'); 

注意: 删除分区时,该分区对应的目录及数据会被删除。

4. 同时删除多个分区

可以在同一条语句中同时删除多个分区。

ALTER TABLE stu_info DROP PARTITION (class='four'), PARTITION (class='five');

三、 Hive脚本化运行

实际工作中,使用交互式 shell 进行输入可能效率较低,因此可以使用脚本化方式来执行 Hive 查询。

1. 使用命令行执行简单查询

可以在本地Linux创建一个 Shell 脚本(例如 h1.sh),并在其中写入 Hive 查询命令。

#!/bin/bash
hive -e "SELECT * FROM bigdata.dept" > dept2.txt
  • 说明:
    • hive -e 允许你在命令行中直接执行 Hive SQL 查询。
    • 查询结果会被重定向到 dept2.txt 文件中。
2. 执行复杂查询

如果需要执行复杂的 Hive 查询,可以将 SQL 语句写入后缀为 .hql 的文件,然后使用 hive -f 命令执行。

创建 HQL 文件

创建文件 h1.hql,写入以下内容:

SELECT * FROM bigdata.dept;
执行 HQL 文件

然后在Linux命令行中执行以下命令:

hive -f h1.hql > dept2.txt
  • 说明:
    • hive -f h1.hql 会读取 h1.hql 文件中的所有 SQL 语句并执行。
    • 查询结果同样会被重定向到 dept2.txt 文件中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1551924.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

B站字幕提取方法

1.获取json文件内容 1.点击F12进入开发者模式,选择网络模块; 2.输入关键字,例如json、ai_subtitle、subtitle等; 3.点击视频下方的字幕功能,开启;再点击响应单元,复制内容; 2.去jso…

TI DSP TMS320F280025 Note13:CPUtimer定时器原理分析与使用

TMS320F280025 CPUtimer定时器原理分析与使用 ` 文章目录 TMS320F280025 CPUtimer定时器原理分析与使用框图分析定时器中断定时器使用CPUtimers.cCPUtimers.h框图分析 定时器框图如图所示 定时器有一个预分频模块和一个定时/计数模块, 其中预分频模块包括一个 16 位的定时器分…

【数学分析笔记】第4章第1节 微分和导数(1)

4. 微分 4.1 微分和导数 考虑一个函数 y f ( x ) yf(x) yf(x),当 x x x做一些微小的变动,函数值也会有微小的变动,比如: x → x △ x x\to x\bigtriangleup x x→x△x,则 f ( x ) → f ( x △ x ) f(x)\to f(x\bi…

【有啥问啥】卡尔曼滤波(Kalman Filter):从噪声中提取信号的利器

卡尔曼滤波(Kalman Filter):从噪声中提取信号的利器 什么是卡尔曼滤波? 卡尔曼滤波(Kalman Filter)是一种高效的递归滤波器,专为处理包含噪声的线性动态系统而设计。它能够从一系列不完全且含…

网盘能否作为FTP替代产品?企业该如何进行FTP国产化替代?

近年来,信创的概念引入和高效实践落地让更多的行业企业自发性地进行国产化替代,目前信创国产化替代还多发生在操作系统和应用层面,软件工具等目前还在下一阶段规划,但很多企业未雨绸缪,已经在做调研和尝试。 FTP作为世…

大屏娱乐体验新标杆:海信发布全新一代AI电视

在金秋送爽的9月29日,海信以一场盛大的“BIG PLAN百吋风暴”秋季新品发布会,正式揭开了AI电视新时代的序幕。 作为本场发布会上最耀眼的明星,海信AI电视E7N系列凭借无与伦比的AI画质技术和极致性能,引领大屏娱乐体验迈入全新境界&…

仿真设计|基于51单片机的多模式音乐跑马灯

目录 具体实现功能 设计介绍 51单片机简介 资料内容 仿真实现(protues8.7) 程序(Keil5) 全部内容 资料获取 具体实现功能 1、16个发光二极管做跑马灯,跑马灯有10种模式。 2、按键可以切换跑马灯模式&#xff0…

Java笔试02

在网络操作系统中,TCP和UDP是传输层中两个非常重要的协议。TCP提供的是面向连接的、可靠的端到端通信机制,因此TCP协议在注重数据安全的场景下获得了极为广泛的应用。 TCP采用了确认和重发机制来确保数据的可靠传输。 相较于UDP,TCP的优势在…

.NET CORE程序发布IIS后报错误 500.19

发布IIS后浏览时报错误500.19,同时配置文件web.config的路径中也存在问号“?”。 可能原因:没有安装运行时

无人机之编队控制篇

无人机编队控制是指无人机集群在执行任务过程中,如何形成并保持一定的几何构型,以适应平台性能、战场环境、战术任务等要求的控制技术。以下是对无人机编队控制的详细解析: 一、无人机编队控制的主要任务 无人机编队控制主要解决两个问题&a…

Linux 线程同步

前言 上一期我们介绍了线程互斥,并通过加锁解决了多线程并发访问下的数据不一致问题!本期我们来介绍一下同步问题! 目录 前言 一、线程同步 • 线程同步的引入 • 同步的概念 理解同步和饥饿问题 • 条件变量 理解条件变量 • 同步…

系列一、初始ElasticSearch

前言: 最近公司的业务有用到ElasticSearch,虽然说之前业余时间也自学过ElasticSearch技术,但是在公司实际的业务中开发中没有用过,再加上时间比较久远了,很多东西都忘记了,基于此我决定系统的重新学习一下这…

个人项目简单https服务配置

1.SSL简介 SSL证书是一种数字证书,由受信任的证书颁发机构(CA)颁发,用于在互联网通信中建立加密链接。SSL代表“安全套接层”,是用于在互联网上创建加密链接的协议。SSL证书的主要目的是确保数据传输的安全性和隐私性…

鸿蒙NEXT开发环境搭建(基于最新api12稳定版)

注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…

PMP--三模--解题--51-60

文章目录 14.敏捷--每日站会--内容--• 上次站会以来我都完成了什么?• 从现在到下一次站会,我计划完成什么?• 我的障碍(或风险或问题)是什么?--每日站会能够同步与协调相关的活动。14.敏捷--Scrum板 Scru…

【Ubuntu】VMware中虚拟网卡与服务器网卡的绑定

文章目录 服务器网卡和VMware中虚拟网卡的绑定1.在本机上查看需要的网卡名称2.服务器本机设置固定ip3.打开VMware后,将虚拟网卡与本机真实网卡进行绑定。4.给routeOS分配4张网卡,如图所示:5.ubuntu1和ubuntu2只需分配vmnet0和vmnet8即可&…

《More Effective C++》的学习

引用与指针 没有所谓的null reference reference一定需要代表某个对象,所以C要求reference必须有初值。 QString &s; 使用reference可能比使用pointer更高效。 因为reference一定是有效的,而指针可能为空(需要多加一个判断&#xff0…

【PyTorch】图像目标检测

图像目标检测是什么 Object Detection 判断图像中目标的位置 目标检测两要素 分类:分类向量 [p0, …, pn]回归:回归边界框 [x1, y1, x2, y2] 模型如何完成目标检测 将3D张量映射到两个张量 分类张量:shape为 [N, c1]边界框张量&#xf…

索尼MDR-M1:超宽频的音频盛宴,打造沉浸式音乐体验

在音乐的世界里,每一次技术的突破都意味着全新的听觉体验。 索尼,作为音频技术的先锋,再次以其最新力作——MDR-M1封闭式监听耳机,引领了音乐界的新潮流。 这款耳机以其超宽频播放和卓越的隔音性能,为音乐爱好者和专…

深蕾半导体参加2024年度上海设计100+全球竞赛展览WDCC

展览介绍 WDCC2024 上海于2010年加入联合国教科文组织“创意城市网络”,定名为“设计之都”。“上海设计100”全球竞赛,遴选推广优秀设计案例,将“设计之都”的规划和愿景具体呈现。 ——展出时间、地点见文末—— 深蕾参展 深圳前海深蕾…