Sobre o gerenciamento de tabelas dinâmicas

O gerenciamento de tabelas dinâmicas geralmente envolve as seguintes tarefas:

Tarefa

Descrição

Listagem de tabelas dinâmicas e visualização de informações sobre uma tabela dinâmica

Listagem e visualização de tabelas dinâmicas.

Alteração do warehouse ou meta de atraso para uma tabela dinâmica

Alteração de tabelas dinâmicas.

Listagem de tabelas dinâmicas e visualização de informações sobre uma tabela dinâmica

Para listar as tabelas dinâmicas em um banco de dados e visualizar informações dessas tabelas dinâmicas, você pode usar o Snowsight ou os comandos SQL:

Uso do Snowsight para listar tabelas dinâmicas e exibir detalhes

Para listar as tabelas dinâmicas em um esquema e visualizar informações de uma tabela dinâmica:

  1. Entre no Snowsight.

  2. Selecione Data » Databases.

  3. No navegador de objetos do banco de dados próximo ao painel de navegação, selecione um esquema de banco de dados.

  4. Na página de detalhes do esquema, selecione a guia Dynamic Tables.

    Observe que você também pode visualizar a lista de tabelas dinâmicas no navegador de objetos do banco de dados expandindo Dynamic Tables.

  5. Para visualizar informações de uma tabela dinâmica específica, selecione a tabela dinâmica no navegador de objetos do banco de dados ou na lista de tabelas dinâmicas na aba Dynamic Tables.

    As abas nesta página fornecem algumas das informações também fornecidas pela página de detalhes da tabela, incluindo:

    • A definição da tabela dinâmica e os privilégios concedidos para trabalhar com a tabela dinâmica

    • Informações sobre as colunas na tabela dinâmica

    • Uma visualização de até 100 linhas dos dados na tabela dinâmica

    Além disso, a página de detalhes da tabela dinâmica inclui abas que você pode usar para visualizar informações sobre a tabela dinâmica:

Uso de comandos SQL para listar tabelas dinâmicas e exibir detalhes

  • Para listar as tabelas dinâmicas no banco de dados atual (ou na conta, se nenhum banco de dados estiver em uso), use o comando SHOW DYNAMIC TABLES.

    Por exemplo, para listar as tabelas dinâmicas com nomes que começam com product_ no banco de dados mydb e no esquema myschema, execute a seguinte instrução SQL:

    SHOW DYNAMIC TABLES LIKE 'product_%' IN SCHEMA mydb.myschema;
    
    Copy

    Para obter a sintaxe completa do comando, consulte SHOW DYNAMIC TABLES.

  • Para obter informações sobre as colunas em uma tabela dinâmica, use o comando DESCRIBE DYNAMIC TABLE.

    Por exemplo, para listar as colunas na tabela dinâmica chamada product:

    DESC DYNAMIC TABLE product;
    
    Copy

As tabelas dinâmicas também estão incluídas nos resultados de Exibição TABLES.

Compartilhamento de dados com tabelas dinâmicas

Tabelas dinâmicas são objetos compartilháveis. Para compartilhar uma tabela dinâmica, os provedores de compartilhamento de dados concedem privilégios em uma tabela dinâmica para um compartilhamento, que por sua vez pode ser usado por consumidores de compartilhamento de dados.

Como os dados são compartilhados com tabelas dinâmicas

Os provedores podem compartilhar tabelas dinâmicas selecionadas com outras contas Snowflake usando compartilhamento direto ou listagens, que permitem que os dados sejam compartilhados entre contas sem movê-los fisicamente. O processo envolve a criação de um compartilhamento de um banco de dados na conta do provedor, a concessão de acesso ao banco de dados na conta do provedor, a concessão de privilégios de acesso e a adição de outros objetos ao compartilhamento. Para saber mais, consulte Introdução ao Secure Data Sharing e Visão geral do compartilhamento de dados no Snowflake.

Um provedor de compartilhamento de dados pode optar por conceder o privilégio SELECT em uma única tabela dinâmica ou conceder o privilégio SELECT em todas as tabelas dinâmicas em um banco de dados, conforme mostrado nos exemplos a seguir.

