年、月、日でパーティション化された外部テーブルがハイブにあります。だから私は1つのパーティションを落としましたが、私はまだショーパーティションでそれを見ます。パーティションが外部テーブルのためにドロップされても、ハイブで表示されています
>use test_raw_tables;
>show partitions test1_raw;
[year=2016/month=01/day=01]
[year=2017/month=03/day=24]
> alter table test1_raw drop partition (year=2016, month=01, day=01);
> refresh test1_raw;
> show partitions test1_raw;
[year=2016/month=01/day=01]
[year=2017/month=03/day=24] ---Still see the dropped partition here----
> msck repair table test1_raw;
> show partitions test1_raw;
[year=2016/month=01/day=01]
[year=2017/month=03/day=24] ---Still see the dropped partition here----
エンジンとしてハイブを搭載したimpalaから実行しています。
はtest1_raw COL_NAME、DATA_TYPE、コメント( 'amount_hold'、 'INT'、 '')( 'ID'、 'INT'、 '')( 'TRANSACTION_ID'、 '文字列'、 '')を説明します( '年'、 '文字列'、 '')( '月'、 '文字列'、 '')( '日'、 '文字列'、 '')( ' '、' None '、' None ')('#パーティション情報 '、None、None)('#col_name '、' data_type '、' comment ' )( '月'、 '文字列'、 '')( '日'、 '文字列'、 '') 場所 'HDFS:// localhostの/ SYS/datalake /テスト/ test1_raw'
は何ですかここの問題? hdfsのデータは、そのパーティションを削除した後に削除されます。問題を理解できません。
** **テーブルの定義**(2)**をコードの実行場所から追加してください。インパラ - シェル?ハイブ?ビーライン? –
@DuduMarkovitzテーブルは外部テーブルです。 hiveシェルからクエリを実行しています。 –
'refresh'はImpalaコマンドであり、ハイブではありません。関連するパーティション定義を含め、テーブル定義だけでなく、どこから実行しているのかを知る必要があります。ファイルシステムでパスがどのように見えるかを教えてください。 –