Além das etapas guiadas e em SQL livre, uma tabela Silver ou Gold pode ser produzida por um notebook. O pipeline roda a versão publicada do notebook como um job Spark, na ordem das outras etapas, toda vez que o pipeline executa — pela agenda, pelo Executar agora ou ao reprocessar um período.
Antes: crie e publique o notebook. Ver Notebooks e clusters Spark.
Criar a etapa#
1. Abra a camada
No detalhe do pipeline, vá à camada Silver (ou Gold). Ao lado de Nova Silver (ou Nova Gold), clique em Notebook.
2. Escolha o notebook
Em Notebook publicado, escolha o notebook e, em Versão, a versão que o pipeline vai rodar (a mais recente vem marcada).
3. Diga onde gravar
Em Tabela-alvo, dê o nome da tabela que a etapa produz. Em Carga, escolha Substituir a tabela ou Acrescentar linhas.
4. Escolha onde roda
Cluster só para esta execução (liga, roda e desliga) é o padrão e o mais seguro. Num cluster já ligado usa um cluster seu que já está ligado.
5. Parâmetros (opcional) e salvar
Em Parâmetros, um por linha no formato
nome=valor. Clique em Salvar etapa.
Se a lista de notebooks vier vazia, a tela avisa: "Nenhum notebook publicado ainda. O pipeline só roda versões publicadas de um notebook." Publique uma versão no editor (Publicar versão) e volte.
O rascunho nunca roda no pipeline. Para levar uma mudança do notebook para o pipeline, publique uma versão nova e escolha-a na etapa.
O que o notebook encontra pronto#
Quando roda como etapa, o notebook já tem estas variáveis:
| Variável | O que contém |
|---|---|
spark | a sessão Spark, já ligada ao seu datalake |
TABELA_ALVO | o nome completo da tabela-alvo da etapa |
CAMADA | silver ou gold |
PARAMETROS | os parâmetros da etapa, como dicionário de texto (PARAMETROS["nome"]) |
RUN_ID | o identificador da execução do pipeline |
RUN_INTERVAL_START, RUN_INTERVAL_END | o período pedido ao reprocessar (data ISO) ou None |
Onde a etapa grava#
A etapa grava na tabela-alvo, de um destes dois jeitos:
- O notebook tem célula SQL. A última célula SQL vira a tabela-alvo: substitui ou acrescenta, conforme a Carga escolhida. As células SQL anteriores rodam como passos intermediários.
- O notebook é só Python. O seu código grava em
TABELA_ALVO— por exemplo, escrevendo o DataFrame final com o modo de gravação que você quiser.
Exemplo: um parâmetro uf_minima=10 na etapa chega ao código como texto.
minimo = int(PARAMETROS.get("uf_minima", "0"))
print(f"Gravando em {TABELA_ALVO} (camada {CAMADA}), mínimo {minimo}")O notebook só consegue gravar nos datasets do seu próprio workspace.
Regras na conversão#
- As células rodam na ordem; células de texto são ignoradas.
%%sqlna primeira linha de uma célula de código a torna SQL (comum em.ipynbimportado).- Comandos de notebook interativo (
%pip,!ls,%matplotlib) não existem num job: a etapa recusa e aponta a célula. Bibliotecas vêm de Bibliotecas Python extras, na tela do cluster.
Onde roda e quanto custa#
| Onde roda | Como cobra |
|---|---|
| Cluster só para esta execução (padrão) | um cluster é criado para a execução, usado e apagado no fim, mesmo se falhar. Você paga o tempo de vida dele (contando os minutos para ligar), uma vez por execução — uma nova tentativa não cobra duas vezes |
| Num cluster já ligado | não cobra à parte: o cluster ligado já cobra por hora |
Cluster ligado com notebook aberto
Se alguém estiver com um notebook aberto no cluster escolhido, a sessão segura as máquinas e a etapa pode esperar vários minutos para começar. Para pipeline agendado, prefira o cluster só para a execução.
O custo da etapa aparece no custo da execução, em ETL/ELT → Execuções.
Limites#
- Ligar o cluster leva alguns minutos; uma etapa notebook deixa a execução do pipeline mais longa que uma etapa SQL.
- Bronze de arquivo e etapa notebook na mesma execução não rodam juntas: rode a Bronze e, depois, a camada do notebook.