Hcatalog 简明教程

HCatalog - Alter Table

本章介绍如何修改表的属性,例如更改表名、更改列名、添加列以及删除或替换列。

Alter Table Statement

您可以使用 ALTER TABLE 语句来修改 Hive 中的表。

Syntax

该语句根据我们希望在表中修改哪些属性采用以下任一语法。

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 ...])

下面介绍一些场景。

Rename To… Statement

以下查询将表 employee 重命名为 emp

./hcat –e "ALTER TABLE employee RENAME TO emp;"

Change Statement

下表包含 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;"

Add Columns Statement

以下查询向 employee 表中添加一个名为 dept 的列。

./hcat –e "ALTER TABLE employee ADD COLUMNS (dept STRING COMMENT 'Department name');"

Replace Statement

以下查询从 employee 表中删除所有列,并用 empname 列替换它们 −

./hcat – e "ALTER TABLE employee REPLACE COLUMNS ( eid INT empid Int, ename STRING name String);"

Drop Table Statement

本章介绍如何在 HCatalog 中删除表。当您从元存储中删除表时,它会删除表/列数据及其元数据。它可以是普通表(存储在元存储中)或外部表(存储在本地文件系统中);无论类型如何,HCatalog 都以相同的方式处理它们。

其语法如下:

DROP TABLE [IF EXISTS] table_name;

以下查询删除名为 employee 的表格−

./hcat –e "DROP TABLE IF EXISTS employee;"

成功执行查询后,你会看到以下响应−

OK
Time taken: 5.3 seconds