(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
Azure Data Factory
Azure Data Factory 1 min

Mapping Data Flows no ADF: transformações ETL visuais sem código

João Barros 07 de February de 2025 1 min de leitura

Os Mapping Data Flows no Azure Data Factory permitem construir transformações ETL complexas através de uma interface visual, sem escrever código Spark. A execução é feita num cluster Spark gerido pela Microsoft, com escalabilidade automática.

Arquitectura de um Data Flow

Source → [Transformações] → Sink

Transformações disponíveis:
  Select / Rename     — seleccionar e renomear colunas
  Filter              — filtrar linhas por condição
  Derived Column      — criar/modificar colunas com expressões
  Aggregate           — GROUP BY com funções de agregação
  Join / Lookup       — juntar datasets
  Conditional Split   — dividir fluxo por condição
  Flatten             — desnormalizar estruturas JSON aninhadas
  Window              — funções de janela (ROW_NUMBER, LAG, etc.)
  Sink                — destino de escrita

Expressão em Derived Column

// Calcular margem e normalizar país
margem_pct: toDecimal((receita - custo) / receita * 100, 2)
pais_norm:  upper(trim(pais))
data_carga: currentTimestamp()
ano_mes:    toString(year(data_venda)) + '-' + lpad(toString(month(data_venda)), 2, '0')

Aggregate — GROUP BY com múltiplas métricas

Group by: pais_norm, ano_mes
Aggregates:
  receita_total:   sum(receita)
  num_transacoes:  count(1)
  ticket_medio:    avg(receita)
  max_venda:       max(receita)

Debug e performance

// Activar debug cluster (demora ~2 min a arrancar)
// Preview de dados em cada transformação — essencial para validar
// Optimizações:
  - Source: enable partition → paralelismo na leitura
  - Sink: set batch size = 10000 para SQL
  - Evitar Cartesian joins (sem condição de join)
  - Use Broadcast para dimensões pequenas (< 1GB)

Conclusão

Os Mapping Data Flows tornam transformações ETL complexas acessíveis a engenheiros sem experiência em Spark. Para equipas com analistas SQL, a sintaxe de expressões é familiar. O trade-off é arranque lento do cluster Spark — use-os para batches, não para micro-batches frequentes.

Partilhar: