HIVE分区表添加字段cascade 执行时间过长出现bug

本文介绍了在HIVE中为分区表添加字段时遇到执行时间过长的问题,详细解析了解决该问题的步骤,包括通过HIVE元数据的TBL_ID, SD_ID, CD_ID来追踪分区并检查新字段的添加状况。" 103298564,9118154,JavaScript 实现文本框内容改变事件及卡片选项,"['前端开发', 'JavaScript', '事件处理', 'HTML', '卡片组件']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、执行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=2019-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值