Hive的分区表分桶表

news2024/9/9 7:28:01

1.分区表:

        是Hive中的一种表类型,通过将表中的数据划分为多个子集(分区),每个分区对应表中的某个特定的列值,可以提高查询性能和管理数据的效率。分区表的每个分区存储在单独的目录中,分区的定义基于表中的一个或多个列。使用分区表的主要目的是减少查询扫描的数据量,从而提高查询效率。

        分区过细可能导致生成大量的小文件,影响HDFS性能和MapReduce任务的效率。需要定期进行小文件合并操作。

CREATE TABLE customer_data (
  customer_id STRING,
  name STRING,
  age INT,
  email STRING
)
PARTITIONED BY (city STRING)
STORED AS ORC;

select *
from customer_data;

-- 插入 New York 的数据
INSERT INTO TABLE customer_data PARTITION (city='New York')
VALUES
('1', 'John Doe', 30, 'john@example.com'),
('2', 'Jane Smith', 25, 'jane@example.com'),
('3', 'Bob Johnson', 40, 'bob@example.com');

-- 插入 Los Angeles 的数据
INSERT INTO TABLE customer_data PARTITION (city='Los Angeles')
VALUES
('4', 'Alice Brown', 32, 'alice@example.com'),
('5', 'Charlie Davis', 28, 'charlie@example.com');

-- 插入 Chicago 的数据
INSERT INTO TABLE customer_data PARTITION (city='Chicago')
VALUES
('6', 'Eve White', 45, 'eve@example.com'),
('7', 'Frank Black', 37, 'frank@example.com');

可以查看到hdfs上创建了三个目录,对应三个分区,使用带有where条件的select进行查询,会直接从对应的分区目录下查找数据,从而减少查询扫描的数据量,提高性能。

SELECT * FROM customer_data WHERE city='New York';

2.分桶表:

        是Hive中的另一种表类型,通过对表中的数据进行散列分桶(hash bucket),可以进一步提高查询性能,尤其是在进行连接(join)和聚合(aggregation)操作时。分桶表将数据划分为固定数量的桶(bucket),每个桶存储在单独的文件中。
---------------------------------------------------分桶表的特点---------------------------------------------------
数据划分:根据一个或多个列的哈希值,将数据分布到固定数量的桶中。
文件存储:每个桶的数据存储在独立的文件中。
均匀分布:理想情况下,数据在所有桶中均匀分布,从而提高查询性能。

CREATE TABLE customer_data2 (
  customer_id STRING,
  name STRING,
  age INT,
  email STRING
)
CLUSTERED BY (customer_id) INTO 4 BUCKETS
STORED AS ORC;
-- 插入数据到分桶表
--通过这些步骤,我们创建了一个按 customer_id 列进行分桶的 Hive 表 customer_data,并插入了具体的数据。
INSERT INTO TABLE customer_data2 VALUES
('1', 'John Doe', 30, 'john@example.com'),
('2', 'Jane Smith', 25, 'jane@example.com'),
('3', 'Bob Johnson', 40, 'bob@example.com'),
('4', 'Alice Brown', 32, 'alice@example.com'),
('5', 'Charlie Davis', 28, 'charlie@example.com'),
('6', 'Eve White', 45, 'eve@example.com'),
('7', 'Frank Black', 37, 'frank@example.com'),
('8', 'Grace Green', 22, 'grace@example.com');

select *
from customer_data2;

通过查看hdfs上的路径我们可以看到这些数据会按照对应列的hash值分到不同的桶中

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

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

相关文章

【正点原子i.MX93开发板试用连载体验】为什么模型不能运行在NPU上

本文最早发表于电子发烧友论坛:【新提醒】【正点原子i.MX93开发板试用连载体验】基于深度学习的语音本地控制 - 正点原子学习小组 - 电子技术论坛 - 广受欢迎的专业电子论坛! (elecfans.com) 昨天提到要使模型运行的NPU上,必须先将其量化。如果对没有量化…

构建未来对话:从零开始实现基于Vue 3的AI聊天页面

大家好,今天我们将一起探索如何从零开始,使用Vue 3构建一个AI对话页面。这个过程不仅会让我们了解Vue 3的新特性,还会让我们对构建交互式Web应用有一个全新的认识。如果你是编程新手,别担心,我会用通俗易懂的语言&…

汽车免拆诊断案例 | 2016款保时捷Macan车发动机故障灯异常点亮

故障现象  一辆2016款保时捷Macan车,搭载CYP发动机,累计行驶里程约为11.2万km。车主进厂反映,发动机故障灯异常点亮。 故障诊断  接车后试车,发动机怠速无明显异常,组合仪表上的发动机故障灯异常点亮。用故障检测仪…

数字信号处理及MATLAB仿真(4)——量化的其他概念

上回书说到AD转换的两个步骤——量化与采样两个步骤。现在更加深入的去了解以下对应的概念。学无止境,要不断地努力才有好的收获。万丈高楼平地起,唯有打好基础,才能踏实前行。 不说了,今天咱们继续说说这两个步骤,首先…

stm32学习笔记---MPU6050(理论部分)

目录 MPU6050简介 MPU6050参数 硬件电路 MPU6050框图 PS产品说明书和RM寄存器映像手册 PS产品说明书 RM寄存器映像 采样频率分频器 配置寄存器 陀螺仪配置寄存器 加速度计配置寄存器 数据寄存器 电源管理寄存器1 电源管理寄存器2 器件ID号 声明:本专…

