天天看點

在已有的hive表新增一列,但是已有分區資料顯示為null一、造成hive查詢為null的原因是?總結:

在已有的hive表新增一列,然後對新增列之前的分區寫入資料,hive查詢該列全是null,但presto查詢是有資料的

  • 一、造成hive查詢為null的原因是?
  • 總結:

一、造成hive查詢為null的原因是?

原因是修改Hive分區表結構以後,中繼資料庫中的SDS中該表對應的CD_ID會改變,但是該表分區下面對應的CD_ID還是原來表的CD_ID。SDS表主要儲存檔案存儲的基本資訊,如INPUT_FORMAT、OUTPUT_FORMAT、是否壓縮等。

參考https://blog.csdn.net/gxd520/article/details/92791487?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.not_use_machine_learn_pai&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.not_use_machine_learn_pai

總結:

通常對已有的hive表增加一列,可以這樣操作:

  1. 如果不需要補曆史分區的資料,則可以直接新增一列
  2. 如果需要對新增列補曆史分區資料,則建議将表資料備份,重建表結構,然後把資料導入到新表