Clonar tabelas dinâmicas

A clonagem cria uma nova tabela dinâmica com as mesmas definições de coluna e contém todos os dados existentes da tabela dinâmica de origem, sem realmente copiar os dados.

Você pode clonar uma tabela dinâmica em uma nova tabela dinâmica ou em uma tabela regular.

Clonar uma tabela dinâmica em uma nova tabela dinâmica

As tabelas dinâmicas clonadas são suspensas por padrão, independentemente de você clonar uma tabela dinâmica diretamente ou clonar um banco de dados ou esquema que contenha tabelas dinâmicas. Na saída da função de tabela DYNAMIC_TABLE_GRAPH_HISTORY, a coluna SCHEDULING_STATE mostra CLONED_AUTO_SUSPENDED como reason_code. Todas as tabelas dinâmicas criadas posteriormente a essas tabelas dinâmicas clonadas também são suspensas, com um reason_code de UPSTREAM_CLONED_AUTO_SUSPENDED. Para obter mais informações, consulte Suspensão dinâmica automática da tabela.

-- Clone a dynamic table to a new dynamic table
CREATE [ OR REPLACE ] [ TRANSIENT ] DYNAMIC TABLE <name>
  CLONE <source_dynamic_table>
        [ { AT | BEFORE } ( { TIMESTAMP => <timestamp> | OFFSET => <time_difference> | STATEMENT => <id> } ) ]
  [
    COPY GRANTS
    TARGET_LAG = { '<num> { seconds | minutes | hours | days }' | DOWNSTREAM }
    WAREHOUSE = <warehouse_name>
  ]
Copy

Você também pode clonar uma tabela dinâmica como ela existia em um ponto específico no passado:

CREATE DYNAMIC TABLE my_cloned_dynamic_table CLONE my_dynamic_table AT (TIMESTAMP => TO_TIMESTAMP_TZ('04/05/2013 01:02:03', 'mm/dd/yyyy hh24:mi:ss'));
Copy

Para obter mais informações, consulte Clonagem usando Time Travel (somente bancos de dados, esquemas, tabelas, tabelas dinâmicas, tabelas de eventos e fluxos).

Clonar uma tabela dinâmica em uma tabela nova

As tabelas clonadas herdam as mesmas definições de coluna e dados da tabela dinâmica de origem, mas não têm propriedades específicas da tabela dinâmica. Elas mantêm políticas de mascaramento e de acesso a linhas, tags, chaves de clustering e comentários.

-- Clone a dynamic table to a new table
CREATE [ OR REPLACE ] TABLE [ IF NOT EXISTS ] <name>
CLONE <source_dynamic_table_name>
  [ { AT | BEFORE } ( { TIMESTAMP => <timestamp> | OFFSET => <time_difference> | STATEMENT => <id> } ) ]
Copy

A clonagem de uma tabela dinâmica em uma tabela regular segue as mesmas considerações da clonagem de uma tabela regular, com as seguintes exceções:

  • A tabela dinâmica de origem precisa ser inicializada para ser clonada como uma tabela regular.

  • Não é possível clonar tabelas dinâmicas Apache Iceberg™.

Práticas recomendadas para clonagem de pipelines de tabelas dinâmicas

Clone todos os elementos do pipeline da tabela dinâmica com o mesmo comando de clonagem para evitar reinicializações de seu pipeline. Você pode fazer isso consolidando todos os elementos do pipeline (por exemplo, tabelas base, visualizações e tabelas dinâmicas) no mesmo esquema ou banco de dados.