Tipos de tabela no Apache Hive

Conteúdo

Visão geral

  • Apache Colmeia es una herramienta imprescindible para cualquier persona interesada en la ciencia y la ingeniería de datos.
  • Aprenda sobre os diferentes tipos de tabelas Apache Hive

Introdução

Passei mais de meia década trabalhando com a pilha de tecnologia de Big Data e prestando consultoria a clientes em vários domínios. Uma coisa que percebi é a frequência com que o Hive é usado como solução de armazenamento em todos os domínios de negócios.

Você simplesmente não pode ignorar o Apache Hive quando estiver aprendendo o Apache Hadoop.

colmeia apache

Hive es parte del gran ecosistema de Hadoop que le posibilita proporcionar un esquema para grandes datos que residen en HDFS. A maioria de vocês conhecerá RDBMS e suas tabelas. Nós os usamos com tanta frequência que agora se tornou parte de nossas vidas. E aqui está a questão: as tabelas no Hive não são diferentes.

Você já se perguntou quais podem ser os diferentes tipos de mesas no Hive? É isso que discutiremos neste post!!

Tabela de conteúdo

  1. O que é Apache Hive?
  2. Tipos de tabela no Apache Hive # 1: tabelas gerenciadas
  3. Tipos de tabela no Apache Hive # 2: Tabelas externas
  4. Tabela gerenciada vs. tabela externa: qual é a diferença?
  5. Identifique o tipo de tabela Apache Hive

O que é Apache Hive?

Apache Hive é um sistema de armazenamento de dados para Apache Hadoop. Fornece acesso SQL equivalente a dados em HDFS para que o Hadoop possa ser usado como uma estrutura de warehouse. O Hive permite que você forneça estrutura sobre dados amplamente não estruturados. Depois de estabelecer a estrutura, você pode usar o Hive para consultar os dados sem conhecimento de Java ou Map Reduce.

Linguagem de consulta Hive (HQL) cuenta con una semántica y funciones similares a las de SQL estándar en la base de dados relacional para que los analistas de bases de datos experimentados puedan ingresar fácilmente a los datos.

pranchas apache colmeia

Quais são os recursos oferecidos pelo Hive?

Apache Hive oferece os seguintes recursos:

  1. Apache Hive fornece um modelo de consulta mais simples com menos codificação do que Map Reduce
  2. HQL e SQL têm uma sintaxe equivalente
  3. Oferece muitos recursos que tornam a análise fácil de usar.
  4. O tempo de resposta é geralmente muito mais rápido do que outros tipos de consultas nos mesmos enormes conjuntos de dados
  5. Apache Hive suporta execução em diferentes estruturas de computação
  6. Suporta consultas de dados ad hoc em HDFS
  7. Apache Hive oferece suporte a funções definidas pelo usuário, scripts e um formato E / S personalizado para estender sua funcionalidade.
  8. É escalonável e extensível a vários tipos de dados e conjuntos de dados maiores.
  9. Drivers JDBC e ODBC maduros permitem que muitos aplicativos extraiam dados do Hive para relatórios suaves
  10. O Hive permite que os usuários leiam dados em formatos arbitrários, usando SerDes e formatos de entrada / Saída
  11. O Hive tem uma arquitetura bem estabelecida para gerenciamento de metadados, autenticação e otimização de consulta.
  12. Existe uma grande comunidade de profissionais e desenvolvedores que trabalham e usam o Hive.

Tipos de tabela no Apache Hive

Estes são os tipos de tabelas no Apache Hive:

Tabelas gerenciadas

Em uma mesa gerenciada, O Hive gerencia os dados e o esquema da tabela. Os dados serão localizados em uma pasta com o nome da tabela dentro do armazenamento de dados Hive, que é simplesmente um local de arquivo no HDFS.

A localização é configurável pelo usuário quando o Hive é instalado. Por gerenciado ou controlado, queremos dizer que se você excluir (retirar) uma mesa gerenciada, O Hive removerá o esquema (a descrição da mesa) como os arquivos de dados associados à tabela. O local padrão é / Nome do usuário / colmeia / estoque).

