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