Replicação de notebooks

Nota

Para replicar notebooks, é necessário habilitar o pacote de mudança de comportamento 2025_07 em sua conta. Para ativar este pacote em sua conta, execute a seguinte instrução:

SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2025_07');
Copy

A replicação oferece suporte à continuidade dos negócios em caso de desastres, interrupções ou indisponibilidade, tornando notebooks e outros objetos importantes disponíveis em várias contas. Um grupo de replicação, configurado por um administrador, replica objetos de conta e bancos de dados de uma conta primária para uma ou mais contas secundárias em um cronograma definido.

Os notebooks são replicados quando fazem parte de um banco de dados incluído em um grupo de replicação ou failover. Na conta secundária, o conteúdo replicado é somente leitura; Notebooks são executáveis, mas não podem ser editados.

A replicação de banco de dados pode ser configurada como um grupo de failover para oferecer suporte a alta disponibilidade. Quando um grupo secundário de failover é promovido a primário, todos os objetos contidos, incluindo notebooks, se tornam graváveis na nova conta primária.

Para obter mais informações, consulte Introdução à replicação e failover em várias contas.

Habilitar a replicação

Um usuário com a função ORGADMIN deve habilitar a replicação para cada conta de origem e destino na organização:

USE ROLE ORGADMIN;
SELECT SYSTEM$GLOBAL_ACCOUNT_SET_PARAMETER(
    '<organization_name>.<account_name>',
    'ENABLE_ACCOUNT_DATABASE_REPLICATION',
    'true');
Copy

Para obter mais informações, consulte Pré-requisito: Habilitar a replicação para contas na organização.

Criar um grupo de replicação na conta primária

Para replicar um notebook, especifique o banco de dados que contém o notebook no grupo de replicação:

USE ROLE ACCOUNTADMIN;

CREATE REPLICATION GROUP myrg
    OBJECT_TYPES = DATABASES
    ALLOWED_DATABASES = db1
    ALLOWED_ACCOUNTS = myorg.myaccount2
    REPLICATION_SCHEDULE = '10 MINUTE';
Copy

Neste exemplo:

  • ALLOWED_DATABASES: o nome do banco de dados que contém o notebook.

  • ALLOWED_ACCOUNTS: a conta secundária para a qual replicar.

  • REPLICATION_SCHEDULE: com que frequência ocorre a replicação (por exemplo, “10 MINUTE” ou “1 HOUR”).

Replicar um warehouse

Para executar um notebook replicado, como pretendido, na conta secundária, quaisquer objetos associados, como warehouses, EAIs e tarefas, devem ser replicados ou recriados separadamente.

Para replicar um warehouse, inclua o warehouse no parâmetro OBJECT_TYPES no grupo de replicação/failover.

-- Create a new warehouse if required
CREATE WAREHOUSE IF NOT EXISTS mywarehouse
  WAREHOUSE_SIZE = 'X-SMALL'
  AUTO_SUSPEND = 60
  AUTO_RESUME = TRUE
  COMMENT = 'Warehouse for Snowflake Notebooks';

-- Set up warehouse replication
CREATE REPLICATION GROUP mywarehouserg
  OBJECT_TYPES = WAREHOUSES
  ALLOWED_ACCOUNTS = myorg.myaccount2
  REPLICATION_SCHEDULE = '10 MINUTE';
Copy

Para obter mais informações sobre sintaxe e uso, consulte CREATE REPLICATION GROUP.

Comportamento da conta secundária

Em uma conta secundária, você pode criar novos notebooks somente em bancos de dados não replicados. Esses notebooks não estão incluídos no grupo de replicação e são totalmente de leitura e gravação.

Os notebooks replicados são somente leitura. No entanto, os usuários podem alterar os recursos de computação associados e as integrações de acesso externo (EAIs). Esses recursos devem ser criados ou replicados separadamente. Se não estiverem disponíveis, o notebook não terá esses recursos anexados.

Criar um grupo de replicação na conta de destino como uma réplica do grupo de replicação myrg na conta de origem:

CREATE REPLICATION GROUP myrg
    AS REPLICA OF myorg.myaccount1.myrg;
Copy

Você também pode criar um grupo de replicação para warehouses, se necessário. Observe que todos os warehouses da conta serão replicados:

CREATE REPLICATION GROUP mywarehouserg
    AS REPLICA OF myorg.myaccount1.mywarehouserg;
Copy

O grupo de replicação também pode ser atualizado manualmente executando o seguinte comando:

ALTER REPLICATION GROUP myrg REFRESH;
Copy

Criação de um grupo de failover

Para permitir a promoção da conta secundária para primária durante uma interrupção, use um grupo de failover:

USE ROLE ACCOUNTADMIN;
CREATE FAILOVER GROUP myfg
  OBJECT_TYPES = DATABASES
  ALLOWED_DATABASES = db1
  ALLOWED_ACCOUNTS = myorg.myaccount2
  REPLICATION_SCHEDULE = '10 MINUTE';
Copy

Nesse exemplo, ALLOWED_DATABASES é o banco de dados a ser criado no grupo de failover. O notebook replicado no grupo de failover é somente leitura, mas ainda executável. Se você promover o grupo de failover para primário, o notebook se tornará de leitura e gravação.

Considerações

  • Os notebooks agendados em uma conta secundária são pausados até o failover. Após o failover, o agendamento é retomado.

  • Para replicação e comportamento de tarefa, consulte Considerações sobre a replicação.

  • Os resultados do notebook são armazenados apenas na conta em que o notebook foi executado. Os resultados do notebook não são replicados.

Limitações

  • Atualmente, a integração do Git não é compatível após o failover. Para que notebooks em uma conta secundária promovida possam se reconectar ao Git, é necessário reconfigurar o Git.

Notebooks do Container Runtime

Os Notebooks que usam o Container Runtime não são totalmente replicados. Especificamente, os pools de computação não são replicados e devem ser criados manualmente na conta secundária.

Para executar um notebook Container Runtime na conta secundária:

  1. Identifique o pool de computação usado na conta de origem.

  2. Crie um pool de computação com o mesmo nome e configuração na conta secundária: Por exemplo, se um notebook replicado fizer referência a um pool de computação chamado compute_pool, crie esse pool de computação na conta secundária:

-- In the secondary account, create a new compute pool with a matching name and configuration

CREATE COMPUTE POOL compute_pool
  MIN_NODES = 1
  MAX_NODES = 10
  INSTANCE_FAMILY = CPU_X64_XS;
Copy

Depois de criado, o notebook replicado pode usar o pool de computação para ser executado na conta secundária.