您当前的位置:首页 > 互联网百科 > 大数据

Hive 分区和分桶的区别

时间:2022-02-21 13:48:37  来源:  作者:大数据工匠

前言

Hive的分区和分桶都是细化数据管理,加快数据查询和分析,两者有什么区别呢?下面讲解一下分区和分桶的原理。

分区及原理

Hive的分区表可以有一个或多个分区键,用于确定数据的存储方式。分区(除了作为存储单元)还允许用户有效地识别满足指定条件的数据,显著加快查询分析速度。分区字段并不是数据的一部分,而是加载时虚拟的列,数据在HDFS上存储时分区就相当于文件目录。

分区建表SQL

分区表使用partitioned by 子句指定,以指定字段列,需要指定字段类型。

--分区表建表sql
USE testdb;
CREATE TABLE test_partition (
    field1 String Comment 'field1 comment',
    field2 String Comment 'field2 comment')
Comment 'table comment'
PARTITIONED BY(d String Comment 'date')
STORED AS ORC;

--分区表查询
SELECT *
FROM testdb.test_partition
WHERE d = '2022-02-01'

建表完成后查看LOCATION参数为:'
hdfs://ns/user/hive/warehouse/testdb.db/test_partition'。当存储数据时,2022-02-01日期的数存储在hdfs://ns/user/hive/warehouse/testdb.db/test_partition/d=2022-02-01目录下。

如果指定多个分区列用逗号分隔开,如:建表是PARTITIONED BY(d String Comment 'date',h String Comment 'hour'),分区字段日期常用格式:d=yyyy-MM-dd,h=HH。第二个参数会作为子目录存储在HDFS上:***/test_partition/d=2022-02-01/h=12

分桶及原理

分桶表中的数据可以根据表中某列的哈希函数的值依次划分为存储桶,用于分桶的字段是数据中实际的一列。其原理:根据分桶的列计算hash值,对hash值取模运算,将数据放到对应的桶里。

分桶建表SQL

分桶表由clustered by 子句指定,指定字段为真实字段,需要指定桶的个数,桶编号从零开始。

--分桶表建表sql,创建4个桶
USE testdb;
CREATE TABLE test_bucket (
    field1 String Comment 'field1 comment',
    field2 String Comment 'field2 comment')
COMMENT 'table comment'
clustered by (field1) into 4 buckets
row format delimited
fields terminated by ',';

--分桶表查询
SELECT *
FROM testdb.test_bucket
WHERE field1 = '0'

相同点和不同点

相同点:分区和分桶表都是Hive细化数据管理,加快数据查询和分析。

不同点

  • 分区字段不是实际的列,分桶字段必须是实际的列。
  • 分区表的分区数量可以一直增长,而分桶表创建好后桶的数量就固定不变了。

思考

因为分桶原理是用hash计算后取模计算分桶,用哈希计算必然会冲突,如果大批量数据计算的hash值相等,极端情况下全部数据集中到一个桶中时,就导致分桶表退化成一张维表。



Tags:Hive   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
前言Hive的分区和分桶都是细化数据管理,加快数据查询和分析,两者有什么区别呢?下面讲解一下分区和分桶的原理。分区及原理Hive的分区表可以有一个或多个分区键,用于确定数据的存...【详细内容】
2022-02-21  Tags: Hive  点击:(0)  评论:(0)  加入收藏
1)、编辑hive启停shell脚本,脚本如下(说明:脚本别忘记了用户需要执行权限)#!/bin/shif [ $# -ne 2 ] ;then echo "please input two params,first is (metastore|hiveserver2)...【详细内容】
2021-07-28  Tags: Hive  点击:(160)  评论:(0)  加入收藏
作者 | 胡梦宇,知乎数据架构平台开发工程师责编 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)背景ApacheHive 是基于 Apache Hadoop 的一个数据仓库工具,可以将结...【详细内容】
2020-07-09  Tags: Hive  点击:(90)  评论:(0)  加入收藏
> Photo by Mr Cup / Fabien Barral on Unsplash 随着技术的快速变化,越来越多的数据一直在生成。据最新的全球数据领域估计,到2025年,全世界产生的数据量将增长到175 ZB。公...【详细内容】
2020-05-21  Tags: Hive  点击:(130)  评论:(0)  加入收藏
▌简易百科推荐
前言Hive的分区和分桶都是细化数据管理,加快数据查询和分析,两者有什么区别呢?下面讲解一下分区和分桶的原理。分区及原理Hive的分区表可以有一个或多个分区键,用于确定数据的存...【详细内容】
2022-02-21  大数据工匠    Tags:Hive   点击:(0)  评论:(0)  加入收藏
本帖由东南亚最大的超级应用程序之一Gojek的商业智能BI前高级副总裁Crystal撰写。以下是摘要,原文点击标题:Gojek成为东南亚最大的消费交易技术集团,其超级app应用包括订购食...【详细内容】
2022-02-14  解道Jdon    Tags:大数据   点击:(10)  评论:(0)  加入收藏
我们已经进入了出门只需一部手机即可走天下的时代。曾几何时,互联网似乎变得越来越了解我们,在一个软件上搜索商品,其他平台上立刻就会有相关广告位推荐。大数据在贴心和便利的...【详细内容】
2022-02-10  泡泡邮递员    Tags:大数据“   点击:(16)  评论:(0)  加入收藏
一、搭建1、准备插件yum install -y epel-release yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git2、关闭防火墙systemct...【详细内容】
2022-02-08  科苑大数据    Tags:Hadoop   点击:(23)  评论:(0)  加入收藏
在日常生活中,数据无处不在,但并不是所有的数据都可以成为资产。只有可控制、可测量和可货币化的数据才能成为资产。因此,数据资产(Data Asset)通常具有以下特征:虚拟性、可共享性...【详细内容】
2022-02-05  Marteker    Tags:数据资产   点击:(16)  评论:(0)  加入收藏
一、搭建1、解压tar -zxf /opt/software/apache-flume-1.9.0-bin.tar.gz -C /opt/module/mv /opt/module/apache-flume-1.9.0-bin /opt/module/flume2、删除不兼容包rm /opt...【详细内容】
2022-01-29  科苑大数据    Tags:大数据   点击:(20)  评论:(0)  加入收藏
我们每天都要和手机、电脑、Siri、小艺同学发生千百次的交互,你的每一个点赞,每一次滑动,每一笔消费,每一次刷抖音微博快手,都会被准确无误地记录着。但是,在我们尽情享受互联网...【详细内容】
2022-01-21  上下前    Tags:大数据   点击:(21)  评论:(0)  加入收藏
知乎业务中,随着各业务线业务的发展,逐渐对用户画像和实时数据这两部分的诉求越来越多。对用户画像方面,期望有更快、更准、更方便的人群筛选工具和方便的用户群体分析能力。对...【详细内容】
2022-01-19  大数据推荐杂谈    Tags:数据架构   点击:(29)  评论:(0)  加入收藏
文|小代每次疫情发生时,当地的病例人数公布后,大家最紧张等待的便是他的活动轨迹。流调是漫长又辛苦的工作,但时间不等人,需要快速调查清楚病例的活动轨迹,以防止疫情的大规模扩...【详细内容】
2022-01-17  代码工场聊开发    Tags:流调   点击:(66)  评论:(0)  加入收藏
小伙们经常听到这样一句话:“数据分析师一定要懂业务!”那到底啥玩意才是业务?懂多少才算懂业务?今天跟大家分享一下。一、什么是业务?业务是相对于技术和行政来说的,是企业里一种...【详细内容】
2022-01-07  数据分析不是个事儿    Tags:数据分析   点击:(23)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条