Skip to content

Verificar a situação das datas de atualização #1806

Description

@laura-l-amaral

Descrição

Auditoria decorrente do bug corrigido no #1783 (a migração para Prefect 3 fez poll_source_for_update comparar Table.Update.latest — timestamp de execução — em vez de Coverage.DateTimeRange — competência real; casos confirmados: br_me_caged #1760 e br_ans_beneficiario). A hipótese era que outros flows pudessem ter a mesma lacuna silenciosa.

Verificamos manualmente 58 tabelas cruzando três fontes: Coverage.DateTimeRange (GraphQL), dado real no BigQuery (SELECT MAX(...) nas colunas de competência, partition-pruned, via credencial de prod) e Table.Update.latest atual (GraphQL).

Resultado: em 57 das 58 tabelas, Coverage é fiel ao BigQuery. O bug do #1783 não se repetiu em nenhum outro caso verificado — onde há lacuna de dado, é execução de flow/crawler, não comparação de metadado errada. A única exceção é br_ms_sinan.microdados_dengue, onde o próprio Coverage (não só Table.Update) ficou 5 meses atrás do BigQuery real.

Isso é relevante pra esta chore porque Table.Update.latest, ao contrário do Coverage, não tinha sido validado sistematicamente até agora — é o campo que esta issue propõe atualizar com os metadados reais da API do BigQuery. A tabela em "Escopo afetado" dá o valor atual e a referência de competência real do BigQuery pra cada tabela verificada.

Escopo afetado

Tabela completa — 58 tabelas verificadas

Dataset.tabela Table.Update.latest atual Max real (BigQuery) Coverage bate com o BigQuery?
br_ibge_ipca.mes_brasil 2026-08-13 (relógio) 2026-06
br_ibge_ipca15.mes_brasil 2026-06-26 (relógio) 2026-06
br_ibge_inpc.mes_brasil 2026-08-13 (relógio) 2026-07
br_bcb_estban.agencia 2026-08-19 (relógio) 2026-03
br_denatran_frota.uf_tipo 2026-08-19 (relógio) 2026-07
br_anp_precos_combustiveis.microdados 2026-08-15 (relógio) 2026-08-14
br_inmet_bdmep.microdados 2026-08-10 (relógio) 2026-07-31
br_rf_cnpj.empresas 2026-08-14 (relógio) 2026-08-01
br_rf_cnpj.estabelecimentos 2026-08-14 (relógio) 2026-08-01
br_rf_cnpj.socios 2026-08-14 (relógio) 2026-08-01
br_cgu_cartao_pagamento.microdados_governo_federal 2026-08-13 (relógio) 2026-07
br_cgu_servidores_executivo_federal.cadastro_servidores 2026-08-13 (relógio) 2026-06
br_ms_sih.aihs_reduzidas 2026-06-13 (relógio) 2026-04
br_ms_sia.producao_ambulatorial 2026-07-11 (relógio) 2026-05
br_anatel_banda_larga_fixa.microdados 2026-08-13 (relógio) 2026-06
br_anatel_telefonia_movel.microdados 2026-08-17 (relógio) 2026-06
br_cgu_licitacao_contrato.contrato_compra 2026-04-05 (relógio, parado) 2026-05 🟡 ~1 mês atrás do real
br_cgu_licitacao_contrato.contrato_item 2026-04-04 (relógio, parado) 2026-05 🟡 ~1 mês atrás do real
br_cgu_licitacao_contrato.contrato_termo_aditivo 2026-04-04 (relógio, parado) 2026-05 🟡 ~1 mês atrás do real
br_cgu_beneficios_cidadao.bpc 2026-08-10 (relógio) 2026-06
br_cgu_beneficios_cidadao.garantia_safra 2026-07-10 (relógio) 2026-06
br_cgu_beneficios_cidadao.novo_bolsa_familia 2026-08-11 (relógio) 2026-06
br_rf_cno.areas 2026-08-19 (relógio) 2026-08-19
br_rf_cno.cnaes 2026-08-19 (relógio) 2026-08-19
br_rf_cno.microdados 2026-08-19 (relógio) 2026-08-19
br_rf_cno.vinculos 2026-08-19 (relógio) 2026-08-19
br_rf_cafir.imoveis_rurais 2026-08-03 (relógio) 2026-08-02
br_bcb_agencia.agencia 2026-07-26 (relógio) 2026-06
br_stf_corte_aberta.decisoes 2025-03-03 (relógio, parado) 2025-03-02
br_bcb_taxa_selic.taxa_selic 2025-09-23 (relógio, parado) 2025-03-25
br_me_siconfi.municipio_receitas_orcamentarias 2026-08-01 (relógio) 2025
br_mf_divida_ativa.nao_previdenciario 2026-08-08 (relógio) 2026-T2
br_sedec_desastres.reconhecimentos_vigentes 2026-08-12 (relógio) 2026-08-06
mx_sesnsp_incidencia_delictiva.municipio_delitos 2026-08-12 (relógio) 2026-06
world_wb_wdi.data 2022-12-30 (relógio, parado) 2025
au_abs_cpi.monthly 2026-08-05 (relógio) 2026-06
au_abs_labour_force.labour_force_status 2026-08-06 (relógio) 2026-06
us_bls_cpi.monthly 2026-08-13 (relógio) 2026-07
us_bls_qcew.naics_quarterly_national 2026-08-03 (relógio) 2025-Q4
world_cricsheet.matches 2026-08-01 (relógio) 2026-07-30
br_me_comex_stat.ncm_exportacao 2026-07-01 (cobertura, corrigido) 2026-07
br_me_comex_stat.ncm_importacao 2026-07-01 (cobertura, corrigido) 2026-07
br_me_comex_stat.municipio_exportacao 2026-07-01 (cobertura, corrigido) 2026-07
br_me_comex_stat.municipio_importacao 2026-07-01 (cobertura, corrigido) 2026-07
br_ms_cnes.profissional 2026-07-01 (cobertura) 2026-07
br_ms_cnes.estabelecimento 2026-07-01 (cobertura) 2026-07
br_ms_cnes.equipe 2026-07-01 (cobertura) 2026-07
br_ms_cnes.equipamento 2026-07-01 (cobertura) 2026-07
br_ms_cnes.dados_complementares 2026-07-01 (cobertura) 2026-07
br_ms_cnes.estabelecimento_filantropico 2026-07-01 (cobertura) 2026-07
br_ms_cnes.gestao_metas 2026-07-01 (cobertura) 2026-07
br_ms_cnes.habilitacao 2026-07-01 (cobertura) 2026-07
br_ms_cnes.incentivos 2026-07-01 (cobertura) 2026-07
br_ms_cnes.servico_especializado 2026-07-01 (cobertura) 2026-07
br_ms_cnes.leito 2026-05-01 (cobertura) 2026-05
br_ms_cnes.estabelecimento_ensino 2024-05-16 (relógio, sem cron) 2019-12
br_ms_cnes.regra_contratual 2024-05-16 (relógio, sem cron) 2023-07
br_ms_sinan.microdados_dengue 2026-01-23 2026-06-29 Coverage também desatualizado — única exceção

