hive 怎么调整分桶数

1)先把原来的表结构给查询出来

show create  table `stg.stg_cccc_pm_pj_position_i_d`;
create  table `stg.stg_cccc_pm_pj_position_i_d`(
  `id` string DEFAULT NULL COMMENT '主键', 
  `flag` string DEFAULT NULL COMMENT '数据状态标识'
)
comment '项目管理_工程部位'
partitioned by (etl_date string comment '分区字段')
clustered by (id) into 3 buckets 
stored as orc;

2)在原来的表名上添加_tmp后缀

create  table `stg.stg_cccc_pm_pj_position_i_d_tmp`(
  `id` string DEFAULT NULL COMMENT '主键', 
  `flag` string DEFAULT NULL COMMENT '数据状态标识'
)
comment '项目管理_工程部位'
partitioned by (etl_date string comment '分区字段')
clustered by (id) into 3 buckets 
stored as orc;

3)从旧表中查询数据,装载到新表

# 开启动态分区
set hive.exec.dynamic.partition=true; 
set hive.exec.dynamic.partition.mode=nonstrict;

insert into stg.stg_cccc_pm_pj_position_i_d_tmp partition(etl_date)
select * from stg.stg_cccc_pm_pj_position_i_d;

4)删除旧表

drop table stg.stg_cccc_pm_pj_position_i_d;

5)把_tmp后缀名给去掉

alter table stg.stg_cccc_pm_pj_position_i_d_tmp  rename to stg.stg_cccc_pm_pj_position_i_d ;

6)瞧一眼数据

select * from stg.stg_cccc_pm_pj_position_i_d
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值