css实现左右两端,并且对齐

<div class"card-header"><span>就诊人管理</span><el-button class"button" type"primary" >添加就诊人</el-button></div>.card-header {display: flex; //实现两端justify-content: space-between; //侧…

计算机基础 进制转化

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 ☁️运维工程师的职责&#xff1a;监…

AMEYA360:类比半导体三款车规级新品介绍

类比半导体三款全新车规级智能驱动芯片——HD70504与HD70804四通道高边驱动、HD7004低导通电阻高边驱动以及DR8112直驱马达驱动芯片介绍&#xff0c;进一步扩展了其汽车智能驱动产品的深度与广度。 新品首发&#xff0c;诠释“芯”动未来 HD70504 & HD70804四通道高边驱动芯…

Windows电脑安装Python结合内网穿透轻松搭建可公网访问私有网盘

文章目录 前言1.本地文件服务器搭建1.1.Python的安装和设置1.2.cpolar的安装和注册 2.本地文件服务器的发布2.1.Cpolar云端设置2.2.Cpolar本地设置 3.公网访问测试4.结语 前言 本文主要介绍如何在Windows系统电脑上使用python这样的简单程序语言&#xff0c;在自己的电脑上搭建…

【Spring Boot】Spring原理:Bean的作用域和生命周期

目录 Spring原理一. 知识回顾1.1 回顾Spring IOC1.2 回顾Spring DI1.3 回顾如何获取对象 二. Bean的作用域三. Bean的生命周期 Spring原理 一. 知识回顾 在之前IOC/DI的学习中我们也用到了Bean对象&#xff0c;现在先来回顾一下IOC/DI的知识吧&#xff01; 首先Spring IOC&am…

【GC 垃圾回收算法和回收器】

作者&#xff1a;ofLJli 链接&#xff1a;https://juejin.cn/post/7003213289425633287?searchId20240709085629749958B21D886D4E67D4 来源&#xff1a;稀土掘金 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 概述 在JVM中主要的结构为&…

电脑桌面文件不见了怎么恢复?需要了解的5个知识和恢复方法!

电脑桌面文件不见了怎么恢复&#xff1f;电脑文件千万条&#xff0c;数据恢复第一条。 当我们发现电脑文件丢失时&#xff0c;切勿着急&#xff0c;只要没有做二次覆盖&#xff0c;丢失的文件还是有机会找回来的。本文整理了电脑误删文件的恢复方法&#xff0c;并提供了一些列…

ZGC在三色指针中的应用

ZGC基于颜色指针的并发处理算法 ZGC初始化之后&#xff0c;整个内存空间的地址视图被设置为Remapped&#xff0c;当进入标记阶段时的视图转变为Marked0&#xff08;也称为M0&#xff09;或者Marked1&#xff08;也称为M1&#xff09;&#xff0c;从标记阶段结束进入转移阶段时…

社区团购小程序源码系统 带完整的安装代码以及搭建部署教程

系统概述 在这个数字化时代&#xff0c;线上活动成为了连接用户与组织者的桥梁。为了满足不同场景的需要&#xff0c;开发一个灵活、可定制的在线活动报名表单小程序显得尤为重要。本文将深入介绍一个自定义在线活动报名表单小程序的源码系统&#xff0c;并提供详细的搭建部署…

sublime中无法找到Package Control或Install Package

在Crtl Shift P 中无法查找到Package Control或Install Package或调用产生报错。 可以尝试在 首选项 ---- > 设置中 检查配置文件"ignored_packages":紧跟的中括号中是否为空&#xff0c;如果不为空请删除其中内容。 如果不确定内容&#xff0c;可以用下面的…

VScode代码对齐快捷键

解决复制过来代码对齐格式问题。 左对齐&#xff1a;Ctrl[ 右对齐&#xff1a;Ctrl]

从零开始做题:logtime

题目 给出1个pcapng文件 解题 wireshark打开题目流量包&#xff0c;在TCP流中发现flag.zip压缩包流量&#xff0c;将flag.zip提取到本地&#xff0c;解压的过程中需要解压密码&#xff0c;接着观察流量 import pyshark import re pcapFilePath logtime.pcapng pcapFilter…

C++基础(十七):模板进阶

前面我们学习过模板&#xff0c;这一节我们对模板进行进阶的学习。 目录 一、非类型模板参数 二、类模板的特化 2.1 概念 2.2 函数模板特化 2.3 类模板特化 2.3.1 全特化 2.3.2 偏特化 三、模板的分离编译 3.1 什么是分离编译 3.2 模板的分离编译 3.3 解决方法 3.…

医院人员管理系统03_下午:C3P0连接池,完成简单的增删改查

文章目录 什么是C3P0项目目录Students.javaC3P0Conn.javaStuDao.java套路代码 什么是C3P0 C3P0连接池要比jdbc更简单&#xff0c;dao层写方法就能看出来 项目目录 Students.java 没有变&#xff0c;直接是jdbc的实体类 跳转我的上一篇文章查看实体类代码 C3P0Conn.java 这…

AmazonS3部署以及nacos配置参数

AmazonS3部署 因为涉及到做的需求的头像的处理&#xff0c;所以需要去找头像的来源&#xff0c;没想到又是我们的老熟人&#xff0c;AmazonS3&#xff0c;巧了已经是第二次用了&#xff0c;上次我是用的别人的工具类去干的&#xff0c;这一次我这边自己编辑具体工具类型。 对应…