HCatalog-テーブルの変更
この章では、テーブル名の変更、列名の変更、列の追加、列の削除または置換など、テーブルの属性を変更する方法について説明します。
テーブルステートメントの変更
ALTER TABLEステートメントを使用して、Hiveのテーブルを変更できます。
構文
このステートメントは、テーブルで変更する属性に基づいて、次の構文のいずれかを取ります。
ALTER TABLE name RENAME TO new_name
ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])
ALTER TABLE name DROP [COLUMN] column_name
ALTER TABLE name CHANGE column_name new_name new_type
ALTER TABLE name REPLACE COLUMNS (col_spec[, col_spec ...])
いくつかのシナリオを以下に説明します。
名前の変更…ステートメント
次のクエリは、テーブルの名前を employee に emp。
./hcat –e "ALTER TABLE employee RENAME TO emp;"
変更ステートメント
次の表には、 employee 表に、変更するフィールドが表示されます(太字)。
フィールド名 | データ型から変換 | フィールド名を変更する | データ型に変換 |
---|---|---|---|
eid | int | eid | int |
名前 | ストリング | エナメ | ストリング |
給料 | 浮く | 給料 | ダブル |
指定 | ストリング | 指定 | ストリング |
次のクエリは、上記のデータを使用して列名と列データ型の名前を変更します-
./hcat –e "ALTER TABLE employee CHANGE name ename String;"
./hcat –e "ALTER TABLE employee CHANGE salary salary Double;"
列ステートメントの追加
次のクエリは、という名前の列を追加します dept に employee テーブル。
./hcat –e "ALTER TABLE employee ADD COLUMNS (dept STRING COMMENT 'Department name');"
ステートメントを置き換える
次のクエリは、からすべての列を削除します employee テーブルとそれを置き換えます emp そして name 列-
./hcat – e "ALTER TABLE employee REPLACE COLUMNS ( eid INT empid Int, ename STRING name String);"
ドロップテーブルステートメント
この章では、HCatalogにテーブルをドロップする方法について説明します。メタストアからテーブルを削除すると、テーブル/列のデータとそのメタデータが削除されます。通常のテーブル(メタストアに格納されている)または外部テーブル(ローカルファイルシステムに格納されている)の場合があります。HCatalogは、タイプに関係なく、両方を同じように扱います。
構文は次のとおりです-
DROP TABLE [IF EXISTS] table_name;
次のクエリは、という名前のテーブルを削除します employee −
./hcat –e "DROP TABLE IF EXISTS employee;"
クエリが正常に実行されると、次の応答が表示されます-
OK
Time taken: 5.3 seconds