HCatalog - Изменить стол

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

Alter Table Statement

Вы можете использовать оператор 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 таблица и показывает поля, которые нужно изменить (жирным шрифтом).

Имя поля Преобразовать из типа данных Изменить имя поля Преобразовать в тип данных
Ид int Ид 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 table и заменяет его на emp и name столбцы -

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

Оператор Drop Table

В этой главе описывается, как удалить таблицу в HCatalog. Когда вы удаляете таблицу из хранилища метаданных, она удаляет данные таблицы / столбца и их метаданные. Это может быть обычная таблица (хранящаяся в хранилище метаданных) или внешняя таблица (хранимая в локальной файловой системе); HCatalog обращается с обоими одинаковыми способами, независимо от их типа.

Синтаксис следующий -

DROP TABLE [IF EXISTS] table_name;

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

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

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

OK
Time taken: 5.3 seconds