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

Para compartilhar uma tabela dinâmica com outras contas Snowflake, você pode adicionar tabelas dinâmicas a um compartilhamento ou a um pacote de aplicativos.

  • Para compartilhar uma tabela dinâmica com contas em sua região, você pode usar um compartilhamento direto. Para obter mais informações, consulte Compartilhamento de dados e colaboração no Snowflake.

  • Para compartilhar uma tabela dinâmica com contas em outras regiões, adicione o pacote de compartilhamento ou aplicativo a uma listagem como um produto de dados e configure o preenchimento automático entre nuvens. Para obter mais informações, consulte Criação e publicação de uma listagem.

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

Quando utiliza uma tabela dinâmica para ingerir dados compartilhados, a consulta não pode selecionar a partir de uma tabela dinâmica compartilhada ou de uma exibição segura compartilhada que faça referência a uma tabela dinâmica a montante.

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 my_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 my_dynamic_table
  TARGET_LAG = '1 day'
  WAREHOUSE = mywh
  AS
    SELECT * FROM my_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. Para obter mais informações, consulte Habilitar o rastreamento de alterações.