Solução de problemas de atualizações de tabelas dinâmicas ignoradas ou com falha

Este tópico ajuda a solucionar problemas de atualizações ignoradas ou com falha. Para diagnósticos de atualização lenta, consulte Monitorar o desempenho da tabela dinâmica.

Ao monitorar as atualizações de tabela dinâmica, observe o seguinte:

Atualizações ignoradas

As tabelas dinâmicas são atualizadas de acordo com um cronograma. Quando uma atualização agendada é iniciada, as seguintes situações podem fazer com que a atualização seja ignorada:

  • Se a tabela dinâmica que está sendo atualizada tiver outra tabela dinâmica upstream e a atualização da upstream falhar ou for ignorada.

  • Se uma atualização anterior da tabela dinâmica ainda estiver em execução.

  • Se a atualização da tabela dinâmica costuma levar muito mais tempo que a meta de atraso ou se houver uma diferença significativa entre a meta de atraso e o atraso real, o Snowflake poderá pular uma atualização para reduzir a taxa de saltos futuros.

    Por exemplo, se uma tabela dinâmica tem uma metra de atraso de 1 minuto, mas costuma levar uma hora para ser atualizada, o sistema ajusta o «atraso real» de acordo com isso.

    Para melhorar o desempenho da atualização, consulte Otimização do desempenho da tabela dinâmica.

As atualizações manuais nunca são ignoradas, mas podem fazer com que outras atualizações programadas sejam ignoradas, especialmente se você realizar atualizações manuais frequentes em uma tabela dinâmica. Isso pode impedir que tabelas dinâmicas downstream sejam atualizadas. Por esse motivo, a Snowflake recomenda que você evite realizar atualizações manuais frequentes em uma tabela dinâmica com tabelas dinâmicas downstream que devem ser atualizadas de acordo com o atraso de destino.

Atualizações com falha

Normalmente, as falhas de atualização são causadas por problemas com a definição de consulta da tabela dinâmica, por dados de entrada (por exemplo, erros de análise) ou por falhas upstream.

Encontrar atualizações com falha

Para encontrar atualizações com falha, consulte o histórico de atualizações:

SELECT
  name,
  data_timestamp,
  state,
  state_code,
  state_message
FROM TABLE(INFORMATION_SCHEMA.DYNAMIC_TABLE_REFRESH_HISTORY(
  NAME_PREFIX => 'MY_DB.MY_SCHEMA',
  ERROR_ONLY => TRUE
));
Copy

Você também pode usar a página Refresh History no Snowsight para visualizar as atualizações com falha. A coluna Source Data Timestamp mostra a hora da última atualização bem-sucedida. Uma atualização com falha mostra esse valor congelado. Se estiver muito atrás da meta de atraso, a tabela dinâmica está atrasada.

Diagnosticar atualizações com falha

Use Query Profile para solucionar problemas selecionando Show query profile ao lado de cada atualização. Isso mostra o gráfico de execução da consulta.

Destaque a opção de perfil de consulta de exibição no Snowsight.

Use a exibição Graph no Snowsight para visualizar as dependências. Uma tabela dinâmica upstream com falha ou suspensa causa falha nas tabelas downstream. Para obter mais informações, consulte Visualize o gráfico das tabelas conectadas às suas tabelas dinâmicas.

Consultar falhas em tabelas de eventos

Você pode consultar uma tabela de eventos para encontrar falhas de atualização em suas tabelas dinâmicas:

SELECT
  timestamp,
  resource_attributes:"snow.executable.name"::VARCHAR AS dt_name,
  resource_attributes:"snow.query.id"::VARCHAR AS query_id,
  value:message::VARCHAR AS error
FROM my_event_table
WHERE
  resource_attributes:"snow.executable.type" = 'DYNAMIC_TABLE' AND
  resource_attributes:"snow.database.name" = 'MY_DB' AND
  value:state = 'FAILED'
ORDER BY timestamp DESC;
Copy

Para obter mais informações sobre como configurar tabelas de eventos e alertas, consulte Monitoramento de tabelas de eventos e alertas para tabelas dinâmicas.