Prioridade de correção — flows com sinal claro de execução parada

Nestes casos, o timestamp em si mostra que a última execução bem-sucedida foi há muito tempo — atualizar o campo via API do BigQuery vai revelar uma lacuna de dado real, não só corrigir o timestamp:

  1. 🔴🔴 br_stf_corte_aberta.decisoes — última run 2025-03-03 (17,5 meses parado)
  2. 🔴🔴 br_bcb_taxa_selic.taxa_selic — última run 2025-09-23 (17 meses parado)
  3. 🔴 br_ms_sinan.microdados_dengue — único caso onde o Coverage também está errado (não só Table.Update); o BigQuery já tem 5 meses de dado além do que o metadado registra
  4. 🔴 br_cgu_licitacao_contrato (3 tabelas) — última run ~04-05/04/2026 (~4,5 meses parado)
  5. 🟡 world_wb_wdi.data — última run 2022-12-30 (quase 4 anos); vale confirmar se foi descontinuado de propósito antes de "corrigir"
  6. 🟡 br_ms_cnes.estabelecimento_ensino (parado desde 2019-12) e .regra_contratual (desde 2023-07) — sem cron agendado no código, então a staleness pode ser proposital

Observações para quem for implementar

  • Atualizar o timestamp não resolve a causa raiz nos 6 casos acima — o BigQuery vai confirmar que a tabela está genuinamente desatualizada, não que o metadado mentia. Vale abrir issues de acompanhamento separadas pra investigar por que esses flows pararam de rodar (histórico de execução no Prefect), especialmente br_stf_corte_aberta e br_bcb_taxa_selic.
  • br_me_cnpj não tem nenhum registro de Table/Update/Coverage no backend (allCloudtable retorna vazio, apesar das tabelas existirem no BigQuery) — fora do escopo desta chore até esse registro existir ou o dataset ser formalmente descontinuado em favor do br_rf_cnpj.
  • TSE eleições usa uma lógica de detecção própria (contagem de linhas contra a base de prod, não uma comparação direta de datas) — não foi auditado a fundo e pode precisar de tratamento especial na implementação.
  • Todos os valores de "Max real (BigQuery)" acima vieram de SELECT MAX(...)/ORDER BY ... LIMIT 1 nas colunas de competência de cada tabela (não do metadado lastModifiedTime do recurso BigQuery) — quem implementar a chore deve confirmar qual API/campo específico da BigQuery API pretende usar como fonte de verdade, já que os dois conceitos (competência dos dados vs. timestamp de escrita da tabela) são diferentes.

Referências

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions