一、执行hive分区表添加字段命令(背景)
alter table db_name.staging_user_log_minutes
add columns(
`ext_main_business_line` string COMMENT '主业务线'
) cascade;
因为历史分区量太大,所以执行命令花了很长的时间,正好又有新的调度任务写入新分区,导致有的分区没有添加上新的字段
二、解决问题路径(通过HIVE元数据查找)
1、通过表名 找到 TBL_ID
mysql> select * from TBLS where TBL_NAME='staging_user_log_minutes' limit 3 \G
*************************** 1. row ***************************
TBL_ID: 521582
CREATE_TIME: 1555483202
DB_ID: 86
LAST_ACCESS_TIME: 0
OWNER: pcsjob
RETENTION: 0
SD_ID: 1491906
TBL_NAME: staging_user_log_minutes
TBL_TYPE: EXTERNAL_TABLE
VIEW_EXPANDED_TEXT: NULL
VIEW_ORIGINAL_TEXT: NULL
LINK_TARGET_ID: NULL
2、通过TBL_ID 找到 SD_ID
mysql> select * from PARTITIONS where TBL_ID='521582'
and PART_NAME like 'dt=2019-05-20/hh=11%' \G
*************************** 1. row ***************************
PART_ID: 1234906
CREATE_TIME: 1558321954
LAST_ACCESS_TIME: 0
PART_NAME: dt=