关于HIVE的分区与分桶

1.分区

1.概念

Hive中的分区就是把一张大表的数据按照业务需要分散的存储到多个目录,每个目录就称为该表的一个分区。在查询时通过where子句中的表达式选择查询所需要的分区,这样的查询效率会提高很多
个人理解白话:按表中或者自定义的一个列,对数据进行了group by, 然后这时候,查询出的一行就是一个文件,或者说,分区列一行对应一个文件

本质是MR中默认的分区操作,分桶字段就是MR中的key,分桶数就是MR中ReduceTask的数量

2.操作

一级分区学习

1.创建分区表

就是加个partition by (分区列名 列格式)

create table dept_partition
(deptno int,    --部门编号dname  string, --部门名称loc    string  --部门位置
)partitioned by (day string)row format delimited fields terminated by '\t';

2.添加数据

创建数据

//在/opt/module/hive/datas/路径上创建文件dept_20220401.log,并输入如下内容。
[atguigu@hadoop102 datas]$ vim dept_20220401.log
10	行政部	1700
20	财务部	1800

插入数据 需要指定插入的分区

load data local inpath '/opt/module/hive/datas/dept_20220401.log' 
into table dept_partition 
partition(day='20220401');
insert overwrite table dept_partition partition (day = '20220402')
select deptno, dname, loc
from dept_partition
where day = '2020-04-01';

3.读数据

需要指明分区

select deptno, dname, loc ,day
from dept_partition
where day = '2020-04-01';

4.添加和删除分区

注意 分区分桶的操作,都是表操作,DDL 都是alter
为什么呢?因为分区相当于多加了一列,

 // 1.查看所有分区新信息
show partitions dept_partition;
// 2.创建单个分区
alter table dept_partition 
add partition(day='20220403');
// 3.创建多个分区
alter table dept_partition 
add partition(day='20220404') partition(day='20220405');
// 4.删除单个分区
alter table dept_partition 
drop partition (day='20220403');
// 5.删除多个分区
alter table dept_partition 
drop partition (day='20220404'), partition(day='20220405');

4.修复分区

为什么要修复分区?
数据不同步 : 情况1: 元数据有 HADOOP 无
情况2: 元数据无 HADOOP 有
但是注意
情况1 数据已经不存在了,只有元数据存在,同步的话,需要删除元数据
情况2 HADOOP中的数据还存在,元数据没有了,这时候,同步就生成元数据即可(重新导入一遍)
命令
add 增加分区信息
drop 删除分区信息
sync = add+drop

msck repair table table_name [add/drop/sync partitions];

2.二级分区

就是多加一列,用逗号隔开

create table dept_partition2(deptno int,    -- 部门编号dname string, -- 部门名称loc string     -- 部门位置
)
partitioned by (day string, hour string)
row format delimited fields terminated by '\t';
load data local inpath '/opt/module/hive/datas/dept_20220401.log' 
into table dept_partition2 
partition(day='20220401', hour='12');
select * 
from dept_partition2 
where day='20220401' and hour='12';

3.动态分区

根据最后一个列作为分区标准
感觉动态分区一般作为表优化使用(表数据量过大需要分区,但是手动分区太过繁琐)
在这里插入图片描述
在这里插入图片描述

2.分桶

1.概念

按行进行截取,行进行分桶

2. 例题

1.建表

create table stu_buck_sort(id int, name string
)
clustered by(id) sorted by(id)
into 4 buckets
row format delimited fields terminated by '\t';

分成4个部分,默认分桶规则是哈希取余(或者整数取余)
分桶必排序

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#中XML文档与Treeview控件操作的数据同步

在前文《C#使用XML和Treeview结合实现复杂数据采集功能》中,使用Treeview展示了XML的数据,问题是如果在Treeview上进行了操作,怎样同步更改XML数据的内容呢? 这个问题看似简单,实现起来有一点小麻烦。 要实现的操作功能…

C语言假期作业 DAY 13

一、选择题 1、如果 x2014 ,下面函数的返回值是( ) int fun(unsigned int x) { int n 0; while(x 1) { n; x x | (x 1); } return n; } A: 20 B: 21 C: 23 D 25 答案解析 正确答案:C 这个作用是对整型中0的个数进行统计&…

K8s中的Secret

Secret作用:加密数据存在etcd里面,让pod容器以挂载Volume方式进行访问。场景:凭据

规划路线(微信小程序、H5)

//地图getLocationDian(e1, e2) {console.log(e1, e2);let self this;self.xx1 [];self.xx2 [];self.points [];// self.markers[]console.log(self.markers, >marks);// self.$jsonp(url, data).then(re > {// var coors re.result.routes[0].polyline;// for (v…

【Python】Locust持续优化:InfluxDB与Grafana实现数据持久化与可视化分析

目录 前言 influxDB 安装运行InfluxDB 用Python 上报数据到influxdb ocust 数据写入到 influx Locust的生命周期 上报数据 优化升级 配置Grafana 总结 资料获取方法 前言 在进行性能测试时,我们需要对测试结果进行监控和分析,以便于及时发现问…

HTML+CSS+JavaScript:渲染电商站购物车页面

一、需求 根据下图渲染购物车页面 二、代码素材 以下是缺失JS部分的代码&#xff0c;感兴趣的小伙伴可以先自己试着写一写 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatib…

