美文网首页
Hive分桶

Hive分桶

作者: 乔一波一 | 来源:发表于2019-04-03 19:17 被阅读0次

提问:为什么要创建分桶表呢?

        我认为有以下两点原因:

                (1):分桶表是为了在分区表的基础上,进一步区分数据,来实现一些需求,本质还是避免全表扫描;比如当涉及到表关联是可以创建分桶表;

                (2):分桶表也可以实现数据抽样;

和动态分区一样,分桶需要开启分桶支持;

开启hive分桶支持

默认:false;设置为true之后,mr运行时会根据bucket的个数自动分配reduce

task个数。

创建原始数据表

clustered by (指定分桶字段) into 分桶个数 buckets,

这里按照age字段分为4个桶;

注意:一次作业产生的桶(文件数量)和reduce task个数一致。

创建分桶表 原始数据表加载数据

加载数据到分桶表:insert into psnbucket select id,name,age from psn13;

查询分桶表数据:select * from psnbucket;

数据抽样:select id,name,age from psnbucket tablesample(bucket 2 out of 4 on age);

        tablesample:用来数据抽样,参数2表示从2号桶开始取数据,参数4表示每隔4个桶取一次数据;

从hdfs WebUI界面可以看出当前hive psnbucket表是四个文件,也就是分成四个桶;

相关文章

  • Hive 1.2.1 分区和分捅

    1. 借鉴 Hive学习笔记——Hive中的分桶Hive分区和分桶(0925)HIVE表索引,分区和分桶的区别 2...

  • Hive 分桶

    Hive 分桶 分桶对于每一个表或者分区,Hive可以进一步组织成桶,也就是更为细粒度的数据范围划分Hive是针对...

  • Hive分桶

    Hive分桶 分桶表是对列值取哈希值的方式,将不同数据放到不同文件中存储。 对于hive中每一个表、分区都可以进一...

  • Hive分桶

    提问:为什么要创建分桶表呢? 我认为有以下两点原因: (1):分桶表是为了在分区表的基础上,进...

  • Hive分桶表

    测试数据 创建分桶表 设置变量,设置分桶为true, 设置reduce数量是分桶的数量个数 加载数据 检查刚刚加载...

  • Hive 分区/分桶

    分区/桶 Hive 分区 Hive的分区方式:由于Hive实际上是数据文件在HDFS存在的目录区分分区字段是虚拟列...

  • Hive 分桶详解

    1分桶 1.1什么是分桶?和分区有什么区别? 分区:Hive在查询数据的时候,一般会扫描整个表的数据,会消耗很多不...

  • hive分桶实践

    A表1亿条记录 B表1亿条记录, A表B表通过id字段关联,直接关联报错,跑不动任务; 现在对A B表分别进行分桶...

  • 案例详解__HIVE中内部表、外部表、分区表和分桶表

    目录一、Hive建表语法二、内部表外部表三、分区表四、分桶表 Hive在建表时可指定内部表、外部表、分区表和分桶表...

  • Hive的分桶详解

    Hive分桶通俗点来说就是将表(或者分区,也就是hdfs上的目录而真正的数据是存储在该目录下的文件)中文件分成几个...

网友评论

      本文标题:Hive分桶

      本文链接:https://www.haomeiwen.com/subject/qrxtiqtx.html