设为非严格模式并关闭分区检查
-- 非严格模式
set hive.mapred.mode=nonstrict
-- 关闭分区检查
set hive.strict.checks.no.partition.filter = false
启用动态分区
set hive.exec.dynamic.partition=true;
修改字段
ALTER TABLE hll_ods.表名 CHANGE
字段名 字段名 类型
CASCADE;
新增字段
ALTER TABLE hll_ods.db_ltl__zs_driver_orders_tm ADD COLUMNS(
字段名 类型 COMMENT '注释',
) CASCADE;
删除表
-- 查看分区
show partitions hll_ods.表名
-- 依次删除分区
alter table hll_ods.表名 drop partition(dt = '分区名')
-- 修改为内部表
ALTER TABLE hll_ods.表名 SET TBLPROPERTIES('EXTERNAL'='False');
-- 删除表
drop table hll_ods.表名
表重命名
alter table hll_ods.旧表名 rename to hll_ods.新表名
表备份
-- 复制分区表结构
create table hll_temp.备份表名 like hll_ods.源表名
-- 修改为外部表
ALTER TABLE hll_temp.备份表名 SET TBLPROPERTIES('EXTERNAL'='TRUE');
-- 装载数据并动态分区
insert overwrite table hll_temp.备份表名 partition(dt)
select * from hll_ods.源表名
-- 查看分区
show partitions hll_temp.备份表名
-- 校验数据量
select count(*) from hll_temp.备份表名
union all
select count(*) from hll_ods.源表名
网友评论