hive分区与分桶

2023-11-04

为什么要分桶?

  1. 获得更高的查询处理效率
  • 在分区数量过于庞大以至于可能导致文件系统崩溃时,或数据集找不到合理的分区字段时,我们就需要使用分桶来解决问题了。
  • 分区中的数据可以被进一步拆分成桶,不同于分区对列直接进行拆分,桶往往使用列的哈希值对数据打散,并分发到各个不同的桶中从而完成数据的分桶过程。
  • 注意,hive使用对分桶所用的值进行hash,并用hash结果除以桶的个数做取余运算的方式来分桶,保证了每个桶中都有数据,但每个桶中的数据条数不一定相等。
  • 如果另外一个表也按照同样的规则分成了一个个小文件。两个表join的时候,就不必要扫描整个表,只需要匹配相同分桶的数据即可,从而提升效率。
  • 在数据量足够大的情况下,分桶比分区有更高的查询效率。
  1. 数据采样

在真实的大数据分析过程中,由于数据量较大,开发和自测的过程比较慢,严重影响系统的开发进度。此时就可以使用分桶来进行数据采样。采样使用的是一个具有代表性的查询结果而不是全部结果,通过对采样数据的分析,来达到快速开发和自测的目的,节省大量的研发成本。

分桶和分区的区别

  1. 分桶对数据的处理比分区更加细粒度化:分区针对的是数据的存储路径;分桶针对的是数据文件;
  2. 分桶是按照列的哈希函数进行分割的,相对比较平均;而分区是按照列的值来进行分割的,容易造成数据倾斜;
  3. 分桶和分区两者不干扰,可以把分区表进一步分桶。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hive分区与分桶 的相关文章

随机推荐

  • C语言丨快速排序法

    程序员在程序设计时常常需要对存储在数组中的大量数据进行处理 如排序 查找等 排序是把一系列无序的数据按照特定的顺序 如升序或降序 重新排列为有序序列的过程 对数据进行排序是最重要的应用之一 实际生活中的很多问题都需要对数据进行排序 之前我们
  • 多dex合并进apk

    批量重命名 选中所有 dex结尾的文件 右键批量重命名 Zip命令处理APK 删除原有classes dex zip d demo apk classes dex 添加新的脱壳classes dex zip m demo apk class
  • 什么是回调?

    定义 天天说回调回调 真的了解吗 消息异步为什么要传入回调接口 真的了解了吗 前端 axios 发送请求写的箭头函数全都是回调函数 真的理解了吗 其实回调很简单 就是比如 A 中的方法 a1 调用了 B 中的方法 b1 然后 b1 方法执行
  • ros---键盘控制机器人

    一 前言 无非是解决这几个问题问题 1 teleop py的键盘控制文档的书写 2 机器人模型文件xacro和控制xacro的launch文件的书写 二 问题解决思路 1 首先是teleop py键盘控制代码的书写 你有没有这样的问题 为什
  • 如何查计算机电源功率,手把手教你怎么查看电脑耗电量

    大家都知道 电脑只要在运行中就会产生耗电量 就好比电视机 冰箱 电风扇等等之类的啦 在通电的情况下都会产生耗电量 那么该如何计算电脑耗电量呢 别着急 下面小编就给大家介绍电脑耗电量的查询方法 什么是电脑耗电量呢 小编今天来给你们做一个佛系的
  • main函数参数详解

    一 参数形式 1 int main 2 int main void 3 int main int char 4 int main int char 5 int main int argc char argv 6 int main int a
  • (css)background-image设置背景图片大小

    css background image设置背景图片大小 效果 代码 middle li width 100 height 170px background image url assets images applyBj png backg
  • maven中打包项目为war包的pom.xml配置

    maven中打包成war包的pom xml配置 1 完整配置 这个是使用servlet的完整配置 其他的类似
  • Linux用普通用户输入命令报错-fork 资源不可用

    解决办法 修改最大限制打开文件数 vi etc security limits d 修改为65535 修改完之后重启应用服务器 系统正常访问
  • 服务器centos系统相关备注

    Install the UFW package using yum sudo yum y install ufw 开放端口 sudo ufw default allow outgoing sudo ufw allow 7000 tcp su
  • 解决Ubuntu16.04ping www.baidu.com不通的问题

    想要安装一个包 发现Ubuntu16 04不能上网 在终端ping百度 发现不通 问题如下 解决方法 1 检查你是否有IP信息 使用命令ifconfig 如果没有IP 则参照我的上一篇文章 获取IP 2 如果有IP 则进行下一步 执行以下命
  • 其他总结(四)--win10手动一小时四小时一天重新打开wifi

    win10出现这种个情况 是因为你吧笔记本的wifi关了 可以按fn F 这里的 号指你笔记本上的含有wifi信号开关的那个F键 我的是F2 重新开启就可以连接了 还可以用其他方式打开 https jingyan baidu com alb
  • Python语言—爬虫之旅

    活动地址 毕业季 进击的技术er 一 目前是大几 学习的专业是 本专业让你Get到哪些新技能 二 从哪个瞬间开始让你决定学习编程语言 三 进入大学敲下的第一行代码是什么 四 目前学习中最大的收获难是 五 大学期间的学习目标是 对未来的职业规
  • 使用pandas对xlsx文件的基本操作

    起因 因最近实习期间 要求查看 xlsx文件中数据是否有误 由于数据较多 想用python去执行 结果发现网上对xlsx文件操作或是太旧 大多难以应用 所以自己整理了一下 以备自己后用 模拟一个测试数据集data test xlsx文件 文
  • Broken pipe异常分析和常用锁的命令

    错误描述 ClientAbortException java io IOException Broken pipe 这种就是获取不到连接了 连接已经断开了 出现这种问题的可能性 1 连接太多 到了最大连接数 每个连接处理的速度太慢 而导致处
  • COLMAP导出相机外参(bin文件转txt文件)

    官方给出的images txt如下图 Image list with two lines of data per image 每张图像数据占两行 IMAGE ID QW QX QY QZ TX TY TZ CAMERA ID NAME 图像
  • 基于mykernel完成多进程的简单内核

    学号 476 实验资源 https github com mengning linuxkernel 1 实验环境准备 使用个人电脑的parallels desktop ubuntu虚拟机 1 安装qemu sudo apt get inst
  • DCT变换 / DWT变换 ----课堂笔记

    之前也学过 但没有个具体总结 忘差不多了 DCT变换 一 DCT变换的全称是离散余弦变换 DCT 主要用于数据或者图像的压缩 由于DCT能够将空域的信号转换到频域上 因此具有良好的去相关性的性能 DCT变换本身是无损的且具有对称性 对原始图
  • 分支创建&查看&切换

    1 初始化git目录 创建文件并将其推送到本地库 git init echo 123 gt hello txt git add hello txt git commit m first commit hello txt git init I
  • hive分区与分桶

    为什么要分桶 获得更高的查询处理效率 在分区数量过于庞大以至于可能导致文件系统崩溃时 或数据集找不到合理的分区字段时 我们就需要使用分桶来解决问题了 分区中的数据可以被进一步拆分成桶 不同于分区对列直接进行拆分 桶往往使用列的哈希值对数据打