zoukankan      html  css  js  c++  java
  • hive 外部表 内部表 添加新字段忘了加cascade 导致 旧分区的新字段数据为null问题解决

    -- 外部表的情况:
    --不管有没有加cascade字段,新写的分区数据中都会显示新加字段的值。
    --针对于旧分区,如果加了cascade,那么覆写旧分区的数据后,新字段可以直接select出来。
    -- 如果不加cascade,覆写旧分区的数据后,新字段仍然是null,
    -- 解决办法1:需要对以前的旧分区执行drop分区然后“add分区或者msck repair”后,才可以select出来。(推荐这种)
    -- 解决办法2:需要对以前的旧分区执行alter table tb_name partition (dt=...) add columns(new_field string)后,才可以select出来。(不推荐这种,因为,如果添加多个字段且都没有指定cascade,那么必须将所有字段都add columns操作,才能看到正确的数据。如果只添加某一个字段(比如最后一个字段),那么实际select出来后,显示出来的是按照desc table顺序的第一个新字段,这里比较迷惑人。所以还是不如第一种解决办法一步到位)

    -- 内部表的情况:
    --不管有没有加cascade字段,新写的分区数据中都会显示新加字段的值。
    --针对于旧分区,如果加了cascade,那么覆写旧分区的数据后,新字段可以直接select出来。
    -- 如果不加cascade,覆写旧分区的数据后,新字段仍然是null,
    -- 解决办法:需要对以前的旧分区执行alter table tb_name partition (dt=...) add columns(new_field string)后,才可以select出来。千万不能drop partition,因为是内部表,会直接删除数据的。

  • 相关阅读:
    矩阵按键转化为普通单个按键
    表达式位长 对结果的影响
    LuoguP3674 小清新人渣的本愿 && BZOJ4810: [Ynoi2017]由乃的玉米田
    BZOJ2956: 模积和
    NOIP2016 天天爱跑步
    LuoguP3948 数据结构
    AT2442 フェーン現象 (Foehn Phenomena)
    博客园美化笔记
    BZOJ2242: [SDOI2011]计算器
    分块入门与分块的经典应用
  • 原文地址:https://www.cnblogs.com/cnblogszs/p/14320804.html
Copyright © 2011-2022 走看看