1. 源表建立
Create external table 源表(
字段 类型,
字段 类型,
id int comment '分桶字段'
)row format delimited
Fields terminated by ','
Location '上传的表存放的路径';
2. 创建分桶表
Create external table 源表(
字段 类型,
字段 类型,
id int comment '分桶字段'
)
clustered by (分桶列名id) sorted by (列1 , 列2) into n(桶数) buckets
row format delimited
Fields terminated by ','
Location '上传的表存放的路径';
加载数据:
load data local inpath 'linux文件地址' into table 分桶表名;
load data inpath 'HDFS文件地址' into table 分桶表名;
insert into 分桶表名 select ... from 源表 where 条件;
3. 分桶表的多表关联
select * from bucket_1 b1 join bucket_2 b2 on b1.分桶字段=b2.分桶字段
两张分桶表关联,其各自分桶的列必须是可作连接条件的列;
分桶的个数之间相除为整数:N1/N2=整数;
4. 分桶分区表
4.1 创建分桶分区源表
Create external table 源表(
字段 类型,
字段 类型,
列1 int comment '分桶字段1',
列2 int comment '分桶字段2',
dt date comment '分区字段'
)row format delimited
Fields terminated by ','
Location '上传的表存放的路径';
4.2 创建分桶分区表
Create external table 源表(
字段 类型,
字段 类型,
列1 int comment '分桶字段1',
列2 int comment '分桶字段2'
)
partition by (dt date)
clustered by (分桶列名id) sorted by (列1 , 列2) into n(桶数) buckets
row format delimited
Fields terminated by ','
Location '上传的表存放的路径';
4.3 加载数据
insert into 分桶分区表 partition (dt分区字段)
select 分桶分区表所需字段(...列1,列2)+分区字段(dt)
from 源表;
标签:comment,分桶,int,into,Hive,table,源表
From: https://blog.csdn.net/weixin_65642229/article/details/140911876