O ecossistema de engenharia de dados é vasto. As ferramentas se dividem por responsabilidade dentro do pipeline-de-dados.

Processamento distribuído

Apache Spark

Apache Spark é o padrão de facto para processamento em larga escala, cobrindo batch e streaming com uma API unificada.

  • Processa dados em memória distribuída (muito mais rápido que MapReduce)
  • APIs em Python (PySpark), Scala, Java, SQL
  • Integração nativa com Delta Lake, Iceberg, Hudi, S3, ADLS, GCS
  • Roda no Databricks, EMR, Dataproc, ou standalone
from pyspark.sql import SparkSession, functions as F
 
spark = SparkSession.builder.appName("pipeline").getOrCreate()
 
df = spark.read.format("delta").load("s3://lake/silver/pedidos/")
resultado = df.groupBy("cliente_id").agg(F.sum("valor_total").alias("ltv"))
resultado.write.format("delta").mode("overwrite").save("s3://lake/gold/ltv/")

Notas dedicadas: spark | spark-arquitetura | spark-apis | spark-sql | spark-streaming | spark-performance | spark-troubleshooting

O Apache Flink realiza processamento de streams com estado, latência ultra-baixa.

  • Melhor que Spark Streaming para eventos complexos com estado (CEP, janelas de tempo)
  • Suporte a SQL sobre streams
  • Usado por Uber, Alibaba, Lyft para pipelines de tempo real

Mensageria e Streaming

Apache Kafka

Apache Kafka é uma plataforma de streaming de eventos distribuída, é o barramento central de dados em tempo real.

  • Tópicos particionados com retenção configurável (reprocessamento possível)
  • Producers publicam, consumers consomem em grupos independentes
  • Kafka Streams e ksqlDB para transformações dentro do Kafka
  • Schema Registry (Confluent) para controle de schema de mensagens Avro/Protobuf
flowchart LR
    F([Fonte]) --> P[Producer]
    P --> K[Tópico Kafka]
    K --> A[Consumer Group A] --> DL[(Data Lake)]
    K --> B[Consumer Group B] --> MS[Microserviço]
    K --> C[Consumer Group C] --> ES[ElasticSearch]

Orquestração

Apache Airflow

Apache Airflow é o orquestrador de workflows mais adotado na engenharia de dados.

  • Pipelines definidos como DAGs (Directed Acyclic Graphs) em Python
  • Agendamento por cron, dependências entre tarefas, retries, alertas
  • Interface web para monitoramento e re-execução manual
from airflow.decorators import dag, task
from datetime import datetime
 
@dag(schedule="@daily", start_date=datetime(2026, 1, 1))
def pipeline_pedidos():
 
    @task
    def ingerir():
        # lógica de ingestão
        pass
 
    @task
    def transformar(dados):
        # lógica de transformação
        pass
 
    transformar(ingerir())
 
pipeline_pedidos()

Notas dedicadas: airflow | airflow-conceitos | airflow-dag-desenvolvimento | airflow-deploy-local | airflow-deploy-kubernetes | airflow-aws-mwaa | airflow-pipelines-batch | airflow-pipelines-streaming

Prefect / Dagster

Alternativas modernas ao Airflow:

  • Prefect: mais simples, Python puro, sem XML/YAML, cloud gerenciada
  • Dagster: focado em data assets (não tarefas), observabilidade nativa, tipagem de inputs/outputs

Transformação

dbt (Data Build Tool)

dbt é a camada de transformação SQL dentro do Data Warehouse ou Lakehouse.

  • Define modelos como arquivos .sql com lógica de transformação
  • Testes de qualidade embutidos (not null, unique, relationships)
  • Gera documentação e linhagem automaticamente
  • Padrão de mercado para a camada Silver → Gold
-- models/gold/ltv_clientes.sql
with pedidos as (
    select * from {{ ref('silver_pedidos') }}
    where status = 'concluido'
)
 
select
    cliente_id,
    count(pedido_id)      as qtd_pedidos,
    sum(valor_total)      as ltv,
    min(data_pedido)      as primeira_compra,
    max(data_pedido)      as ultima_compra
from pedidos
group by 1

Ingestão

FerramentaTipoCaracterística
FivetranGerenciada (SaaS)Conectores prontos, zero manutenção, caro
AirbyteOpen-source / Cloud+300 conectores, auto-hospedável
DebeziumOpen-sourceCDC de bancos relacionais via Kafka
AWS GlueGerenciado AWSETL serverless integrado ao ecossistema AWS

Plataformas de Lakehouse

PlataformaDestaque
DatabricksDelta Lake nativo, Unity Catalog, Lakeflow Pipelines, MLflow. Ver databricks.
SnowflakeDW elástico, SQL-first, multicloud
Google BigQueryServerless, integrado ao GCP, ótimo para SQL analítico
Amazon RedshiftDW AWS, integrado com S3 e Glue
DremioQuery engine sobre Iceberg/Parquet, sem mover dados

Query Engines

FerramentaUso
TrinoSQL federado sobre múltiplas fontes (S3, Hive, PostgreSQL)
Apache HiveSQL sobre HDFS/S3, legado Hadoop
DuckDBSQL analítico local/embutido, ideal para desenvolvimento e dados menores

Python para engenharia de dados

Para manipulação de dados com Python, as bibliotecas centrais são:

  • Pandas: manipulação tabular em memória, padrão de mercado
  • Polars: alternativa moderna, multi-core, muito mais rápida
  • PySpark: processamento distribuído via Apache Spark
  • Conectores de banco: SQLAlchemy, psycopg2, drivers ODBC
  • Qualidade de dados: Great Expectations, Pandera, Pydantic

Ver também: python-engenharia-dados | pipeline-de-dados | arquitetura-medalhao | data-lake-lakehouse | formatos-de-arquivo-datalake | engenharia-de-dados | mermaid-diagrams