HCatalog - Alterar Tabela
Este capítulo explica como alterar os atributos de uma tabela, como alterar o nome da tabela, alterar os nomes das colunas, adicionar colunas e excluir ou substituir colunas.
Alterar declaração da tabela
Você pode usar a instrução ALTER TABLE para alterar uma tabela no Hive.
Sintaxe
A instrução assume qualquer uma das seguintes sintaxes com base nos atributos que desejamos modificar em uma tabela.
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 ...])
Alguns dos cenários são explicados a seguir.
Renomear para… Declaração
A consulta a seguir renomeia uma tabela de employee para emp.
./hcat –e "ALTER TABLE employee RENAME TO emp;"
Declaração de mudança
A tabela a seguir contém os campos de employee tabela e mostra os campos a serem alterados (em negrito).
Nome do Campo | Converter de tipo de dados | Alterar o nome do campo | Converter para tipo de dados |
---|---|---|---|
eid | int | eid | int |
nome | Corda | ename | Corda |
salário | Flutuador | salário | Duplo |
designação | Corda | designação | Corda |
As consultas a seguir renomeiam o nome da coluna e o tipo de dados da coluna usando os dados acima -
./hcat –e "ALTER TABLE employee CHANGE name ename String;"
./hcat –e "ALTER TABLE employee CHANGE salary salary Double;"
Adicionar declaração de colunas
A consulta a seguir adiciona uma coluna chamada dept ao employee tabela.
./hcat –e "ALTER TABLE employee ADD COLUMNS (dept STRING COMMENT 'Department name');"
Substituir Declaração
A consulta a seguir exclui todas as colunas do employee mesa e substitui-a por emp e name colunas -
./hcat – e "ALTER TABLE employee REPLACE COLUMNS ( eid INT empid Int, ename STRING name String);"
Declaração de abandono de mesa
Este capítulo descreve como eliminar uma tabela no HCatalog. Quando você remove uma tabela do metastore, ele remove os dados da tabela / coluna e seus metadados. Pode ser uma tabela normal (armazenada no metastore) ou uma tabela externa (armazenada no sistema de arquivos local); O HCatalog trata ambos da mesma maneira, independentemente dos seus tipos.
A sintaxe é a seguinte -
DROP TABLE [IF EXISTS] table_name;
A consulta a seguir elimina uma tabela chamada employee -
./hcat –e "DROP TABLE IF EXISTS employee;"
Na execução bem-sucedida da consulta, você verá a seguinte resposta -
OK
Time taken: 5.3 seconds