Um pipeline de dados é um conjunto de etapas automatizadas que movem, transformam e carregam dados de uma ou mais fontes para um destino, tornando-os utilizáveis para análise ou outros sistemas.

ETL vs. ELT

ETLELT
OrdemExtract → Transform → LoadExtract → Load → Transform
Onde transformaFora do destino (ferramenta dedicada)Dentro do destino (ex: Snowflake, BigQuery)
Quando usarDestinos com capacidade limitada, dados sensíveis que precisam ser mascarados antes do carregamentoData warehouses/lakehouses modernos com poder de processamento próprio
ExemplosTalend, Informatica, SSISdbt + Snowflake, Spark + Delta Lake

O padrão dominante hoje é ELT: carregue os dados brutos primeiro (camada Bronze) e transforme dentro da plataforma de dados, onde o poder computacional é escalável.

Batch vs. Streaming

Batch

  • Processa um conjunto acumulado de dados em intervalos fixos (de minutos a dias)
  • Mais simples de implementar, depurar e re-executar
  • Adequado quando a latência não é crítica (relatórios diários, DW atualizado à noite)
flowchart LR
    F([Fonte]) --> A[Acumula dados] --> J[Job processa lote] --> D([Destino atualizado])

Streaming

  • Processa eventos individualmente à medida que chegam (latência de milissegundos a segundos)
  • Mais complexo: requer gestão de estado, tratamento de eventos fora de ordem, exactly-once semantics
  • Adequado para fraude em tempo real, recomendações instantâneas, dashboards ao vivo
flowchart LR
    F([Fonte]) --> E[Evento] --> K[Tópico Kafka] --> C[Consumer processa] --> D([Destino atualizado])

Anatomia de um pipeline moderno

flowchart LR
    subgraph Fontes
        O[Banco OLTP]
        A[API REST]
        K[Kafka topics]
    end
    subgraph Ingestão
        I[Fivetran / Airbyte]
        SS[Spark Structured - Streaming]
    end
    subgraph Armazenamento
        DL[(Data Lake - Bronze)]
    end
    subgraph Transformação
        T[dbt / Spark - Silver / Gold]
    end
    subgraph Serving
        S[DW / BI - Analytics]
    end
    O & A --> I
    K --> SS
    I & SS --> DL
    DL --> T --> S

Qualidade de dados no pipeline

Pontos críticos onde validar:

  • Na ingestão: schema esperado, campos obrigatórios, valores fora de range
  • Após transformação: contagem de linhas, unicidade de chaves, nulos inesperados
  • No destino: freshness (dado está atualizado?), consistência entre tabelas

Ferramentas: Great Expectations, dbt tests, Soda

Orquestração

Pipelines precisam ser agendados, monitorados e re-executados em falha. Isso é papel das ferramentas de orquestração. Ver ferramentas-engenharia-dados.

Python no pipeline

Python é a linguagem central para implementar pipelines. Bibliotecas por função:

Ver também: engenharia-de-dados | arquitetura-medalhao | big-data | ferramentas-engenharia-dados | python-engenharia-dados | mermaid-diagrams