Hcatalog-alter-table
提供:Dev Guides
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 テーブルのフィールドが含まれており、変更するフィールドを太字で示しています。
Field Name | Convert from Data Type | Change Field Name | Convert to Data Type |
---|---|---|---|
eid | int | eid | int |
name | String | ename | String |
salary | Float | salary | Double |
designation | String | designation | String |
次のクエリは、上記のデータを使用して列名と列データ型の名前を変更します-
./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