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