hive分桶表bucketed table分桶字段选择与个数确定
为什么分桶
(1)获得更高的查询处理效率。桶为表加上了额外的结构,Hive 在处理有些查询时能利用这个结构。具体而言,连接两个在(包含连接列的)相同列上划分了桶的表,可以使用 Map 端连接 (Map-side join)高效的实现。比如JOIN操作。对于JOIN操作两个表有一个相同的列,如果对这两个表都进行了桶操作。那么将保存相同列值的桶进行JOIN操作就可以,可以大大较少JOIN的数据量。
(2)提升采样(sampling)效率;
什么时候分桶
需要Map-side join 和 sampling时
选什么字段分桶
1.int类型字段比较友好
2.取hash后各分区块数据量比较均匀的字段
3.join的连接字段
当join连接的字段值取hash不够均匀时,多取一个其它字段作为分桶字段;
分桶公式:
bucket num = hash_function(bucketing_column) mod num_buckets
列的值做哈希取余 决定数据应该存储到哪个桶
设置多少个 INTO 个数 BUCKETS
当数据量够大时设置为约等于≈128M的倍数
当数据量不够大时考虑,计算的并行度(比如129MB设置2 或者4 )
bucket个数会决定在该表或者该表的分区对应的hdfs目录下生成对应个数的文件,而mapreduce的个数是根据文件块的个数据确定的map个数。
hive分桶表bucketed table分桶字段选择与个数确定的更多相关文章
- 第2节 hive基本操作:11、hive当中的分桶表以及修改表删除表数据加载数据导出等
		
分桶表 将数据按照指定的字段进行分成多个桶中去,说白了就是将数据按照字段进行划分,可以将数据按照字段划分到多个文件当中去 开启hive的桶表功能 set hive.enforce.bucketing= ...
 - Hive 学习之路(五)——  Hive 分区表和分桶表
		
一.分区表 1.1 概念 Hive中的表对应为HDFS上的指定目录,在查询数据时候,默认会对全表进行扫描,这样时间和性能的消耗都非常大. 分区为HDFS上表目录的子目录,数据按照分区存储在子目录中.如 ...
 - Hive 系列(五)—— Hive 分区表和分桶表
		
一.分区表 1.1 概念 Hive 中的表对应为 HDFS 上的指定目录,在查询数据时候,默认会对全表进行扫描,这样时间和性能的消耗都非常大. 分区为 HDFS 上表目录的子目录,数据按照分区存储在子 ...
 - Hive 教程(四)-分区表与分桶表
		
在 hive 中分区表是很常用的,分桶表可能没那么常用,本文主讲分区表. 概念 分区表 在 hive 中,表是可以分区的,hive 表的每个区其实是对应 hdfs 上的一个文件夹: 可以通过多层文件夹 ...
 - 入门大数据---Hive分区表和分桶表
		
一.分区表 1.1 概念 Hive 中的表对应为 HDFS 上的指定目录,在查询数据时候,默认会对全表进行扫描,这样时间和性能的消耗都非常大. 分区为 HDFS 上表目录的子目录,数据按照分区存储在子 ...
 - Hive(六)【分区表、分桶表】
		
目录 一.分区表 1.本质 2.创建分区表 3.加载数据到分区表 4.查看分区 5.增加分区 6.删除分区 7.二级分区 8.分区表和元数据对应得三种方式 9.动态分区 二.分桶表 1.创建分桶表 2 ...
 - 大数据学习----day27----hive02------1.  分桶表以及分桶抽样查询 2. 导出数据 3.Hive数据类型  4 逐行运算查询基本语法(group by用法,原理补充) 5.case when(练习题,多表关联)6 排序
		
1. 分桶表以及分桶抽样查询 1.1 分桶表 对Hive(Inceptor)表分桶可以将表中记录按分桶键(某个字段对应的的值)的哈希值分散进多个文件中,这些小文件称为桶. 如要按照name属性分为3个 ...
 - 分区表,桶表,外部表,以及hive一些命令行小工具
		
hive中的表与hdfs中的文件通过metastore关联起来的.Hive的数据模型:内部表,分区表,外部表,桶表受控表(managed table):包括内部表,分区表,桶表 内部表: 我们删除表的 ...
 - hive桶表好处
		
对于每一个表(table)或者分区, Hive可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分.Hive也是针对某一列进行桶的组织.Hive采用对列值哈希,然后除以桶的个数求余的方式决定该条记 ...
 
随机推荐
- 关于svn服务部署方案
			
本文只记录我的笔记 首先, 我是个懒人, 写好了shell, 直接上传把 安装包:SvnPackages-chenglee 第一, 无非就是搞掂依赖这一块 #********************* ...
 - POJ 3301:Texas Trip(计算几何+三分)
			
http://poj.org/problem?id=3301 题意:在二维平面上有n个点,每个点有一个坐标,问需要的正方形最小面积是多少可以覆盖所有的点. 思路:从第二个样例可以看出,将正方形旋转45 ...
 - html select 可输入 可编辑
			
<HTML> <HEAD> <META http-equiv='Content-Type' content='text/html; charset=gb2312'> ...
 - ffmpeg+nginx将rtsp转为rtmp
			
一.安装ffmpeg 1.http://ffmpeg.org/download.html下载地址,选择合适的操作系统版本下载,因为我的操作系统是centos7,所以下面的安装都是命令都是针对cento ...
 - 对http请求进行过滤处理,转换成接收着需要的格式
			
需要在Global.asax的Application中进行初始化处理 这样:GlobalConfiguration.Configuration.MessageHandlers.Add(new Defa ...
 - PipelineDB Install and Test
			
Installation Prerequisites: CentOS Linux release 7.2.1511 (Core) Download [root@citus1 ~]# wget http ...
 - Shiro authentication for Apache Zeppelin
			
Overview Apache Shiro is a powerful and easy-to-use Java security framework that performs authentica ...
 - sudo ln -sf libhiredis.so.0.10 libhiredis.so.0
			
which ldconfig sudo ln -sf libhiredis.so.0.10 libhiredis.so.0
 - 在 .h 和 cpp 中查找  :grep  consume  ~/test/2016/AMQP-CPP/**/*.cpp  ~/test/2016/AMQP-CPP/**/*.h  -r
			
:grep consume ~/test/2016/AMQP-CPP/**/*.cpp ~/test/2016/AMQP-CPP/**/*.h -r -w "whole" 匹配整个 ...
 - SpringBoot学习笔记2
			
九:创建父工程 注意:打包方式选择为pom 将创建SpringBoot常用的依赖和插件放在父工程的pom.xml,如下: <project xmlns="http://maven.ap ...