Introdução
O ano é 2285, e a humanidade estabeleceu uma próspera estação espacial orbitando o planeta Marte. Esta instalação de pesquisa, conhecida como Observatório Marciano (Martian Observatory), serve como um centro para exploração e descoberta científica. Entre os muitos cientistas estacionados aqui está a Dra. Emma Wilkins, uma brilhante analista de dados especializada em observações astronômicas.
A Dra. Wilkins foi encarregada de analisar vastas quantidades de dados coletados de vários telescópios e instrumentos a bordo da estação. No entanto, os dados estão em um formato bruto, e ela precisa processá-los e manipulá-los para extrair insights significativos. Um dos desafios críticos que ela enfrenta é trabalhar com informações de data e hora, pois muitas das observações são sensíveis ao tempo e exigem cálculos precisos de data.
Para enfrentar este desafio, a Dra. Wilkins deve aproveitar as poderosas funções de operação de data disponíveis no Hadoop Hive, uma solução de data warehousing projetada para processamento de big data. Ao dominar essas funções, ela pode manipular e analisar eficientemente os dados de data e hora, permitindo que ela descubra padrões, tendências e anomalias que podem levar a descobertas inovadoras no campo da astronomia.
Configurando o Ambiente Hive
Nesta etapa, configuraremos o ambiente Hive e criaremos um conjunto de dados de amostra para praticar as funções de operação de data.
- Primeiro, mude para o usuário
hadoopexecutando o seguinte comando no terminal:
su - hadoop
- Agora, inicie o shell Hive executando o seguinte comando:
hive
- Crie uma nova tabela Hive chamada
observationscom o seguinte esquema:
CREATE TABLE observations (
observation_id INT,
telescope STRING,
observation_date STRING,
observation_time STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
- Carregue alguns dados de amostra na tabela
observations:
LOAD DATA LOCAL INPATH '/home/hadoop/resources/observations.csv' OVERWRITE INTO TABLE observations;
O arquivo observations.csv contém dados de observação de amostra com colunas para observation_id, telescope, observation_date (no formato yyyy-MM-dd) e observation_time (no formato HH:mm:ss).
Usando a Função year()
Nesta etapa, aprenderemos como usar a função year() no Hive para extrair o ano de uma string de data.
A função year() recebe uma string de data ou timestamp como entrada e retorna o componente do ano como um valor inteiro.
Abra o console Hive executando o comando
hiveno terminal.Execute a seguinte consulta para extrair o ano da coluna
observation_date:
SELECT observation_id, year(observation_date) AS observation_year
FROM observations;
Esta consulta retornará o observation_id e o ano correspondente para cada observação na tabela.
- Você também pode usar a função
year()em combinação com outras funções ou cláusulas de data. Por exemplo, para filtrar observações de um ano específico, você pode usar a seguinte consulta:
SELECT *
FROM observations
WHERE year(observation_date) = 2022;
Esta consulta retornará todas as observações onde o componente do ano da observation_date é 2022.
Usando a Função datediff()
Nesta etapa, aprenderemos como usar a função datediff() no Hive para calcular a diferença entre duas datas.
A função datediff() recebe duas strings de data ou timestamp como entrada e retorna o número de dias entre elas.
Abra o console Hive se ele ainda não estiver aberto.
Execute a seguinte consulta para calcular o número de dias entre duas datas de observação:
SELECT observation_id,
observation_date,
'2022-12-31' AS reference_date,
datediff('2022-12-31', observation_date) AS days_until_end_of_year
FROM observations;
Esta consulta retornará o observation_id, observation_date, uma data de referência (2022-12-31) e o número de dias entre a observation_date e a data de referência (days_until_end_of_year).
- Você também pode usar a função
datediff()com outras funções ou cláusulas de data. Por exemplo, para filtrar observações dentro de um intervalo de datas específico, você pode usar a seguinte consulta:
SELECT *
FROM observations
WHERE datediff(observation_date, '2022-01-01') BETWEEN 0 AND 180;
Esta consulta retornará todas as observações onde a observation_date está entre 1º de janeiro de 2022 e 30 de junho de 2022 (inclusive).
Usando a Função date_format()
Nesta etapa, aprenderemos como usar a função date_format() no Hive para converter uma string de data de um formato para outro.
A função date_format() recebe dois argumentos: uma string de data ou timestamp e um padrão de formato. Ela retorna a string de data ou timestamp no padrão de formato especificado.
Abra o console Hive se ele ainda não estiver aberto.
Execute a seguinte consulta para converter a coluna
observation_datedo formatoyyyy-MM-ddpara o formatoMMM dd, yyyy:
SELECT observation_id,
observation_date,
date_format(observation_date, 'MMM dd, yyyy') AS formatted_date
FROM observations;
Esta consulta retornará o observation_id, a observation_date original e a data formatada (formatted_date) no formato MMM dd, yyyy (por exemplo, Jun 15, 2022).
- Você também pode usar a função
date_format()com outras funções ou cláusulas de data. Por exemplo, para filtrar observações com base em um formato de data específico, você pode usar a seguinte consulta:
SELECT *
FROM observations
WHERE date_format(observation_date, 'yyyy/MM/dd') = '2022/06/15';
Esta consulta retornará todas as observações onde a observation_date, quando formatada como yyyy/MM/dd, é igual a 2022/06/15.
Usando a Função add_months()
Nesta etapa, aprenderemos como usar a função add_months() no Hive para adicionar ou subtrair meses de uma data.
A função add_months() recebe dois argumentos: uma string de data ou timestamp e um valor inteiro representando o número de meses a serem adicionados ou subtraídos.
Abra o console Hive se ele ainda não estiver aberto.
Execute a seguinte consulta para adicionar seis meses à coluna
observation_date:
SELECT observation_id,
observation_date,
add_months(observation_date, 6) AS date_plus_six_months
FROM observations;
Esta consulta retornará o observation_id, a observation_date original e a data seis meses após a observation_date (date_plus_six_months).
- Você também pode usar a função
add_months()com outras funções ou cláusulas de data. Por exemplo, para filtrar observações dentro de um intervalo de meses específico, você pode usar a seguinte consulta:
SELECT *
FROM observations
WHERE month(add_months(observation_date, 6)) BETWEEN 1 AND 6;
Esta consulta retornará todas as observações onde o componente mês da data seis meses após a observation_date está entre janeiro e junho (inclusive).
Resumo
Neste laboratório, exploramos o mundo das funções de manipulação de datas no Hadoop Hive, uma poderosa solução de data warehousing para processamento de big data. Através de um cenário cativante ambientado em uma estação espacial futurista orbitando Marte, acompanhamos a jornada da Dra. Emma Wilkins, uma brilhante analista de dados encarregada de analisar observações astronômicas.
Ao dominar funções de manipulação de datas como year(), datediff(), date_format() e add_months(), a Dra. Wilkins adquiriu a capacidade de manipular e analisar dados de data e hora de forma eficiente, permitindo-lhe descobrir padrões, tendências e anomalias que poderiam levar a descobertas inovadoras no campo da astronomia.
Ao longo do laboratório, mergulhamos em exemplos práticos e fornecemos verificadores para garantir uma experiência de aprendizado perfeita. A natureza interativa do laboratório permitiu que os alunos praticassem e reforçassem sua compreensão dessas funções essenciais, estabelecendo uma base sólida para técnicas de análise de dados mais avançadas.
No geral, este laboratório não apenas transmitiu habilidades técnicas valiosas, mas também fomentou um senso de admiração e curiosidade sobre a vasta extensão do cosmos. Ao capacitar os alunos com as ferramentas para desvendar os segredos escondidos nos dados astronômicos, abrimos caminho para que as futuras gerações de cientistas ultrapassem os limites do conhecimento e da exploração humana.