政务云建设与应用解决方案[42页PPT]

导读&#xff1a;原文《政务云建设与应用解决方案[42页PPT]》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 完整版领取方式 完整版领取方式&#xff1a; 如需获取完…

ELF文件格式解析

ELF(Executable and Linkable Format) 即可执行可链接文件格式&#xff0c;是目前操作系统上最常见的可执行文件格式。不同系统的目标文件不一样&#xff0c;Windows是PE&#xff08;Portable Executable&#xff09;&#xff0c;linux是ELF&#xff08;Executable Linkable Fo…

【SpringCloud】RabbitMQ基础

1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式&#xff1a; 同步通讯&#xff1a;就像打电话&#xff0c;需要实时响应。 异步通讯&#xff1a;就像发邮件&#xff0c;不需要马上回复。 两种方式各有优劣&#xff0c;打电话可以立即得到响应&#xff0c;…

vue2-diff算法

1、diff算法是什么&#xff1f; diff算法是一种通过同层的树节点进行比较的高效算法。 其有两个特点&#xff1a; 比较只会在同层级进行&#xff0c;不会跨层级进行。 在diff比较的过程中&#xff0c;循环从两边向中间比较。 diff算法在很多场景中都有应用&#xff0c;在vue中&…

Jmeter(一) - 从入门到精通 - 环境搭建(详解教程)

1.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序&#xff0c;被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能&#xff0c;例如&#xff1a;静态文件&#xff0c;Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器…

Hadoop学习:深入解析MapReduce的大数据魔力(二)

Hadoop学习&#xff1a;深入解析MapReduce的大数据魔力&#xff08;二&#xff09; 3.3 Shuffle 机制3.3.1 Shuffle 机制3.3.2 Partition 分区3.3.3 Partition 分区案例实操3.3.4 WritableComparable 排序3.3.5 Combiner 合并 3.4 OutputFormat 数据输出3.4.1 OutputFormat 接口…

HttpServletRequest和HttpServletResponse的获取与使用

相关笔记&#xff1a;【JavaWeb之Servlet】 文章目录 1、Servlet复习2、HttpServletRequest的使用3、HttpServletResponse的使用4、获取HttpServletRequest和HttpServletResponse 1、Servlet复习 Servlet是JavaWeb的三大组件之一&#xff1a; ServletFilter 过滤器Listener 监…

医学图像处理

医学图像处理 opencv批量分片高像素图像病理图像色彩特征提取基于 imgaug、skimage 实现色彩增强基于 Cycle-GAN 完成染色标准化 病理图像细微特征提取自动数据标注分类场景下的医学图像分析分割场景下的医学图像分析检测场景下的医学图像分析 , i ] k 8 < * I opencv批量…

4.DNS和负载均衡

文章目录 coreDNS概念部署croeDNS测试 kubernetes多master集群结构master节点部署 负载均衡配置部署nginx做四层反向代理安装高可用 keepalivednginx监控脚本修改k8s中组件的配置文件 coreDNS 概念 coreDNS是kubernetes的默认DNS实现。可以为集群中的service资源创建一个资源名…

PyTorch中加载模型权重 A匹配B|A不匹配B

在做深度学习项目时&#xff0c;从头训练一个模型是需要大量时间和算力的&#xff0c;我们通常采用加载预训练权重的方法&#xff0c;而我们往往面临以下几种情况&#xff1a; 未修改网络&#xff0c;A与B一致 很简单&#xff0c;直接.load_state_dict() net ANet(num_cla…

Java课设--学生信息管理系统(例1)

文章目录 前提一、运行效果二、Text实现类三、Manage选择类四、StudentWay学生方法类五、StudnetSql数据库类 前题 例1为无使用GUI图形界面&#xff0c;例2使用GUI图形界面&#xff01; 首先自己的JDBC驱动已经接好了&#xff0c;连接自己的数据库没有问题。连接数据库可以看…

《吐血整理》高级系列教程-吃透Fiddler抓包教程(33)-Fiddler如何抓取WebSocket数据包

1.简介 本来打算再写一篇这个系列的文章也要和小伙伴或者童鞋们说再见了&#xff0c;可是有人留言问WebSocket包和小程序的包不会抓&#xff0c;那就关于这两个知识点宏哥就再水两篇文章。 2.什么是Socket&#xff1f; 在计算机通信领域&#xff0c;socket 被翻译为“套接字…

物联网||不一样的点灯实验(2)|通过使用CMSIS库函数实现点灯实验-学习笔记(12)

文章目录 通过使用CMSIS库函数实现点灯实验1 如何使用CMIS库2 如何利用CMSIS库操作IO 两种实现方法的比较课后作业:完整代码&#xff1a;LED.C:test.c:led.h:systick.h:systick.c: 通过使用CMSIS库函数实现点灯实验 1 如何使用CMIS库 #####如何使用此驱动#####[. .](#)启用GPI…

langchain-ChatGLM源码阅读:参数设置

文章目录 上下文关联对话轮数向量匹配 top k控制生成质量的参数参数设置心得 上下文关联 上下文关联相关参数&#xff1a; 知识相关度阈值score_threshold内容条数k是否启用上下文关联chunk_conent上下文最大长度chunk_size 其主要作用是在所在文档中扩展与当前query相似度较高…