Proposta de site feita pela Genesis Innovation · conteúdo do LinkedIn de Daniel Santos

Pular para o conteúdo
Daniel Santos

Wiki Arquitetura e modelagem

ETL e ELT

A diferença é onde a transformação acontece: antes de carregar (ETL) ou dentro da plataforma, depois de carregar o bruto (ELT).

As três letras são as mesmas; muda a ordem.

  • ETL (*extract, transform, load*): extrai da fonte, transforma num servidor intermediário e carrega pronto no destino. Era o caminho natural quando o armazenamento do data warehouse era caro: só entrava o que já estava limpo.
  • ELT (*extract, load, transform*): carrega o bruto primeiro e transforma dentro da própria plataforma (Spark, Databricks SQL, o warehouse), onde está o poder de processamento.

Por que o ELT ganhou espaço

  • Armazenamento em nuvem é barato, e guardar o bruto permite reprocessar quando a regra mudar.
  • A transformação roda perto do dado, em motor distribuído, em vez de num servidor do meio.
  • A camada bronze da arquitetura medalhão é exatamente o "L antes do T".

Quando o T vem antes

  • Dado sensível que não pode chegar cru ao lake (mascarar ou descartar na extração).
  • Fonte que só entrega em formato que precisa de conversão para ser carregado.
  • Volume reduzido na origem para economizar transferência.

A mesma transformação nos dois mundos

PythonSaída conferida rodando Python 3 no teste do site.
import csv
import io

bruto = "id,valor\n1,230.50\n2,\n3,abc\n"
validos, rejeitados = [], []
for linha in csv.DictReader(io.StringIO(bruto)):
    try:
        validos.append({"id": int(linha["id"]), "valor": float(linha["valor"])})
    except ValueError:
        rejeitados.append(linha["id"])
print("carregados:", validos)
print("rejeitados:", rejeitados)

Saída (conferida)

carregados: [{'id': 1, 'valor': 230.5}]
rejeitados: ['2', '3']

No ETL, os rejeitados nunca chegam ao destino (e somem, se ninguém guardar). No ELT, as três linhas chegam à bronze, e a regra roda na silver, onde dá para mudar de ideia sobre o abc e reprocessar.

Fontes

Conhecimento compartilhado pela Genesis Innovation.