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:
Se você vir muitas entradas SKIPPED, consulte Atualizações ignoradas.
Se houver entradas FAILED consistentes, consulte Atualizações com falha.
Se houver uma entrada SCHEDULED ou EXECUTING travada por um longo período de tempo, consulte Monitorar o desempenho da tabela dinâmica.
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
));
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.
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;
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.