Diagnóstico de problemas comuns de atualização dinâmica de tabelas

Este tópico aborda soluções para solucionar problemas de tabelas dinâmicas que não são atualizadas como esperado:

Algumas ações podem ser restritas devido a limitações no uso de tabelas dinâmicas ou à ausência dos privilégios necessários. Para obter mais informações, consulte Limitações da tabela dinâmica e Controle de acesso a tabelas dinâmicas.

Se você encontrar um problema não listado aqui, entre em contato com o suporte Snowflake.

Problema

Solução

Minha tabela dinâmica está usando atualização completa em vez de atualização incremental.

O modo de atualização real da tabela dinâmica é determinado no momento da criação e não pode ser alterado posteriormente. Se não for especificado explicitamente, o modo de atualização será definido como AUTO por padrão, selecionando um modo de atualização com base em vários fatores, como complexidade da consulta ou construções, operadores ou funções incompatíveis.

Para um comportamento consistente em todas as versões do Snowflake, defina explicitamente o modo de atualização em todas as tabelas dinâmicas. Por exemplo, se você quiser que suas tabelas dinâmicas sejam atualizadas apenas de forma incremental, você deve definir explicitamente o modo de atualização INCREMENTAL ao criá-las, tendo em mente que pode haver algumas limitações no uso da atualização incremental. Para obter mais informações, consulte Práticas recomendadas para escolher os modos de atualização da tabela dinâmica.

Usando uma função com os privilégios necessários, você pode verificar o modo de atualização usando um dos seguintes métodos:

  • Uso de SQL: Execute a instrução SHOW DYNAMIC TABLES: Na saída, a coluna text exibe o modo de atualização especificado pelo usuário, a coluna refresh_mode mostra o modo de atualização real e refresh_mode_reason mostra por que o modo de atualização real foi escolhido.

  • Usando o Snowsight: No menu de navegação, selecione Monitoring » Dynamic Tables e, em seguida, selecione sua tabela dinâmica. Você pode visualizar o modo de atualização da tabela dinâmica na aba Table Details.

A atualização incremental da minha tabela dinâmica está lenta.

O desempenho de atualização de uma tabela dinâmica depende de suposições específicas sobre a carga de trabalho ou os dados que ela está manipulando.

Use Refresh History para visualizar a variância ou identificar valores discrepantes:

  1. Faça login no Snowsight.

  2. Na navegação, vá para Monitoring » Dynamic Tables.

  3. Selecione sua tabela dinâmica e vá para a aba Refresh History.

  4. Use as durações de atualização de sua tabela dinâmica nas últimas 24 horas para solucionar problemas.

Minha tabela dinâmica está executando uma atualização vazia, mas estou vendo um custo.

Atualizações que produzem zero novas linhas líquidas (ou seja, zero linhas adicionadas, atualizadas ou excluídas) consomem recursos do warehouse quando associadas a alterações em qualquer um dos objetos upstream referenciados pela tabela dinâmica.

Por exemplo, se o warehouse virtual associado for suspenso e nenhuma alteração nos objetos base for identificada, o warehouse virtual suspenso não será retomado e nenhum crédito será consumido. Isso é conhecido como atualização NO_DATA. Por outro lado, se forem identificadas alterações, o warehouse virtual será automaticamente retomado para processar as atualizações, o que consome recursos do warehouse, mesmo que o resultado líquido seja zero linhas aplicadas à tabela dinâmica.

Se você estiver vendo um custo, mas não tiver feito nenhuma alteração em sua tabela dinâmica, pode ser devido a uma alteração em sua tabela de origem. Você pode usar a aba Refresh History no Snowsight para verificar se os créditos do warehouse virtual foram consumidos:

  1. Faça login no Snowsight.

  2. No menu de navegação, selecione Monitoring » Dynamic Tables.

  3. Selecione sua tabela dinâmica e vá para a aba Refresh History.

  4. Marque caixa de seleção Warehouse used only para visualizar as atualizações que usaram o warehouse para atualizar.

Para obter mais informações, consulte Compreensão do custo de tabelas dinâmicas.

Minha tabela dinâmica está sendo reinicializada.

Sua tabela dinâmica pode estar sendo reinicializada devido a um dos seguintes motivos:

  • Uma ou mais entradas da tabela dinâmica são substituídas. Por exemplo, se sua tabela dinâmica estiver definida em uma exibição e você substituir a exibição, a tabela dinâmica terá que ser reinicializada.

  • Se o esquema das entradas foi alterado e sua tabela dinâmica depende das colunas alteradas.

  • Políticas de acesso a dados são adicionadas, removidas ou alteradas nas entradas da tabela dinâmica.

  • A clonagem incremental de tabelas dinâmicas podem precisar ser reinicializadas na primeira atualização após serem criadas.

  • As tabelas dinâmicas replicadas com atualização incremental são reinicializadas após o failover, antes que possam retomar a atualização incremental.

Para obter informações gerais sobre inicialização, consulte Compreensão da inicialização de tabelas dinâmicas.