Este projeto implementa um pipeline de dados completo para processar informações de vendas e produtos, integrando dados de arquivos CSV e de um banco de dados SQLite. O objetivo é consolidar, transformar e analisar os dados, gerando relatórios úteis para a tomada de decisões de negócios.
├── data/
│ ├── sales_/ # Diretório contendo os arquivos CSV de vendas
│ ├── database.sqlite # Banco de dados SQLite com informações de produtos e categorias
├── scripts/
│ ├── etl.R # Script principal para o pipeline de ETL
│ ├── utils.R # Funções auxiliares utilizadas no projeto
├── output_/
│ ├── faturamento_agrupado.parquet # Arquivo parquet com os dados transformados
│ ├── faturamento_por_categoria.png # Gráfico de faturamento por categoria
│ ├── evolucao_faturamento_mensal.png # Gráfico de evolução mensal do faturamento
├── README.md # Documentação do projeto
-
Extração de Dados:
- Leitura de múltiplos arquivos CSV contendo dados de vendas.
- Integração com um banco de dados SQLite para recuperar informações de produtos e categorias.
-
Transformação de Dados:
- Cálculo do faturamento por produto.
- Consolidação de dados de vendas, produtos e categorias.
- Tratamento de valores ausentes, como produtos sem categoria.
-
Armazenamento de Dados:
- Salvamento dos dados transformados em formato Parquet.
- Criação de tabelas no SQLite, se necessário.
-
Geração de Relatórios:
- Gráfico de barras: Faturamento por categoria de produto.
- Gráfico de linha: Evolução do faturamento mensal.
Certifique-se de ter os seguintes pacotes instalados no R:
install.packages(c("dplyr", "DBI", "RSQLite", "arrow", "ggplot2", "lubridate"))-
Clone o repositório:
git clone <https://github.com/gbcode98/trial-abstrato> cd <trial-abstrato>
-
Coloque os arquivos CSV de vendas no diretório
data/sales/. -
Certifique-se de que o arquivo
database.sqliteesteja emdata/com as tabelas necessárias. -
Execute o script principal
etl.Rno RStudio ou na linha de comando:source("scripts/etl.R") -
Os resultados (dados transformados e gráficos) estarão disponíveis na pasta
output/.
Cada arquivo de vendas deve conter as seguintes colunas:
| Coluna | Descrição |
|---|---|
| data | Data da venda (YYYY-MM-DD) |
| loja_id | Identificador da loja |
| produto_id | Identificador do produto |
| quantidade | Quantidade vendida |
| preco_unitario | Preço unitário do produto |
O banco de dados contém duas tabelas:
| Coluna | Descrição |
|---|---|
| produto_id | Identificador único do produto |
| nome_produto | Nome do produto |
| categoria_id | Identificador da categoria |
| Coluna | Descrição |
|---|---|
| categoria_id | Identificador único da categoria |
| nome_categoria | Nome da categoria |