Este é um projeto de ETL (Extract, Transform, Load) e análise de dados desenvolvido em Java, com foco em demonstrar conceitos de Programação Orientada a Objetos (POO) e manipulação de grandes volumes de dados.
A aplicação lê dados públicos da Agência Nacional do Petróleo (ANP) sobre os preços de gás natural, realiza um processo de limpeza e tratamento, carrega os dados em um banco de dados MySQL e, por fim, oferece um menu interativo de console para que o usuário possa realizar análises sobre as informações armazenadas.
Este projeto serve como um case prático de engenharia e análise de dados, mostrando um fluxo de trabalho completo desde o dado bruto até a geração de insights.
- ETL Robusto: Lê arquivos
.csvcomplexos, tratando problemas comuns como inconsistências de formato, valores nulos ("NA") e erros de codificação de caracteres. - Persistência em Banco de Dados: Armazena os dados limpos em um banco de dados relacional MySQL.
- Arquitetura em Camadas: O código é organizado seguindo os padrões de mercado (Model, DAO, Service, App) para garantir a manutenibilidade e clareza.
- Análise de Dados Interativa: Oferece um menu de console onde o usuário pode executar diferentes tipos de consultas, como:
- Cálculo do preço médio geral.
- Busca dos 10 registros mais baratos por tipo de mercado.
- Visualização da evolução de preços ao longo do tempo.
- Linguagem: Java 24
- Build & Dependências: Maven
- Banco de Dados: MySQL
- Conector: MySQL Connector/J (via JDBC)
- Conceitos de POO: Encapsulamento, Separação de Responsabilidades.
- Java JDK 24 (ou superior)
- Apache Maven
- Servidor MySQL
Conecte-se ao seu servidor MySQL e execute os seguintes comandos:
CREATE DATABASE projetogas;
USE projetogas;
CREATE TABLE registro_gas_natural (
id INT AUTO_INCREMENT PRIMARY KEY,
ano INT,
mes INT,
tipo_mercado VARCHAR(50),
regiao_agregada VARCHAR(100),
preco_reais_mmbtu DECIMAL(10, 2) NULL,
volume_mil_m3_dia INT NULL
);No arquivo:
src/main/java/com/JoaoVitor/AnalisadorPrecos/util/ConnectionFactory.java
Altere as credenciais para o seu banco de dados:
private static final String DATABASE_NAME = "projetogas";
private static final String USER = "seu_usuario_aqui";
private static final String PASSWORD = "sua_senha_aqui";- No arquivo:
src/main/java/com/JoaoVitor/AnalisadorPrecos/app/CargaDadosApp.java
- Execute o método
mainda classeCargaDadosApp.java. - Aguarde a mensagem "Carga de dados finalizada!".
Com os dados no banco:
- Execute o método
mainda classe:
src/main/java/com/JoaoVitor/AnalisadorPrecos/app/AnalisadorApp.java
- O menu interativo aparecerá no console para você realizar as análises.
João Vitor Teixeira de Araújo