• Hive 分桶 Bucket


    在这里插入图片描述

    1. 概述

    通常 Hive 中的分区功能提供了一种将 Hive 表数据分隔成多个文件/目录的方法。当只有有限个分区,分区大小差不多大情况下,分区会产生不错的效果。但在有些情况下并不能如我们所愿,比如,当我们根据国家对表进行分区时,一些较大的国家会有较大的分区(例如:4-5个国家就占总数据的70-80%),然而一些小国家分区会比较小(剩余的所有国家可能只占全部数据的20-30%)。

    Hive 中的分区提供了一个隔离数据和优化查询的便利方式,不过并非所有的数据都可形成合理的分区,例如,上面的情形。在这种情形下分区并不理想,为了解决分区的这个问题,Hive 引入分桶的概念。Hive 中的分桶是另一种将数据切分为更小片段的方式。分区就是一个目录,在分桶中,每个桶都是保存实际数据的一个文件(一个桶对应一个文件)。

    将表(或者分区)组织成分桶有两个主要的原因:

    • 第一是获得更高的查询效率。桶为表加上了额外的结构。Hive 在处理有些查询时能够利用这个结构。具体而言,Join 两个在相同列上划分分桶的表,可以获得更高的效率。
    • 第二是使抽样更高效。在处理大规模数据集时,在开发和修改查询的阶段,如果能在数据集的一小部分数据上运行查询,会带来很多方便。

    分桶具有如下特征:

    • 分桶基于对分桶列值进行哈希并将结果除以桶的个数取余数。哈希函数取决于分桶列的类型。
    • 具有相同
  • 相关阅读:
    MySQL 存储引擎介绍
    光芯片-汽车-自动驾驶-新能源分析
    C. Discrete Acceleration(浮点二分)
    MindSpore模型的Parameter在图模式下如何手动更新
    【开发工具】vConsole - 手机前端开发调试利器
    Java&Vue 借助json传递数据
    关于Vue本地图片转file传到后端服务器(不通过组件上传)
    el-form表单实现校验
    SpringMvc--CRUD
    k8s系列(二)之k8s高可用集群环境搭建
  • 原文地址:https://blog.csdn.net/SunnyYoona/article/details/127799255