Hive抽样查询(桶表)

文章介绍了在Hive中为了提高抽样效率而使用的桶表结构,桶表类似于分区表,通过clusteredby和sortedby将数据分块并加速查询。强制分桶可以通过设置enforce.bucketing参数。此外,文章还展示了如何使用tablesample函数进行数据抽样,包括按行数和按桶比例抽样。
摘要由CSDN通过智能技术生成

1.抽样的结构

桶表bucket

为了抽样而设计的结构(为了让抽样更快)

桶表非常类似于分区表(将一块数据分成多块(也能提升查询速度))基于抽样分块 提升抽样速度

(分区表基于字段分区)

强行分桶

set hive.enforce.bucketing=true

2

create table t1(
id int,
name string,
age int
) clustered by (id) sorted by(id) into 8 buckets
row format delimited fields terminated by ',';

sorted by(id) 排序

导入数据

create table t2(
id int,
name string,
age int
)
load data inpath ... into table t2



insert into table t1 select * from t2
hash(id) % 8

2.抽样的函数

tablesample()

select * from t1 tablesample(10 rows)
select * from t1 tablesample(bucket 2 out of 4)

select * from t1 tablesample(bucket 2 #不要超过总桶数 out of 4 #桶的因数 倍数 )

1 2 3 4 5 6 7 8

抽到2跟6

/***
 *             ,%%%%%%%%,
 *           ,%%/\%%%%/\%%
 *          ,%%%\c "" J/%%%
 * %.       %%%%/ o  o \%%%
 * `%%.     %%%%    _  |%%%
 *  `%%     `%%%%(__Y__)%%'
 *  //       ;%%%%`\-/%%%'
 * ((       /  `%%%%%%%'
 *  \\    .'          |
 *   \\  /       \  | |
 *    \\/         ) | |
 *     \         /_ | |__
 *     (___________))))))) 攻城湿
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸷鸟之不群

你的鼓励将是我最大的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值