Hive基础知识(三)--分桶表

1、分桶表

分桶和分区一样,也是一种通过改变表的存储模式,从而完成对表优化的一种调优方式,但和分区不同的是,分区是将表拆分到不同的子目录中进行存储,而分桶是将表拆分到不同文件中进行存储。
Hive基础知识(三)--分桶表_第1张图片

2、分桶操作目的

改变数据的存储分布,提升查询、取样、Join等特定任务的执行效率。

3、分桶表的操作

CREATE [EXTERNAL] TABLE <table_name>
(<col_name> <data_type> [, <col_name> <data_type> ...])]
[PARTITIONED BY ...]
CLUSTERED BY (<col_name>)
[SORTED BY (<col_name> [ASC|DESC] [, <col_name> [ASC|DESC]...])]
INTO <num_buckets> BUCKETS
[ROW FORMAT <row_format>]
[LOCATION '']
[TBLPROPERTIES (''='', ...)];
  • 创建表
drop table if exists tbl_buckets;
create table tbl_buckets(
id int,
name string
)
clustered by(id) 
sorted by (id desc) -- 分桶时,数据默认按照分桶键升序排列
into 4 buckets
stored as textfile
;
  • 插入数据
# 首先开启分桶配置
set hive.enforce.bucketing=true;
insert into table tbl_buckets values (1,'zhangsan');
insert into table tbl_buckets values (2,'lisi');
insert into table tbl_buckets values (3,'jack');
insert into table tbl_buckets values (4,'maria');
insert into table tbl_buckets values (5,'tom');
insert into table tbl_buckets values (6,'hendry');

Hive基础知识(三)--分桶表_第2张图片

你可能感兴趣的:(hive,hive)