В этой главе объясняется, как изменить атрибуты таблицы, например изменить имя таблицы, изменить имена столбцов, добавить столбцы и удалить или заменить столбцы.
Изменить таблицу
Вы можете использовать инструкцию 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;"
При успешном выполнении запроса вы увидите следующий ответ: