Skip to content

fix(dbt): tira os relationships do pronac entre as silvers da Rouanet - #145

Merged
LuizaMaluf merged 1 commit into
mainfrom
fix/salic-testes-relationships-rouanet
Nov 3, 2026
Merged

LuizaMaluf merged 1 commit into
mainfrom
fix/salic-testes-relationships-rouanet

Conversation

@LuizaMaluf

Copy link
Copy Markdown
Member

Descrição

Desde o #138, a minc_cosmos_dag falha toda noite em quatro tasks de teste do SALIC, e três tabelas nunca chegam a ser criadas: silver_sac_projeto_rouanet, silver_sac_pagamento_profissional_rouanet e silver_sac_projeto_local_execucao.

A causa é um impasse entre os testes e o Cosmos. A DAG roda os testes de cada modelo logo depois do run dele, com dbt test --select <modelo>. Esse comando também seleciona os testes relationships em que o modelo é um dos dois lados. Cinco testes ligavam o pronac das silvers da Rouanet à silver_sac_projeto_rouanet, ou dela ao mapa de chaves:

  • silver_sac_aprovacao_rouanet, silver_sac_captacao_rouanet, silver_sac_projeto_proponente_rouanet e silver_sac_evento_acesso_rouanet, para a silver_sac_projeto_rouanet;
  • silver_sac_projeto_rouanet, para a silver_sac_chave_projeto_rouanet.

O último fecha o ciclo:

  1. A task test do mapa de chaves também roda esse teste.
  2. O teste lê a silver de projeto, que ainda não existe, e falha com relation "salic.silver_sac_projeto_rouanet" does not exist.
  3. Com o teste do mapa falhando, a silver de projeto, o pagamento profissional e o local de execução ficam em upstream_failed.
  4. Na noite seguinte, a silver de projeto continua sem existir, e o ciclo se repete.

Este PR tira os cinco testes. Nenhum deles pode reprovar por dado: a silver_sac_projeto_rouanet é exatamente o conjunto de PRONACs do mapa de chaves, e o mapa é montado a partir da aprovação, da captação e dos vínculos com agente. Os testes not_null, unique e accepted_values das mesmas colunas continuam.

Issue relacionada

Sem issue própria. Refs #138.

Tipo de mudança

  • Ingestão — cliente de API, DAG, carga
  • Modelo dbt — transformação, camada, teste
  • Correção de bug ou de inconsistência de dados
  • Infra / CI
  • Documentação
  • Outro: ___

Impacto em dados

  • Schemas e tabelas afetados: nenhuma tabela muda de conteúdo. Depois do merge, a próxima execução cria em salic as três silvers que faltam.
  • Camada: silver.
  • Precisa reexecutar alguma coisa depois do merge? Basta a minc_cosmos_dag na execução normal, ou uma execução manual para não esperar a noite.
  • Muda número que já está em uso? Não.

Como testar

cd dbt/minc && dbt parse
make test

Depois do merge, no grid da minc_cosmos_dag, as tasks test de silver_sac_aprovacao_rouanet, silver_sac_captacao_rouanet, silver_sac_projeto_proponente_rouanet e silver_sac_chave_projeto_rouanet ficam verdes, e a silver_sac_projeto_rouanet roda.

Evidências

Os logs das tasks test da execução scheduled__2026-11-03T04:00:00+00:00 mostram, para aprovação, captação e ponte projeto–proponente:

  • todos os outros testes do modelo passam;
  • o relationships do pronac falha com relation "salic.silver_sac_projeto_rouanet" does not exist.

No banco, a silver_sac_chave_projeto_rouanet e todas as entradas da silver de projeto existem, mas a silver de projeto, o pagamento profissional e o local de execução não.

Em dev_salic, no #138 e no #139, os mesmos modelos passaram nos testes porque todos os runs aconteceram antes dos testes.

Checklist

  • Título segue Conventional Commits
  • Issue relacionada referenciada acima — sem issue própria
  • Rodei make lint localmente — ou justifiquei abaixo por que não
  • Rodei make test localmente — ou justifiquei abaixo por que não
  • Testes dbt adicionados ou atualizados, se aplicável
  • Descrição das colunas atualizada no schema.yml, se criei ou alterei modelo — nenhuma coluna mudou
  • Nenhuma credencial, CPF, CNPJ ou dado pessoal no código, no log ou no print
  • Branch atualizada com origin/main
  • Documentação afetada atualizada — não há documentação afetada

Lint. O PR só apaga 20 linhas de YAML. O make lint falha na main por 45 arquivos Python que este PR não toca, e o dbt parse passa.

Testes. make test passou: 8.127 testes, 53 pulados.

🤖 Generated with Claude Code

O Cosmos roda o teste de cada modelo logo depois do run dele, e o
relationships também lê o modelo de destino, que ainda não existe ou está
com a carga da véspera. Falhava toda noite com 'relation does not exist'.
Nenhum dos cinco pode reprovar por dado: silver_sac_projeto_rouanet é o
conjunto do mapa de chaves, montado da aprovação, da captação e dos
vínculos com agente.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@LuizaMaluf
LuizaMaluf merged commit 6733a9b into main Nov 3, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants