Dataflow Streaming não está identificando tabelas existentes - erro tableNotExists

Description

Debate do tema


Slack thread: https://totvsideia.slack.com/archives/C03LA7B048G/p1739451192126169

Detalhes do problema


Foi identificado um erro ao enviar dados para a staging table semrastreiogerencial na tenant receitarecorrente (dc677a11ffd54758a52103ddaaf4d733). Apesar da tabela estar provisionada corretamente e disponível para consulta no BigQuery, os dados não estão sendo entregues. O erro reportado no step do processamento de intake é BIGQUERY_CUSTOMER_WRITER_ERROR, com a mensagem "tableNotExists". O problema ocorre de maneira intermitente e afeta diferentes tenants.

Evidências Coletadas:

  1. A tabela foi criada corretamente via pycarol e está acessível para SELECT no BigQuery:

    SELECT * FROM `carol-dc677a11ffd54758a52103ddaaf4d733.ingestion_stg_semrastreio_semrastreiogerencial`
  2. O payload de teste foi recebido com sucesso na landing table:

    SELECT *
    FROM `labs-app-mdm-production.intake.records_landing`
    WHERE publish_time >= '2025-02-13'
      AND tenantid = 'dc677a11ffd54758a52103ddaaf4d733'
      AND stagingtype = 'semrastreiogerencial'
      AND auditId = '3909e62b016ed123'
    ORDER BY publish_time DESC;
  3. No processamento de steps, o erro BIGQUERY_CUSTOMER_WRITER_ERROR é registrado com responseMessage: "tableNotExists":

    SELECT *
    FROM `labs-app-mdm-production.intake.records_steps`
    WHERE publish_time >= '2025-02-13'
      AND auditId = '3909e62b016ed123'
    ORDER BY publish_time DESC;
  4. Outras tenants com o mesmo erro:

    SELECT tenantId, STRING_AGG(DISTINCT stagingtype, ', '), COUNT(0) AS count_errors
    FROM `labs-app-mdm-production.intake.records_steps`
    WHERE publish_time >= '2025-02-10'
      AND step = 'BIGQUERY_CUSTOMER_WRITER_ERROR'
      AND JSON_VALUE(attributes, '$.responseMessage') = 'tableNotExists'
    GROUP BY 1
    ORDER BY 3 DESC;
  5. Testes adicionais com outras tabelas semelhantes indicam que algumas funcionam corretamente, enquanto outras apresentam o mesmo erro:

    • newsrg: Recebeu dados corretamente.

    • pycarolcreatedsemrastreiogerencial, teste_carol, sem_rastreio_gerencial_v2, srg, sem_rastreio_gerencial: Apresentaram falha.

  6. Após um período, a inserção na mesma tabela passou a funcionar normalmente, sem nenhuma ação aparente para corrigir o problema:

    AuditId = 8e9e6dfa6c2f0996 (inserção bem-sucedida às 15h35 do dia 13/02/2025)

  7. Exemplos: Staging semrastreiogerencial foi criada no dia 12/Fev porém o auditId eb185139477f290c enviado no dia 13/Fev (horas depois) recebeu o mesmo erro. O mesmo ocorreu com a tabela srg , auditid dc6c773c28aea342.

Impacto:

  • Atualmente, não detectamos impactos no projeto Gesplan, mas impede o progresso do projeto de Receita Recorrente do CST, impossibilitando a inserção de dados na Carol.

  • O problema ocorre de forma intermitente, dificultando a confiabilidade do intake de dados.

    • Diversas tenants podem passar pelo cenário

Critérios de Aceite


  • Identificar causa raiz do cenário para correção e garantir inserção dos dados processados pelo Dataflow Streaming.