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');
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');
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';
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';
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;
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;
O grupo de replicação também pode ser atualizado manualmente executando o seguinte comando:
ALTER REPLICATION GROUP myrg REFRESH;
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';
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:
Identifique o pool de computação usado na conta de origem.
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;
Depois de criado, o notebook replicado pode usar o pool de computação para ser executado na conta secundária.