# 📅 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.