domingo, 7 de julho de 2019

Diferença de Tabelas gerenciadas e Tabelas externas no Apache Hive


Conforme conhecemos, o Hive é um excelente sumarizador de dados utilizado em projetos Big Data, para efetuar a estruturação da base, manipulações das informações e integrações com outras ferramentas e linguagens. Assim para se atender o conceito relacional, necessitamos a definição de tabelas e para atender esse requisito o Apache Hive possui 2 modelos de tabelas:

  1. TABELAS GERENCIADAS.
  2. TABELAS EXTERNAS.


Tabela Gerenciada

CREATE TABLE

  • O arquivo de dados deve estar localizado no repositório padrão: HDFS. 
  • Cria os arquivos de dados na tabela da pasta /apps/hive/warehouse/ e/ou do banco de dados que também está nesta pasta.
  • Toda alteração na tabela influencia os dados no HDFS

 OBS.: Podemos criar uma tabela gerenciada em uma pasta diferente da warehouse com o uso do comando LOCATION.

Modelo de tabela gerenciada:

create table nomedobanco.nomedatabela(
  campo1  string,
  campo2  int
) stored as text; --definição do formato


Tabela Externa
CREATE EXTERNAL TABLE
  • Cria uma tabela externa (não está na pasta /apps/hive/warehouse/). 
  • Qualquer comando de alteração nas tabelas não influência os dados.
  • O arquivo de dados pode ser localizado fora do contêiner padrão, ou seja, os arquivos de dados podem estar no Blob Storage ou no Datalake Store em outros endereços. 
  • Deve ser definida a pasta dos arquivos de dados na instrução LOCATION.
Modelo de tabela gerenciada:

create table nomedobanco.nomedatabelaexterna(
  campo1  string,
  campo2  int
) row format delimited fields terminated by '|' --definição do delimitador
stored as textfile                                               --definição do formato
location '/diretorio/hdfs';                                  --definição do diretório



Em caso de dúvidas ou sugestões, escreva nos comentários ou nos mande um email: slothbigdata@gmail.com.


Nenhum comentário:

Postar um comentário