Reestruturação de Dados Rebeldes com Hadoop

HadoopBeginner
Pratique Agora

Introdução

Numa galáxia distante, o tirânico Império Galáctico subjugou inúmeros planetas, explorando seus recursos e oprimindo suas populações. A líder rebelde, Princesa Leia, tem coordenado uma rebelião contra o Império, mas suas forças são em grande número e superadas em armamento. Para mudar o curso da guerra, Leia deve analisar vastas quantidades de dados de inteligência para identificar as fraquezas do Império e planejar ataques estratégicos.

O objetivo deste laboratório é ajudar a Princesa Leia e a Aliança Rebelde a utilizar o poder do Hadoop Hive para gerenciar e manipular grandes conjuntos de dados, especificamente aprendendo como alterar tabelas Hive existentes. Ao dominar essa habilidade, Leia pode reestruturar eficientemente seus bancos de dados de inteligência, permitindo que ela descubra insights cruciais e obtenha uma vantagem estratégica contra o Império.

Criar uma Tabela de Exemplo

Nesta etapa, criaremos uma tabela Hive de exemplo para trabalhar. Esta tabela armazenará informações sobre vários planetas na galáxia, incluindo seus nomes, populações e recursos.

Primeiro, mude para o usuário hadoop executando o seguinte comando em seu terminal:

su - hadoop

Agora, inicie a CLI do Hive executando o seguinte comando:

hive

Dentro da CLI do Hive, crie um novo banco de dados chamado rebel_intel:

CREATE DATABASE rebel_intel;

Use o banco de dados rebel_intel:

USE rebel_intel;

Crie uma nova tabela chamada planets com o seguinte esquema:

CREATE TABLE planets (
    planet_id INT,
    planet_name STRING,
    population BIGINT,
    resources ARRAY<STRING>
)
CLUSTERED BY (planet_id) INTO 2 BUCKETS
STORED AS ORC
TBLPROPERTIES ('transactional'='true');

Esta tabela tem quatro colunas: planet_id (um inteiro para o ID do planeta), planet_name (uma string para o nome do planeta), population (um inteiro grande para a população do planeta) e resources (um array de strings representando os recursos do planeta).

Saia da CLI do Hive digitando exit;.

Adicionar Dados à Tabela

Nesta etapa, preencheremos a tabela planets com alguns dados de exemplo. Esses dados representam a inteligência reunida pela Aliança Rebelde sobre vários planetas na galáxia.

Inicie a CLI do Hive novamente:

hive

Use o banco de dados rebel_intel:

USE rebel_intel;

Insira alguns dados de exemplo na tabela planets:

INSERT INTO planets VALUES
    (1, 'Alderaan', 2000000000, array('Agriculture', 'Energy')),
    (2, 'Tatooine', 200000, array('Mining')),
    (3, 'Hoth', 0, array('None')),
    (4, 'Endor', 30000, array('Forestry', 'Hunting')),
    (5, 'Bespin', 6000000, array('Gas Mining', 'Tourism'));

Isso insere cinco linhas de dados na tabela planets, representando diferentes planetas com seus respectivos IDs de planeta, nomes, populações e recursos.

Saia da CLI do Hive digitando exit;.

Alterar a Estrutura da Tabela

Agora que temos uma tabela com alguns dados, digamos que a Princesa Leia precise adicionar outra coluna para armazenar informações sobre o clima de cada planeta. Nesta etapa, aprenderemos como alterar a estrutura de uma tabela Hive existente.

Inicie a CLI do Hive:

hive

Use o banco de dados rebel_intel:

USE rebel_intel;

Altere a tabela planets para adicionar uma nova coluna chamada climate:

ALTER TABLE planets ADD COLUMNS (climate STRING);

Este comando adiciona uma nova coluna chamada climate do tipo STRING à tabela planets.

Verifique a estrutura da tabela atualizada:

DESCRIBE planets;

Você deve ver a nova coluna climate no esquema da tabela.

Saia da CLI do Hive digitando exit;.

Atualizar Dados da Tabela

Com a nova coluna climate adicionada à tabela planets, agora podemos atualizar os dados existentes para incluir informações sobre o clima de cada planeta.

Inicie a CLI do Hive:

hive

Use o banco de dados rebel_intel:

USE rebel_intel;

Atualize a coluna climate para cada planeta:

UPDATE planets SET climate = 'Temperate' WHERE planet_name = 'Alderaan';
UPDATE planets SET climate = 'Arid' WHERE planet_name = 'Tatooine';
UPDATE planets SET climate = 'Frozen' WHERE planet_name = 'Hoth';
UPDATE planets SET climate = 'Tropical' WHERE planet_name = 'Endor';
UPDATE planets SET climate = 'Artificial' WHERE planet_name = 'Bespin';

Essas instruções UPDATE definem o valor climate para cada planeta com base em seus respectivos nomes.

Verifique os dados atualizados:

SELECT * FROM planets;

Você deve ver os valores climate atualizados para cada planeta.

Saia da CLI do Hive digitando exit;.

Resumo

Neste laboratório, exploramos o conceito de alteração de tabelas no Hadoop Hive, uma habilidade crucial para gerenciar e reestruturar grandes conjuntos de dados. Ao criar uma tabela de exemplo planets, adicionar dados e, em seguida, alterar a estrutura da tabela para incluir uma nova coluna climate, aprendemos como adaptar nossos modelos de dados para atender às necessidades em evolução.

O design deste laboratório foi inspirado no icônico universo de Star Wars, onde a líder rebelde, Princesa Leia, precisa analisar dados de inteligência para identificar fraquezas nas defesas do Império Galáctico. Ao dominar a capacidade do Hive de alterar tabelas, Leia pode remodelar eficientemente seus bancos de dados de inteligência, descobrindo insights valiosos e obtendo uma vantagem estratégica na rebelião contra o Império opressor.

Através desta experiência prática, obtive uma compreensão mais profunda de como criar, modificar e atualizar tabelas Hive, que são habilidades essenciais para trabalhar com grandes conjuntos de dados em ambientes Hadoop. O uso de verificadores (checkers) também garantiu que eu pudesse verificar meu progresso em cada etapa, reforçando meu aprendizado e garantindo que eu completasse com sucesso os objetivos do laboratório.