八、Hive中的分桶
分区:将文件切割成多个子目录
select * from partition(k=v) ;//减少数据量
分桶:将文件切割成多个小文件
采集数据,按照桶采集 //减少数据量
桶中数据的join操作,效率更高 //减少数据量
原理:
MR中:按照key的hash值对reducetask个数求模
Hive中:按照分桶字段的hash值对分桶的个数求模
分桶:
方便抽样(采用数据)
提高join的查询效率
案例:
1. 创建表,设置分桶字段
create table cluster_tb(id int ,name string)
clustered by(id) into 4 buckets
row format delimited fields terminated by ‘,’;
创建普通表:
create table cluster_tb2(id int ,name string)
row format delimited fields terminated by ‘,’;
load data local i服务器托管网npath ‘/home/zhangsan/cluste服务器托管网r.txt’ into table cluster_tb2;
2. 配置属性
set hive.enforce.bucketing=true
set mapreduce.job.reduces=-1
3. 使用子查询的方式,将数据添加到cluster_tb中
insert into table cluster_tb
select id,name from cluster_tb2 cluster by(id);
数据的采集:
select * from tbName tablesample (bucket startNum out of sizeNum on colName)
//从startNum开始抽取数据,采取bucketSize/sizeNum的数据
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
Go语言中的上下文(Context)是一种用于在 Goroutines 之间传递取消信号、截止时间和其他请求范围值的标准方式。context 包提供了 Context 类型和一些相关的函数,用于在并发程序中有效地传递上下文信息。 在Go语言中,上下文通常用于以…