一、Hive优化

1-1 分桶采样

  1. 当表的数据量比较庞大的时候, 在编写SQL语句后, 需要首先测试 SQL是否可以正常的执行, 需要在表中执

行查询操作, 由于表数据量比较庞大, 在测试一条SQL的时候整个运行的时间比较久, 为了提升测试效率, 可以整个表

抽样出一部分的数据, 进行测试

  1. 校验数据的可行性(质量校验)

  2. 进行统计分析的时候, 并不需要统计出具体的指标, 可能统计的都是一些相对性指标, 比如说一些比率(合

格率)问题, 此时可以通过采样处理

tablesample ( bucket x out of y [on column|rand()])
分桶采样
use itcast;
create table tb_test(
    id int,
    name string
)
row format delimited fields terminated by ',';
insert into tb_test values
                        (1,'张三'),
                        (2,'李四'),
                        (3,'沙和尚'),
                        (4,'唐僧'),
                        (5,'孙悟空'),
                        (6,'猪八戒');
​
​
​
-- 分桶表
create table tb_test_buckets(
    id int,
    name string
)clustered by(id) into 6 buckets
row format delimited fields terminated by ',';
insert into tb_test_buckets values
                        (1,'张三'),
                        (2,'李四'),
                        (3,'沙和尚'),
                        (4,'唐僧'),
                        (5,'孙悟空'),
                        (6,'猪八戒');
                   
​

分桶表

取值数量 = 分桶数/y值

x值决定从哪个分桶文件开始取值


未分桶表

1-按字段分桶 hash(字段)%y值=余数 相同余数放在一起

2-按照x值找余数对应的值 x=1 就找第一个余数 0 x=2 找第二个余数 1 x=3 找第三个余数 2

1-2 Join优化

在表关联时,因为关联字段的原因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值