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