2016-11-03 3 views
0

HiveはHDFS上で実行されます。デフォルトの保存先はHDFS内の '/ user/hive/warehouse'です。 Hiveではテーブルと 'ALTER'を作成できます。表の変更には、テーブル内の既存の列を削除/変更することが含まれます(HDFSのどこかにある!!!)。 HDFSに書き込まれたものは変更できません。しかし、ハイブの変更は同じことをしています。そんなことがあるものか?何か案が!Hiveはどのようにしてalter tableを許可していますか? HDFSのWrite Once Read Manyに違反していないか

答えて

1

データ自体ではなく、テーブルのメタデータのみを変更します。

また、ハイブにdrop columnという指令がないことに注意してください。

+0

ドロップ列はありませんが、外部表を削除/作成する可能性があります。テキストファイル上に構築されたテーブルから最後の列を削除することができます。 – leftjoin

+0

本当ですが、それはすべてのファイルを処理し、新しい変更されたテーブルをどこかに保存する必要があります...ハイブがHDFSの一度だけの書き込みポリシーに違反しない方法でしたか? –

+0

いいえ、これはファイル処理なしでも機能します。これらの列が最後(リストの最後)の場合、テーブルは削除された列を読み込みません。 – leftjoin

関連する問題