Introdução à Tabela Externa na Seção
Uma tabela externa é uma tabela que descreve o esquema de metadados de arquivos externos. Fundamentalmente, existem dois tipos de quadros em quadros geridos por colmeias ou internos e em quadros externos. A principal finalidade de definir uma tabela externa é acessar e executar consultas em dados armazenados fora da colmeia. Esses arquivos de dados podem ser armazenados em outras ferramentas como Pig, Volumes de armazenamento Azure (ASV) ou qualquer localização remota HDFS. A colmeia parte do princípio de que não é proprietária dos dados dos quadros externos e, por conseguinte, não necessita de gerir os dados como nos quadros geridos ou internos. Além disso, para tabelas externas, os dados não são apagados ao deixar cair a tabela.
trabalhar e criar tabelas externas na colmeia
por omissão, na pasta de tabelas de colmeias é criado sob a pasta de bases de dados. A exceção é a base de dados padrão. O usuário de localização / Colmeia / armazém não tem um diretório para que as tabelas de banco de dados padrão terá seu diretório criado diretamente sob este local. Recomenda-se a criação de tabelas externas se não quisermos usar a localização padrão.
Iniciar Sua Livre de Dados do Curso de Ciência
Hadoop, de Ciência de Dados, Estatísticas de & outros
Uma tabela externa é geralmente utilizado quando os dados são localizados fora do Ramo.
vamos criar uma tabela externa usando a palavra-chave “externo” com o comando abaixo.
CREATE EXTERNAL TABLE if not exists students
(
Roll_id Int,
Class Int,
Name String,
Rank Int)
Row format delimited fields terminated by ‘,’
Location ‘/data/students_details’;
Saída:
Uma tabela externa também pode ser criado copiando o esquema e os dados de uma tabela existente, com o comando abaixo:
CREATE EXTERNAL TABLE if not exists students_v2 LIKE students
Location ‘/data/students_details’;
Se nós omitir o EXTERNO palavra-chave e, em seguida, a nova tabela criada será externo se a tabela base é externo. Da mesma forma, se a tabela base for gerenciada com a palavra-chave externa, a nova tabela criada será externa.
para identificar o tipo de tabela criada, pode utilizar-se a cláusula de formatação da descrição. No final da descrição pormenorizada do quadro, o tipo do quadro de saída será “quadro gerido” ou “quadro externo”.as tabelas particionadas ajudam a dividir os dados em sub-segmentos lógicos ou partições, tornando o desempenho da consulta mais eficiente. Uma tabela particionada pode ser criada como visto abaixo.
CREATE EXTERNAL TABLE if not exists students
( roll_id Int,
name String,
Rank Int)
partitioned by (class Int)
Row format delimited fields terminated by ‘\t’
Saída:
Pode Haver Casos em que a Partição ou Estrutura de Uma Tabela Externa É Alterado e, em Seguida, Usando Este Comando as Informações de Metadados Pode Ser Atualizada:
MSCK REPAIR TABLE external_table_name
1. Tabela externa particionada
ao criar uma tabela externa não particionada, a cláusula de localização é necessária. Mas para uma tabela externa particionada, não é necessário. Alterar a indicação da tabela é necessária para adicionar partições, juntamente com a cláusula de localização.
ALTER TABLE students ADD PARTITION (class =10)
Location ‘here://master_server/data/log_messages/2012/01/02’;
da colmeia v0.8.0 em diante, várias partições podem ser adicionadas na mesma consulta. Além disso, a localização de uma partição pode ser alterada por consulta abaixo, sem mover ou excluir os dados do local antigo.
ALTER TABLE students_v2 partition( class = 10)
Set location ‘s2n://buckets/students_v2/10’;
Para cancelar uma partição, abaixo consulta é usada:
ALTER TABLE students DROP IF EXISTS PARTITION (class = 12);
Este comando irá apagar os dados e os metadados da partição para geridos ou tabelas internas. No entanto, para os quadros externos, os dados não são apagados.2. Operações na tabela externa
as operações como selecionar, junções, ordem por, grupo por, CLUSTER por, e outras são implementadas em tabelas externas. As tabelas externas podem ser facilmente unidas com outras tabelas para realizar manipulações complexas de dados. Os conceitos de particionamento, bucketing e indexação também são implementados em tabelas externas da mesma forma que para tabelas geridas ou internas. Todas as propriedades de configuração na colmeia também são aplicáveis a tabelas externas. Por exemplo, definindo skip.cabecalho.linha. Contagem = 1, podemos saltar a linha de cabeçalho do arquivo de dados.
Todos os formatos de Ficheiros como ORC, AVRO, TEXTFILE, SEQUENCE FILE, ou PARQUET são suportados pelas tabelas internas e externas da colmeia. Ao criar uma tabela, mapeamento posicional é usado para inserir dados na coluna, e essa ordem é mantida.
Datatypes em tabelas externas: em tabelas externas, os tipos de dados de coleta também são suportados juntamente com tipos de dados primitivos (como inteiro, string, character). É necessário especificar os delimitadores dos elementos dos tipos de dados coletados (como uma matriz, estrutura e mapa).quando utilizar tabelas externas na colmeia?geralmente, as tabelas internas são criadas na colmeia. Mas para certos cenários, uma tabela externa pode ser útil. Estes são:
- Quando os dados são colocados fora da colmeia ou HDFS localização, criando uma tabela externa ajuda como as outras ferramentas que podem estar usando a tabela, não coloca bloqueio nestes arquivos.
- uma tabela externa pode ser criada quando os dados não estão presentes em nenhuma tabela existente (ou seja, usando a cláusula de seleção).
- a tabela externa deve ser criada se não quisermos que o Hive possua os dados ou tenha outros controles de dados.
- a tabela externa também previne qualquer perda acidental de dados, como ao deixar cair uma tabela externa, os dados de base não são apagados. Isto funciona como um recurso de segurança na colmeia. Esta é a razão pela qual TRUNCATE também não vai funcionar para tabelas externas.
características
Existem certas características na colmeia que estão disponíveis apenas para quadros geridos ou externos. Estes são:
- comandos como ARCHIVE/UNARCHIVE/TRUNCATE/CONCATENATE / MERGE funcionam apenas para tabelas internas.o ácido só funciona em tabelas geridas ou internas.a cláusula
- DROP irá apagar apenas os meta-dados das tabelas externas. No entanto, suprime os dados subjacentes também para quadros internos.
- Resultados da consulta caching é possível apenas para tabelas gerenciadas.
- restrição de confiança é permitida apenas em tabelas externas.algumas características das vistas materializadas funcionam apenas para tabelas geridas.
conclusão
neste tutorial, vimos quando e como usar tabelas externas na colmeia. Os destaques deste tutorial São criar um fundo nas tabelas que não sejam gerenciadas e analisar dados fora da colmeia.
artigos recomendados
Este é um guia para a tabela externa na colmeia. Aqui discutimos a introdução de tabelas externas na colmeia e as características, e consultas. Pode também consultar os nossos outros artigos relacionados para aprender mais –
- particionamento na colmeia
- ap Join in Hive
- Tipos de dados da colmeia
- Guia do aglomerado da colmeia por
instalação da colmeia