Files
OpenSource_ETL_Project/roadmap_estudos
2025-08-22 22:12:32 -06:00

156 lines
3.5 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 📅 Roadmap de Estudo Airbyte + dbt (6 Semanas)
---
## 🔹 Semana 1 Fundamentos
🎯 Objetivo: Entender a stack e preparar ambiente.
1. **Conceitos**
* ETL vs ELT (Airbyte → EL, dbt → T).
* O papel do BigQuery como *data warehouse*.
* O Metabase como camada de visualização.
2. **Infraestrutura**
* Instalar Docker e Docker Compose.
* Subir Airbyte local (`docker-compose up`).
* Criar um projeto vazio dbt (`dbt init`).
---
## 🔹 Semana 2 SQL básico + Airbyte inicial
🎯 Objetivo: Ganhar confiança em SQL e usar o Airbyte para extrair dados.
1. **SQL**
* SELECT, WHERE, ORDER BY, LIMIT.
* Funções simples: `UPPER()`, `ROUND()`, `DATE_TRUNC()`.
2. **Airbyte**
* Configurar **primeiro Source** (CSV local ou Google Sheets).
* Configurar **Destination BigQuery**.
* Verificar dados carregados no dataset `raw`.
👉 Exercício: carregar um CSV de vendas → BigQuery.
---
## 🔹 Semana 3 SQL intermediário + dbt no básico
🎯 Objetivo: Começar a transformar dados no dbt.
1. **SQL**
* JOINs, GROUP BY, agregações.
* CTE (`WITH ...`) para organizar consultas.
2. **dbt**
* Conectar dbt ao BigQuery (`profiles.yml`).
* Criar pastas: `models/staging`, `models/core`.
* Criar modelo de staging:
```sql
select
cast(order_date as date) as order_date,
customer_id,
amount
from {{ source('raw', 'sales') }}
```
3. **Airbyte + dbt**
* Ativar *Normalization* no Airbyte (dbt integrado).
* Comparar resultados: bruto (`raw`) vs normalizado.
---
## 🔹 Semana 4 Estruturação de pipeline
🎯 Objetivo: Montar pipeline completo Airbyte → BigQuery → dbt.
1. **Airbyte**
* Adicionar múltiplos sources (CSV, MySQL, API).
* Enviar todos para BigQuery → schema `raw`.
2. **dbt**
* Usar `ref()` para relacionar modelos.
* Criar `core` consolidado:
```sql
select
c.customer_name,
sum(s.amount) as total_sales
from {{ ref('customers_stg') }} c
join {{ ref('sales_stg') }} s on c.id = s.customer_id
group by 1
```
3. **Testes dbt**
* Adicionar `schema.yml` com testes `not_null`, `unique`.
---
## 🔹 Semana 5 Avançando no dbt
🎯 Objetivo: Criar datasets prontos para analytics.
1. **SQL avançado**
* Window functions (`ROW_NUMBER`, `RANK`, `LAG`).
* CASE WHEN.
* Funções de data (`EXTRACT`, `DATE_TRUNC`).
2. **dbt avançado**
* Materializações (`view`, `table`, `incremental`).
* Documentação (`dbt docs generate`).
* Usar macros simples (Jinja).
3. **Airbyte + dbt**
* Configurar sync automático no Airbyte.
* Garantir que dbt roda após sync.
---
## 🔹 Semana 6 Entrega final com Metabase
🎯 Objetivo: Expor insights em dashboards.
1. **Metabase**
* Conectar ao BigQuery (schema `analytics`).
* Criar gráficos:
* Vendas por mês.
* Clientes ativos.
* Ticket médio.
2. **Pipeline completo**
* Fonte → Airbyte → BigQuery (raw) → dbt (analytics) → Metabase.
* Validar atualizações automáticas (trocar CSV e ver dashboard mudar).
3. **Boa prática**
* Versionar dbt no Git.
* Adotar convenções: `raw` → `staging` → `core` → `marts`.
---
# ✅ Resultado esperado
* Você domina o **Airbyte** para ingestão de dados.
* Consegue criar e rodar um **projeto dbt** (staging/core/marts).
* Tem um **pipeline real** funcionando no BigQuery.
* Consegue criar dashboards no **Metabase** com dados atualizados automaticamente.