如何刪除hive表格的分區


今天的一個業務場景就是要把三年的數據從第一天不停的融合起來,每一天作為表格一個新的分區。由於空間有限,數據量很大,可能每天數據都是幾十個G的大小。所以我需要做的一點就是在融合這一天之后,刪除一天的分區數據,為了保險起見,我刪除這一天的前三天的數據。

大致代碼是這樣的

function shan(){
cat <<EOF
ALTER TABLE table_name DROP PARTITION (dt='$san');
EOF
}

first=20160706
second=20190310

while [ "$first" -le "$second" ]
do
    zhong=`date -d "1 days ago ${first}" +%Y%m%d`
    hive -e "`merge`" #這行代碼就是在生成當天的數據融合
    san=`date -d "3 days ago ${first}" +%Y%m%d`
    hive -e "`shan`" #刪除三天前的數據
    let first=`date -d "-1 days ago ${first}" +%Y%m%d`
done

當然核心代碼就是刪除分區的那個代碼

ALTER TABLE table_name DROP PARTITION (dt='$san');


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM