Añadir roadmap_estudos
This commit is contained in:
commit
8234ea59b0
155
roadmap_estudos
Normal file
155
roadmap_estudos
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
# 📅 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.
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user