Limitações da tabela dinâmica

Este tópico descreve as limitações gerais e entre recursos das tabelas dinâmicas.

Limitações gerais

As seguintes limitações gerais se aplicam ao uso de tabelas dinâmicas:

  • Uma única conta pode conter no máximo 50.000 tabelas dinâmicas.

  • Você não pode truncar dados de uma tabela dinâmica.

  • Você não pode criar uma tabela dinâmica temporária.

  • Quando você usa uma tabela dinâmica para ingerir dados compartilhados, a consulta não pode selecionar uma tabela dinâmica compartilhada ou uma exibição segura compartilhada que faça referência a uma tabela dinâmica upstream.

  • Você não pode usar funções secundárias com tabelas dinâmicas porque as atualizações de tabelas dinâmicas atuam como função de proprietário. Para obter mais informações, consulte Autorização por meio de função primária e funções secundárias.

  • Você não pode definir o parâmetro de objeto DATA_RETENTION_TIME_IN_DAYS em suas tabelas de origem como zero.

  • Você não pode usar SQL dinâmico (por exemplo, variáveis de sessão ou variáveis ​​não vinculadas de blocos anônimos) na definição da tabela dinâmica.

  • Em uma definição de tabela dinâmica, blocos SELECT que leem de funções de tabela definidas pelo usuário (UDTF) devem especificar colunas explicitamente e não podem usar *.

  • Tabelas dinâmicas podem ficar obsoletas se não forem atualizadas dentro do período MAX_DATA_EXTENSION_TIME_IN_DAYS das tabelas de entrada. Uma vez obsoletos, elas devem ser recriadas para retomar as atualizações.

  • Tabelas dinâmicas atualmente não oferecem suporte ao rastreamento no Exibição ACCESS_HISTORY. Isso significa que consultas e operações realizadas em tabelas dinâmicas não são capturadas no ACCESS_HISTORY do Snowflake para fins de auditoria ou monitoramento.

  • Ao criar uma tabela dinâmica que usa um warehouse chamado DEFAULT, você deve usar aspas duplas ao redor do nome, seguindo os requisitos do identificador de aspas duplas. Por exemplo, CREATE DYNAMIC TABLE ... WAREHOUSE = "DEFAULT". Para obter mais informações sobre a criação de tabelas dinâmicas, consulte Criação de tabelas dinâmicas.

  • As tabelas dinâmicas não são compatíveis com fontes que incluem tabelas de diretório, tabelas externas, fluxos e exibições materializadas.

  • Você não pode criar tabelas dinâmicas que leiam de exibições que consultam outras tabelas dinâmicas.

Suporte para interações entre recursos

As seguintes interações entre recursos não são suportadas:

  • Uso do Query Acceleration Service (QAS) para atualizações da tabela dinâmica.

  • Políticas de mascaramento com funções de banco de dados em tabelas compartilhadas.

  • As políticas de agregação e projeção não podem ser aplicadas às tabelas base das tabelas dinâmicas. Se uma tabela base tiver políticas de agregação ou projeção associadas a ela, a tabela dinâmica não será criada.

Suporte para atualizações incrementais

As tabelas dinâmicas oferecem suporte a dois modos de atualização: incremental e total. Você pode definir o modo de atualização como AUTO ou defini-lo explicitamente. Para obter mais informações, consulte Modos de atualização de tabelas dinâmicas e Práticas recomendadas para escolher os modos de atualização da tabela dinâmica.

Políticas de mascaramento e acesso a linhas

Políticas de mascaramento ou acesso a linhas em uma tabela dinâmica não afetam seu modo de atualização. Entretanto, as políticas aplicadas nas tabelas de origem podem afetar o modo de atualização:

  • A atualização incremental é compatível se as políticas nas tabelas de origem usarem a função CURRENT_ROLE ou IS_ROLE_IN_SESSION.

  • A atualização incremental não é aceita se as políticas nas tabelas de origem usarem quaisquer outras funções, exibições INFORMATION_SCHEMA ou consulta de uma tabela (por exemplo, uma pesquisa de tabela de mapeamento).

Replicação

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

Para obter mais informações, consulte Replicação e tabelas dinâmicas.

Clonagem

Tabelas dinâmicas incrementais clonadas podem precisar ser reinicializadas durante a primeira atualização após serem criadas

Se uma tabela dinâmica for clonada de outra tabela dinâmica com tabelas base descartadas, o clone será suspenso e não poderá ser retomado ou atualizado.