HIVE分区,附图说明

大数据同步工具DataX与Sqoop之比较 从接触DataX起就有一个疑问,它和Sqoop到底有什么区别,昨天部署好了DataX和Sqoop,就可以对两者进行更深入的了解了。 两者从原理上看有点相似,都是解决异构环境的数据交换问题,都支持oracle,mysql,hdfs,hive的互相交换,对于不同数据库的支持都是插件式的,对于新增的数据源类型,只要新开发一个插件就好了,但是只细看两者的架构图,很快就会发现明显的不同。 DataX架构... 阅读详情

快速理解

  • 分区 是 分文件夹,分桶 是 分文件
  • 分区 和 分桶 都能 加速查询

分区

  • 分区是对应一个HDFS上的独立文件夹
  • WHERE分区字段,查询效率更高

0、删库,建库

DROP DATABASE IF EXISTS school;
CREATE DATABASE school LOCATION '/school';

1、创建分区表

DROP TABLE IF EXISTS school.student;
CREATE TABLE school.student (s_id INT)
PARTITIONED BY (grade STRING)  -- 分区表语法
LOCATION '/school/student';

2、插入数据

INSERT INTO TABLE school.student PARTITION(grade='a') VALUES (1),(2);
INSERT INTO TABLE school.student PARTITION(grade='b') VALUES (3);

3、查询分区

SHOW PARTITIONS school.student;

Hue界面结果显示

4、查询时WHERE分区

SELECT * FROM school.student WHERE grade='a';

Hue界面结果显示

5、查看HDFS

动态分区

Dynamic Partition:根据分区字段的值,自动将数据插入到相应的分区

基础配置

-- 开启动态分区功能
SET hive.exec.dynamic.partition=true;
-- 设置动态分区为非严格模式
SET hive.exec.dynamic.partition.mode=nonstrict;
-- 全部节点上,最多可创建多少个动态分区
SET hive.exec.max.dynamic.partitions=1000;
-- 单个节点上,最多可创建多少个动态分区
SET hive.exec.max.dynamic.partitions.pernode=100;
-- 整个MR Job中,最大可以创建多少个HDFS文件
SET hive.exec.max.created.files=100000;
-- 当有空分区生成时,是否抛出异常
SET hive.error.on.empty.partition=false;

写法

分区字段写最尾

SET hive.exec.dynamic.partition=true;
SET hive.exec.dynamic.partition.mode=nonstrict;

INSERT INTO TABLE school.student PARTITION(grade)
SELECT
    s_id,
    grade
FROM school.student;

SELECT * FROM school.student WHERE grade='b';Hue结果显示(数据续上)

多级分区

实际对应HDFS的层级文件夹

DROP TABLE IF EXISTS school.student2;
CREATE TABLE school.student2 (name STRING,age INT)
PARTITIONED BY (s_id INT,grade STRING)  -- 二级分区
LOCATION '/school/student2';
INSERT INTO TABLE school.student2 PARTITION(s_id=5,grade='c') VALUES ('小黄',13);


创建分区(ALTER分区)

场景:HDSF已有文件夹以及文件,在此创建分区表后,SELECT *和SHOW PARTITIONS都为空

ALTER TABLE 表名 ADD IF NOT EXISTS PARTITION(分区字段='分区名');

对表创建(ALTER)分区后,SELECT *和SHOW PARTITIONS就都有结果了

修复分区

场景:HDSF已有文件夹以及文件,在此创建分区表后,SHOW PARTITIONS都为空
假如分区有几百个,写几百个ALTER不方便,对此可用MSCK REPAIR TABLE批量修复分区

MSCK REPAIR TABLE 表名;

repair,vn 修理

分桶

