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

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   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
MySQL到TiDB:Hive Metastore横向扩展之路
一、背景大数据元数据服务Hive Metastore Service(以下简称HMS),存储着数据仓库中所依赖的所有元数据并提供相应的查询服务,使得计算引擎(Hive、Spark、Presto)能在海量数据中准确...【详细内容】
2023-09-28  Search: Hive  点击:(336)  评论:(0)  加入收藏
【大数据】Hive Join 的原理与机制
一、概述Hive是一个基于Hadoop的数据仓库解决方案,它提供了类似于SQL的查询语言,称为HiveQL,用于处理结构化数据。在Hive中,JOIN操作用于将两个或多个表中的数据连接在一起,以便...【详细内容】
2023-05-08  Search: Hive  点击:(124)  评论:(0)  加入收藏
Hive DDL 操作与视图讲解
一、概述Hive是建立在Hadoop上的数据仓库工具,它允许用户通过类SQL的语法来查询和管理数据。在Hive中,DDL(数据定义语言)和视图操作是非常常见的。 1)表和视图关系表和视图都是数...【详细内容】
2023-05-06  Search: Hive  点击:(148)  评论:(0)  加入收藏
【大数据】Hive 分区和分桶的区别及示例讲解
一、概述在大数据处理过程中,Hive是一种非常常用的数据仓库工具。Hive分区和分桶是优化Hive性能的两种方式,它们的区别如下:1、分区概述Hive分区是把数据按照某个属性分成不同...【详细内容】
2023-05-04  Search: Hive  点击:(159)  评论:(0)  加入收藏
Hive 和 Spark 分区策略剖析
一、概述随着技术的不断的发展,大数据领域对于海量数据的存储和处理的技术框架越来越多。在离线数据处理生态系统最具代表性的分布式处理引擎当属Hive和Spark,它们在分区策略...【详细内容】
2023-03-30  Search: Hive  点击:(148)  评论:(0)  加入收藏
Hive 超赞的解析 Json 数组的函数
背景大数据的 ETL(Extract-Transfer-Load) 过程的 Transfer 阶段,需要对 json 串数据进行转换“拍平”处理。亲测!超好用 Hive 内置的 json 解析函数 一文中详细介绍过 get_js...【详细内容】
2022-03-31  Search: Hive  点击:(775)  评论:(0)  加入收藏
Hive 分区和分桶的区别
前言Hive的分区和分桶都是细化数据管理,加快数据查询和分析,两者有什么区别呢?下面讲解一下分区和分桶的原理。分区及原理Hive的分区表可以有一个或多个分区键,用于确定数据的存...【详细内容】
2022-02-21  Search: Hive  点击:(1625)  评论:(0)  加入收藏
hive systemctl启停hiveserver2和metastore服务
1)、编辑hive启停shell脚本,脚本如下(说明:脚本别忘记了用户需要执行权限)#!/bin/shif [ $# -ne 2 ] ;then echo "please input two params,first is (metastore|hiveserver2)...【详细内容】
2021-07-28  Search: Hive  点击:(1131)  评论:(0)  加入收藏
知乎 Hive Metastore 实践:从 MySQL 到 TiDB
作者 | 胡梦宇,知乎数据架构平台开发工程师责编 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)背景ApacheHive 是基于 Apache Hadoop 的一个数据仓库工具,可以将结...【详细内容】
2020-07-09  Search: Hive  点击:(449)  评论:(0)  加入收藏
Hadoop,HDFS,HBase,Hive 有什么不同?
> Photo by Mr Cup / Fabien Barral on Unsplash 随着技术的快速变化,越来越多的数据一直在生成。据最新的全球数据领域估计,到2025年,全世界产生的数据量将增长到175 ZB。公...【详细内容】
2020-05-21  Search: Hive  点击:(521)  评论:(0)  加入收藏
▌简易百科推荐
大数据杀熟何时告别“人人喊打却无可奈何”?
2月7日郑州飞往珠海的航班,不同手机、不同账号搜索该航班显示出不同价格。图源网络有网友近日分享在某平台的购票经历,引发社会广泛关注——用3个账号买同一航班同...【详细内容】
2024-01-30    中国青年网  Tags:大数据杀熟   点击:(34)  评论:(0)  加入收藏
简易百科:到底什么是大数据?
随着互联网的快速发展,大数据已经成为了当今社会最热门的话题之一。那么,到底什么是大数据呢?首先,我们需要明确大数据的定义。大数据是指数据量极大、类型繁多、处理难度高的数...【详细内容】
2024-01-30    简易百科  Tags:大数据   点击:(40)  评论:(0)  加入收藏
数据采集新篇章:AI与大模型的融合应用
开篇在AIGC(人工智能与通用计算)应用中,大型语言模型(LLM)占据着举足轻重的地位。这些模型,如GPT和BERT系列,通过处理和分析庞大的数据集,已经极大地推动了自然语言理解和生成的边界...【详细内容】
2024-01-17  崔皓  51CTO  Tags:数据采集   点击:(53)  评论:(0)  加入收藏
挑战 Spark 和 Flink?大数据技术栈的突围和战争
十年的轮回,正如大数据的发展一般,它既是一个轮回的结束,也是崭新的起点。大数据在过去的二十年中蓬勃发展,从无到有,崛起为最具爆炸性的技术领域之一,逐渐演变成为每个企业不可或...【详细内容】
2024-01-17  InfoQ    Tags:大数据   点击:(40)  评论:(0)  加入收藏
分布式存储系统在大数据处理中扮演着怎样的角色?
如果存储节点本身可以定制,则通常会让其支持部分计算能力,以利用数据的亲和性,将部分计算下推到相关的存储节点上。如果存储是云上的 S3 等对象存储,无法定制,则通常会将数据在计...【详细内容】
2023-12-19  木鸟杂记  微信公众号  Tags:大数据   点击:(49)  评论:(0)  加入收藏
大数据如何实时拯救生命:车联网的数据分析有助预防交通事故
译者 | 李睿审校 | 重楼车联网(IoV)是汽车行业与物联网相结合的产物。预计车联网数据规模将越来越大,尤其是当电动汽车成为汽车市场新的增长引擎。问题是:用户的数据平台准备...【详细内容】
2023-12-19    51CTO  Tags:大数据   点击:(43)  评论:(0)  加入收藏
利用生成对抗网络进行匿名化数据处理
在互联网时代,数据日益成为人们的生产资料。然而,在某些情况下,我们需要分享数据,但又需要保护个人隐私。这时,匿名化技术就显得尤为重要。本文将介绍利用生成对抗网络进行匿名化...【详细内容】
2023-12-18  技巧达人小影    Tags:数据处理   点击:(57)  评论:(0)  加入收藏
盘点那些常见的数据中心类型,你知道几个?
在数字化潮流的浪潮下,数据中心如同企业的神经系统,关系到业务的稳健运转。而在这个巨大的网络中,各种数据中心类型如雨后春笋般崭露头角。从企业级的个性至云数据中心的虚拟化...【详细内容】
2023-12-07  数据中心之家  微信公众号  Tags:数据中心   点击:(71)  评论:(0)  加入收藏
数据中心的七个关键特征
随着信息技术的不断演进,数据中心的可靠性、可扩展性、高效性、安全性、灵活性、管理性和可持续性成为业界探讨的焦点。下面让我们一同深入剖析这些关键特征,了解它们是如何影...【详细内容】
2023-12-06  数据中心之家  微信公众号  Tags:数据   点击:(65)  评论:(0)  加入收藏
什么是数据解析?将数据转化为更好的决策
什么是数据解析?数据解析是一门专注于从数据中获取洞察力的学科。它包含数据分析(data analysis)和管理的流程、工具和技术,包括数据的收集、组织和存储。数据解析的主要目的是...【详细内容】
2023-12-06  计算机世界    Tags:数据解析   点击:(67)  评论:(0)  加入收藏
站内最新
站内热门
站内头条