Sintaxe para criar uma tabela gerenciada

CRIAR ESTOQUES DE TABELA SE NÃO EXISTIR (trocar STRING,
STRING símbolo,
price_open flutuante,
price_high flutuante,
price_low flutuante,
price_adj_close flutuante)
FORMATO DE LINHA CAMPOS DELIMITADOS POR ',' ;

Quanto a tabelas gerenciadas, você também pode copiar o esquema (mas não os dados) de uma tabela existente:

CREATE EXTERNAL TABLE IF NOT EXISTS mydb.employees3
LIKE mydb.employees
LOCATION '/path/to/data';

Tabelas Externas
uma tabela externa é uma em que a colmeia só controla o esquema da tabela. Na maioria dos casos, o usuário definirá a localização da pasta dentro do HDFS e copiará os arquivos de dados lá. este local está incluído como parte da declaração de definição da tabela. Quando uma tabela externa é excluída, colmeia só vai excluir o esquema associado à tabela. Os arquivos de dados não são afetados.

Sintaxe para criar uma tabela externa

CRIE ESTOQUES DE TABELA EXTERNA SE NÃO EXISTIREM (trocar STRING,
STRING símbolo,
price_open flutuante,
price_high flutuante,
price_low flutuante,
price_adj_close flutuante)
FORMATO DE LINHA CAMPOS DELIMITADOS POR ','
LOCATION '/data/stocks';

Tabela gerenciada vs. tabela externa: qual é a diferença?

Mesa gerenciadaMesa Externa
Hive assume que tem dados de tabelas gerenciadas.Para mesas externas, Hive presume que sim não gerenciar dados.
Se uma tabela ou partição gerenciada for excluída, os dados e metadados associados a essa tabela ou partição são excluídos.Sair da mesa não apaga os dados, mesmo que os metadados da tabela sejam removidos.
Para Tabelas gerenciadas, Colmeia armazena dados em seu diretório de armazémPara Tabelas Externas, Colmeia armazena os dados no LOCAL especificado durante a criação do mesa(geralmente não está no diretório do warehouse)
A tabela gerenciada fornece suporte ACID / ação transnacional.A tabela externa não oferece suporte para ações ACID / transacional.
Declarações: ARQUIVO, DESARQUIVAR, TRUNCAR, MERGE, CONCATENATE compatívelNão suportado.
O armazenamento em cache dos resultados da consulta é compatível (salva os resultados de uma consulta Hive executada para reutilização)Não suportado

Identifique o tipo de tabela Apache Hive

Você pode dizer se uma tabela é gerenciada ou externa usando a saída de DESCRIBE EXTENDED table name.

Perto do final da saída de informações detalhadas da tabela, você verá o seguinte para administrado mesas:

... tableType: MANAGED_TABLE)

Para externo Pranchas, você verá o seguinte:

... tableType: EXTERNAL_TABLE)

Observação: Se você omitir a palavra-chave EXTERNAL e a tabela original for externa, a nova mesa também será externa. Se você omitir EXTERNAL e a tabela original for gerenciada, também a nova mesa será gerenciada. Apesar disto, se incluir a palavra-chave EXTERNAL e a tabela original for gerenciada, a nova mesa será externa. Mesmo neste cenário, a cláusula LOCATION permanecerá opcional.

Notas finais

Neste post, aprendemos sobre o Apache Hive e seus tipos de tabela. Com sorte, você pode ter obtido uma boa visão geral dos tipos de tabela no Hive. As diferenças indicadas não são exaustivas. Sinta-se à vontade para adicionar mais na seção de comentários abaixo.

A seguir estão alguns recursos adicionais de engenharia de dados que recomendo que você explore:

Espero que tenha gostado do post. Se você tiver alguma dúvida relacionada a esta postagem, Me avise na seção de comentários abaixo.

Leitura recomendada-

https://cwiki.apache.org/confluence/display/Hive/Home

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.