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
Apache Flink
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
.sqlcom 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 1Ingestão
| Ferramenta | Tipo | Característica |
|---|---|---|
| Fivetran | Gerenciada (SaaS) | Conectores prontos, zero manutenção, caro |
| Airbyte | Open-source / Cloud | +300 conectores, auto-hospedável |
| Debezium | Open-source | CDC de bancos relacionais via Kafka |
| AWS Glue | Gerenciado AWS | ETL serverless integrado ao ecossistema AWS |
Plataformas de Lakehouse
| Plataforma | Destaque |
|---|---|
| Databricks | Delta Lake nativo, Unity Catalog, Lakeflow Pipelines, MLflow. Ver databricks. |
| Snowflake | DW elástico, SQL-first, multicloud |
| Google BigQuery | Serverless, integrado ao GCP, ótimo para SQL analítico |
| Amazon Redshift | DW AWS, integrado com S3 e Glue |
| Dremio | Query engine sobre Iceberg/Parquet, sem mover dados |
Query Engines
| Ferramenta | Uso |
|---|---|
| Trino | SQL federado sobre múltiplas fontes (S3, Hive, PostgreSQL) |
| Apache Hive | SQL sobre HDFS/S3, legado Hadoop |
| DuckDB | SQL 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