Pular para conteúdo

fábrica (transformações)

fábrica

nós de fábrica operam sobre os dados em memória, entre a fonte e o destino. cada operação recebe a tabela do nó anterior como entrada e produz uma nova tabela como saída — sem exigir que você escreva sql manualmente (embora sempre exista a opção de sql livre, para quem prefere).


operações disponíveis

o que faz quando usar
filtrar linhas remove registros que não atendem a uma condição limpar dados antes de persistir; recortar um subconjunto de negócio
renomear campo renomeia uma ou mais colunas padronizar nomes de coluna vindos de fontes com nomenclatura diferente
remover campos remove colunas indesejadas descartar colunas sensíveis ou irrelevantes antes de persistir
remover nulos/vazios remove linhas com valores nulos/vazios em colunas-chave garantir completude antes de um quality gate
adicionar campo cria nova coluna com expressão derivar métricas, flags e campos calculados
converter tipo faz cast de tipo de uma coluna corrigir tipos inferidos incorretamente antes do bronze
deduplicar remove registros duplicados eliminar reprocessamento ou duplicidade de origem
agregar group by com funções de agregação construir métricas de camada gold
validar schema valida tipos/obrigatoriedade e descarta ou barra linhas inválidas qualidade de dados em linha, antes do quality gate
mapeamento (de-para) seleciona, renomeia e tipifica campos em um único passo normalizar um payload de origem para o schema de destino
expandir json achata campos de uma coluna json/jsonb em novas colunas tipadas dados de apis/mongo com colunas json aninhadas
explodir array transforma cada elemento de um array em uma linha normalizar campos de lista (tags, itens de pedido)
pivot transforma valores de uma coluna em novas colunas relatórios wide (ex: meses como colunas)
unpivot transforma múltiplas colunas em linhas normalizar planilhas wide para long antes de análises
expandir struct expande todos os campos de uma coluna struct em colunas individuais achatar objetos aninhados de uma única vez
python script transformação customizada escrita em python lógica que não é expressável em sql/lowcode
join une duas tabelas de nós diferentes por chave, com inner/left/right/full combinar dados de duas fontes distintas no mesmo pipeline
sql sql livre referenciando outros nós do pipeline transformações complexas melhor expressas em sql puro

como escolher entre join, merge e sql

o builder tem três formas de combinar/consolidar dados que parecem sobrepostas à primeira vista — mas servem propósitos diferentes:

categoria o que realmente faz
join fábrica / runtime join relacional de verdade: combina colunas de dois nós por uma condição de igualdade (inner/left/right/full)
merge controle consolida múltiplos nós upstream em um único dataset (empilhamento schema-aligned, não é join por chave)
sql controle / runtime sql livre sobre um ou mais nós — a ferramenta certa quando a lógica não cabe em um nó lowcode

se você precisa cruzar duas tabelas por uma chave comum (ex: pedidos + clientes por cliente_id), use join. se você precisa consolidar dados de múltiplas fontes com o mesmo formato em um único dataset (ex: vendas da filial a + vendas da filial b), use merge. se a lógica é complexa demais para qualquer um dos dois, use sql.


todas as operações rodam em memória

nós de fábrica não persistem nada — o resultado só é gravado no lakehouse quando chega a um nó lakehouse writer. isso permite encadear quantas transformações forem necessárias sem custo de escrita intermediária.