-- 建表
DROP TABLE IF EXISTS school.student3;
CREATE TABLE school.student3
(s_id INT,name STRING)
PARTITIONED BY (grade STRING)
CLUSTERED BY (s_id) INTO 3 BUCKETS
LOCATION '/school/student3';
INSERT INTO TABLE school.student3
PARTITION(grade='a')
VALUES
(1,'剑圣'),
(2,'先知'),
(3,'巫妖'),
(4,'守望者'),
(5,'山丘之王');

查看NameNode客户端

分桶号=s_id除以3得到的余数

Java 大视界 -- Java 大数据在智能医疗健康档案数据分析与个性化健康管理中的应用(410) 本文基于 2023 年 6 月省级智能医疗健康档案项目(覆盖 380 万糖尿病患者),详解 Java 大数据(Flink 1.15.2+HBase 2.4.17+Spark 3.3.0)在健康档案数据分析与个性化管理中的落地路径。从政策需求(国家卫健委《关于进一步推进电子健康档案深度应用的通知》)出发,拆解医疗数据异构、实时预警、敏感数据加密三大核心挑战,提供可直接复用的代码(ICD-10 术语标准化 UDF、HBase 批量写入工具、RBAC 权限控制),结合真实案例(患者筛选耗时从 8 小时→45 分钟 阅读详情

相关推荐

hive原理及使用:建表、文件格式、外表、分区、分桶,删除数据、更改表的属性

1、什么是 metastore   metadata 即元数据。包含 database、tabel、column names、partitions 信息、bucketing 信息等的元数据信息。   元数据默认是存储在 Derby 中,建议存储在关系型数据库中。 metastore 安装方式有什么区别 内嵌模式   内嵌模式使用的是内嵌的 Derby 数据库来存储元数据,也不需要额......

. 5212

【大数据】Hive系列之- Hive-分区表(静态分区和动态分区)

分区表实际上就是对应一个 HDFS 文件系统上的独立的文件夹,该文件夹下是该分区所 有的数据文件。Hive 中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据 集。在查询时通过 WHERE 子句中的表达式选择查询所需要的指定的分区,这样的查询效率 会提高很多。

如切如磋,如琢如磨,臻于至善。 1007

QuickFix Java 实战(一)协议解析、环境搭建与首个应用

本文是QuickFix Java实战系列的第一篇,详细介绍了FIX协议的核心原理与QuickFix/J引擎的实战应用。内容涵盖FIX协议的标签化通信机制、QuickFix/J库的两种下载方法、协议定义文件解析,并通过一个完整的模拟订单发送示例,指导读者快速搭建首个FIX应用环境,实现消息生成与会话通信。

dog123的博客 496

一百一十一、Hive——从HDFS到Hive的数据导入(静态分区、动态分区)

从HDFS到Hive的数据导入(静态分区、动态分区)

tiantang2renjian的博客 4501

“傻瓜”stata入门——熟悉操作界面

小白开始学习stata和matlab,零基础上手

nnpersistent的博客 4460

手把手教你用ESP32驱动MAX30102心率血氧传感器(含完整代码)

本文详细介绍了如何使用ESP32微控制器驱动MAX30102心率血氧传感器,构建智能健康监测系统。内容涵盖PPG原理、硬件连接、驱动配置、信号处理算法以及Web服务器数据可视化,提供完整代码实现,帮助开发者快速上手物联网健康设备开发。

weixin_29208077的博客 590

使用HUE分析影响impala sql 执行效率的因素

HUE(Hadoop User Experience)是一个开源的、基于Web的交互式分析和数据操作平台,它为使用Hadoop生态系统(如:Hadoop、Hive、Impala、Spark等)的用户提供了友好的用户界面。HUE的主要目标是让用户能够更轻松地访问和分析数据,同时也为开发者提供了一个集成的环境,以便于编写、测试和部署数据处理任务。HUE的核心功能包括:- Query Editors:支持Impala、Hive、Spark等的SQL查询编辑器,帮助用户编写、执行和优化查询。

lang830349821的博客 1210

浅谈Android MVI架构---大自然的搬运工~~~

浅谈 Android MVI架构

hong_world的博客 2158

Hive ---- 分区表和分桶表

再比如,若分区表为外部表,用户执行drop partition命令后,分区元数据会被删除,而HDFS的分区路径不会被删除,同样会导致Hive的元数据和HDFS的分区路径不一致。对于一张表或者分区,Hive 可以进一步组织成桶,也就是更为细粒度的数据范围划分,分区针对的是数据的存储路径,分桶针对的是数据文件。分桶表的基本原理是,首先为每行数据计算一个指定字段的数据的hash值,然后模以一个指定的分桶数,最后将取模运算结果相同的行,写入同一个文件中,这个文件就称为一个分桶(bucket)。

是微风,是晚霞,是无可替代 2691

FMC/FSMC/EXMC总线NORFlash/PSRAM接口(异步-复用-不突发/同步-复用-突发)

目录 1 简介 1.1 框图 1.2 接口定义 1.3 读写时序图、时序配置参数 1.4 PSRAM控制器异步工作模式分类 1.5 PSRAM寄存器配置 1.5.1 控制寄存器BCR 1.5.2 片选时序寄存器BTR 1.5.3 写入时序寄存器BWTR 2 FPGA接口设计 2.1 实际配置的时序 2.2 接口信号处理 3 参考文献 1 简介 使...

leixj的博客 2万+

[STM32F103C8T6]W5500+Modbus TCP(HAL库)

本章节是博主学习Modbus TCP所写的一篇文章Modbus TCP是Modbus的一个分支,主要用到网口通信的,在工业上也用的很频繁,我们公司最近的项目就是用的W5500+modbus TCP来和PC端的上位机通信和交互的。虽然这个项目不是我在写代码,但是我都学了Modbus RTU了,那我也抽空学习一下Modbus TCP吧。本次的Modbus TCP不是博主写的,是一个大佬开源的一个W5500写的一个Mobus TCP代码,我在这个基础上自己写了主机读从机多个数据,和主机写从机寄存器的函数。

sinat_58149788的博客 4086

Hive分区(partition)详解

一、背景 1、在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。 2、分区表指的是在创建表时指定的partition的分区空间。 3、如果需要创建有分区的表,需要在create表的时候调用可选参数partitioned by,详见表创建的语法结构。 二、技术细节 1、一个表可以拥有一个或者...

清平乐的技术专栏 2万+

YOLOv8 Neck改进:BiFPN双向特征金字塔网络解析与实践

本文详细介绍了如何在YOLOv8中集成BiFPN双向特征金字塔网络,包括原理解析、代码实现、配置文件修改和性能分析。BiFPN通过双向特征融合和加权特征机制,显著提升了多尺度目标检测的性能。希望通过本文的讲解,大家能够深入理解BiFPN的工作原理,并成功将其应用到自己的目标检测项目中。如果你有任何问题或建议,欢迎在评论区留言讨论!在下一篇文章中,我们将探讨YOLOv8的其他改进技术,包括注意力机制、新的损失函数等,敬请期待!

QQ_778132974的博客 993

spark sql 查看分区_基于SparkSQL的透明分区方法及装置与流程

本发明涉及计算机领域,尤其涉及一种基于SparkSQL的透明分区方法及装置。背景技术:目前,公知的SparkSQL分区技术是在创建数据表时指定专门的分区字段,数据表映射成HDFS上的一个目录,该表的数据都存放在这个目录下,分区字段数据并不与非分区字段一起存储在HDFS上的数据文件中,而是作为数据表目录的子目录存在于HDFS上。SparkSQL是使用标准的SQL来处理和分析大数据的开源技术,通过创建...

weixin_39609620的博客 316

XYC Q8开源掌机刷第三方系统教程

分区结束后直接将各种游戏文件放入OD分区的Roms文件夹下

m0_60352504的博客 4571

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

2023大数据面试总结

本文就是我在学习过程中记录下,所遇到的一些大数据面试的提问,仅供参考。

fx67ll的博客 948

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

拉链式存储_拉链表的存储方法及存储系统与流程

本发明涉及计算机技术领域,特别涉及一种拉链表的存储方法及存储系统。背景技术:随着大数据技术的普及,越来越多的传统数据库数据被移到HIVE(一种数据仓库工具)中存储。现有技术中,将每天获得的拉链表存储在对应的分区中,虽然这样可以查询到历史上任意一天的数据,但是会带来巨大的存储空间的浪费。技术实现要素:本发明要解决的技术问题是为了克服现有技术中的拉链表的存储方式会造成巨大的存储空间浪费的缺陷,提供一种...

weixin_39721009的博客 920

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

大数据异构环境数据同步工具DataX 与Sqoop 之比较

从接触DataX起就有一个疑问,它和Sqoop到底有什么区别,昨天部署好了DataX和Sqoop,就可以对两者进行更深入的了解了。 两者从原理上看有点相似,都是解决异构环境的数据交换问题,都支持oracle,mysql,hdfs,hive的互相交换,对于不同数据库的支持都是插件式的,对于新增的数据源类型,只要新开发一个插件就好了, 但是只细看两者的架构图...

weixin_34293141的博客 904

Hive-Hive排序

1. DQL 排序问题 1.1 order by 默认是升序asc,可指定降序desc。 order by是全局排序 只能有一个reduce作业来完成 多个reduce 如何保证全局顺序? hive.mapred.mode改为strict,则使用order by的时候有以下限制: 如果是普通表,则需要加 limit 如果是分区表则: 需要加 limit 需要限定分区条件 建议:慎用 ...

nituoge的博客 608

HIVE-分区表详解以及实例

什么是分区表? 分区表就是在系统上建立文件夹,把分类数据放在不同文件夹下面,加快查询速度。 关键点1:partitioned by (dt String,country string); 创建表格时,指明了这是一个分区表。将建立双层目录,第一次目录的名字是dt,第二次目录名字是country 。 PARTITIONED BY子句中定义列,是表中正式的列,成为分区列。但是数据文件中并没有这些值,仅代表目录。 关键点2: partition (dt=‘2001-01-01’,country=‘GB’); 上传数

TPH_BETTER.的博客 3342

深入理解 Hive 分区分桶 (Inceptor)

大数据核心原理与实践专栏 为何分区分桶 我们知道传统的DBMS系统一般都具有表分区的功能,通过表分区能够在特定的区域检索数据,减少扫描成本,在一定程度上提高查询效率,当然我们还可以通过进一步在分区上建立索引进一步提升查询效率。在此就不赘述了。 在Hive数仓中也有分区分桶的概念,在逻辑上分区表与未分区表没有区别,在物理上分区表会将数据按照分区键的列值存储在表目录的子目录中,目录名=“分区...

little prince,blue coder 3万+

大数据-hue(一)

大数据-hue(一) Hadoop User Experience Hue是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web框架Django实现的。 通过使用Hue我们可以在浏览器端...

海恋北斗星 745

Hive 分布式数据仓库

分布式:数据不放在一台电脑上,而是分割成很多块,存储在成百上千台普通电脑(服务器)里。Hadoop HDFS(分布式文件系统)负责存储数据,YARN 负责调度资源,Hive 只是“翻译官”和“指挥官”。分区表:按日期分区,文件夹结构:/data/sales/day=2025-03-01/ ,/data/sales/day=2025-03-02/分区就像图书馆里不同的楼层和书架编号,你要找“2024年的历史书”,管理员直接带你去4楼历史区,不用逛遍整栋楼!普通表:对应HTFS上一个文件夹,所用数据都放一起。

2601_95480876的博客 367

Hive函数全解——思维导图 + 七种函数类型

Hive函数超详细全解。

Byyyi耀的博客 1924
上一篇: Python生成扫雷地图(并非游戏实现)
下一篇: SQL的4种排名函数,附图表说明
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值