GRANT SELECT ON ALL DYNAMIC TABLES IN SCHEMA mydb.public TO SHARE share1;

GRANT SELECT ON DYNAMIC TABLE mydb.public TO SHARE share1;
Copy

Para obter mais detalhes, consulte GRANT <privilégio> … TO SHARE.

Criação de uma tabela dinâmica para ingerir dados compartilhados

Para criar uma tabela dinâmica para ingerir dados compartilhados, faça o seguinte:

  1. Certifique-se de ter os privilégios corretos e crie um banco de dados a partir de um compartilhamento e conceda privilégios a ele.

    CREATE DATABASE shared_db FROM SHARE provider_account.share1;
    
    Copy
  2. Conceda privilégios ao banco de dados compartilhado.

  3. Crie uma tabela dinâmica compartilhada.

    CREATE OR REPLACE DYNAMIC TABLE <dt_name>
      TARGET_LAG = '1 day'
      WAREHOUSE = <warehouse_name>
      AS
        SELECT * FROM shared_db.public.mydb;
    
    Copy

    Nota

    O rastreamento de alterações deve ser ativado em todos os objetos subjacentes usados por uma tabela dinâmica. Para usar uma tabela dinâmica para ingerir dados compartilhados, o provedor de compartilhamento de dados precisa ativar change_tracking no objeto compartilhado. Consulte Tabelas dinâmicas e rastreamento de alterações.

As seguintes limitações se aplicam ao uso de tabelas dinâmicas para ingerir dados compartilhados:

  • Atualmente, não há suporte para a criação de uma tabela dinâmica sobre uma tabela dinâmica compartilhada.

  • Atualmente, não há suporte para a criação de uma tabela dinâmica sobre uma exibição segura compartilhada que faça referência a uma tabela dinâmica a montante.

  • Atualmente, o preenchimento automático entre nuvens não é compatível com tabelas dinâmicas compartilhadas.

Alteração do warehouse ou meta de atraso para uma tabela dinâmica

  • Para alterar o warehouse ou a meta de atraso de uma tabela dinâmica, use o comando ALTER DYNAMIC TABLE.

    Por exemplo, para alterar o warehouse da tabela dinâmica product para my_other_wh, execute:

    ALTER DYNAMIC TABLE product SET
      WAREHOUSE = my_other_wh;
    
    Copy

Para a sintaxe completa do comando ALTER DYNAMIC TABLE, consulte ALTER DYNAMIC TABLE.

Determinação da meta de atraso ideal para uma tabela dinâmica

Para determinar o tempo de atraso ideal para uma tabela dinâmica, você pode usar o Snowsight ou os comandos SQL.

Snowsight
  1. Na página de detalhes da tabela dinâmica, clique na guia Refresh History.

  2. Verifique o tempo de atraso real máximo, que é exibido na parte superior da aba. Essa métrica é baseada no tempo de atraso real para cada atualização.

SQL
  • Use a função de tabela DYNAMIC_TABLE_REFRESH_HISTORY em INFORMATION_SCHEMA. Esta função retorna informações sobre cada atualização de uma tabela dinâmica, incluindo o tempo gasto para a atualização e quais atualizações foram ignoradas.

O tempo de atraso escolhido pode afetar o agendamento de atualização determinado pelo processo de atualização automatizada. O processo de atualização automatizada escolhe um agendamento que melhor atenda aos tempos de atraso das tabelas dinâmicas.

Como determinar se é usada uma atualização incremental ou completa

Para determinar se é usada uma atualização incremental ou completa para atualizar uma tabela dinâmica, você pode usar o Snowsight ou comandos SQL.

Snowsight
SQL
  • Use o comando SHOW DYNAMIC TABLES e verifique o valor da coluna REFRESH_MODE na saída.

    Se REFRESH_MODE = FULL, REFRESH_MODE_REASON inclui detalhes adicionais sobre o motivo pelo qual uma atualização completa foi executada.