commit 8234ea59b09b03e9fe4c4503edfad8672ff1b7fc Author: Neo And Date: Fri Aug 22 22:12:32 2025 -0600 Añadir roadmap_estudos diff --git a/roadmap_estudos b/roadmap_estudos new file mode 100644 index 0000000..7934a1a --- /dev/null +++ b/roadmap_estudos @@ -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. +