join¶
fábrica
une os dados de dois nós do canvas por uma condição de igualdade entre colunas — o join relacional clássico (inner, left, right, full), aplicado visualmente entre dois pontos do seu pipeline.
quando usar¶
- cruzar pedidos com clientes por
cliente_id, produtos com categorias porcategoria_id, etc. - combinar uma extração de sistema operacional com uma tabela de referência já existente no lakehouse (via lakehouse reader)
- enriquecer um dataset com colunas de outra fonte, sem duplicar linhas indevidamente (escolhendo o tipo de join correto)
configuração¶
| campo | tipo | obrigatório | descrição |
|---|---|---|---|
left |
string | sim | id do nó que alimenta o lado esquerdo do join |
right |
string | sim | id do nó que alimenta o lado direito do join |
on |
lista de {left, right} |
sim | pares de colunas usadas na condição de igualdade — múltiplos pares são combinados com AND |
type |
enum | sim | inner, left, right ou full · padrão: inner |
tipos de join¶
| tipo | comportamento |
|---|---|
inner |
mantém apenas linhas com correspondência nos dois lados |
left |
mantém todas as linhas do lado esquerdo; colunas do lado direito ficam nulas quando não há correspondência |
right |
mantém todas as linhas do lado direito; colunas do lado esquerdo ficam nulas quando não há correspondência |
full |
mantém todas as linhas de ambos os lados, preenchendo com nulo onde não há correspondência |
exemplo¶
{
"left": "node_pedidos",
"right": "node_clientes",
"on": [{ "left": "cliente_id", "right": "id" }],
"type": "left"
}
produz uma linha para cada pedido, com as colunas do cliente correspondente anexadas — pedidos sem cliente encontrado ainda aparecem no resultado, com as colunas de cliente nulas.
join por múltiplas colunas¶
{
"left": "node_vendas",
"right": "node_metas",
"on": [
{ "left": "regiao", "right": "regiao" },
{ "left": "mes", "right": "mes" }
],
"type": "inner"
}
no canvas¶
o nó join se conecta a dois nós upstream (esquerdo e direito) — diferente da maioria dos nós de fábrica, que têm uma única entrada. arraste as conexões dos dois nós de origem até o nó join e selecione qual é left e qual é right na configuração.
join vs. merge¶
este nó (join) faz o cruzamento relacional real por chave — é o que a maioria das pessoas espera de um "join" em sql. já o nó merge, na categoria de controle, tem um propósito diferente: ele consolida os dados de múltiplos nós upstream em um único dataset (empilhamento schema-aligned), sem cruzar colunas por chave.
| você precisa de... | use |
|---|---|
| cruzar duas tabelas por uma chave comum, combinando colunas | join (este nó) |
| consolidar várias fontes com o mesmo formato em um único dataset | merge |