日付カラムの1つにパーティションが存在するハイブテーブルがありますが、日付カラムはYYYYMMDDの形式でINTとして保存されます。この表には、将来の日付パーティション用のデータも含まれます。HIVEテーブルから動的にパーティションを削除
ここで、私はusture days(処理日に座っている)にfuingしているパーティションを削除したいと考えています。
だから私は
ALTER TABLE TABLE1 DROP IF EXISTS PARTITION (TBL_DATE >= CAST(REGEXP_REPLACE(CAST(DATE_SUB(TO_DATE('${load_date}'),1) AS STRING),'-','') AS INT));
の下に使用しようとしていますが、日付値と
ALTER TABLE TABLE1 DROP IF EXISTS PARTITION (TBL_DATE >= CAST(REGEXP_REPLACE(CAST(DATE_SUB(TO_DATE('2016-09-11'),1) AS STRING),'-','') AS INT));
を意味しかし、それは失敗しています。私はそれが正常に動作している、ALTER TABLE TABLE1 DROP IF EXISTS PARTITION (TBL_DATE >= 20160910)
ように私のドロップパーティションを書いていたとき
クエリの出力はCAST(REGEXP_REPLACE(CAST(DATE_SUB(TO_DATE('2016-09-11'),1) AS STRING),'-','') AS INT) => 20160910
です。
私の入力は日付形式YYYY-MM-DDのみであり、入力日付-1を与えたすべてのパーティションを削除したとします。上記の声明を働かせる方法。