Учебники

HCatalog — Alter Table

В этой главе объясняется, как изменить атрибуты таблицы, например изменить имя таблицы, изменить имена столбцов, добавить столбцы и удалить или заменить столбцы.

Изменить таблицу

Вы можете использовать инструкцию 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 ...])

Некоторые из сценариев описаны ниже.

Переименовать в … Заявление

Следующий запрос переименовывает таблицу из сотрудника в emp .

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

Изменить заявление

В следующей таблице приведены поля таблицы сотрудников и показаны поля, которые необходимо изменить (жирным шрифтом).

Имя поля Преобразовать из типа данных Изменить имя поля Преобразовать в тип данных
Ид ИНТ Ид ИНТ
название строка ENAME строка
оплата труда терка оплата труда двойной
обозначение строка обозначение строка

Следующие запросы переименовывают имя столбца и тип данных столбца, используя вышеуказанные данные —

./hcat –e "ALTER TABLE employee CHANGE name ename String;"
./hcat –e "ALTER TABLE employee CHANGE salary salary Double;"

Добавить столбец Заявление

Следующий запрос добавляет столбец с именем dept к таблице сотрудников .

./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. Когда вы удаляете таблицу из метастора, она удаляет данные таблицы / столбца и их метаданные. Это может быть обычная таблица (хранящаяся в metastore) или внешняя таблица (хранящаяся в локальной файловой системе); HCatalog относится к обоим одинаково, независимо от их типа.

Синтаксис выглядит следующим образом —

DROP TABLE [IF EXISTS] table_name;

Следующий запрос удаляет таблицу с именем employee

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

При успешном выполнении запроса вы увидите следующий ответ: