Réplication de notebooks

Note

Pour répliquer les notebooks, vous devez activer le bundle de changements de comportement 2025_07 dans votre compte. Pour activer ce bundle dans votre compte, exécutez l’instruction suivante :

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

La réplication prend en charge la continuité des activités en cas de catastrophe, de panne ou d’indisponibilité en rendant les notebooks et d’autres objets importants disponibles dans les comptes. Un groupe de réplication, configuré par un administrateur, réplique les objets de compte et les bases de données d’un compte principal vers un ou plusieurs comptes secondaires selon une planification définie.

Les notebooks sont répliqués lorsqu’ils font partie d’une base de données incluse dans un groupe de réplication ou de basculement. Dans le compte secondaire, le contenu répliqué est en lecture seule. Les notebooks sont exécutables mais ne peuvent pas être modifiés.

La réplication de base de données peut être configurée en tant que groupe de basculement pour prendre en charge la haute disponibilité. Lorsqu’un groupe de basculement secondaire est promu en principal, tous les objets contenus, y compris les notebooks, deviennent accessibles en écriture dans le nouveau compte principal.

Pour plus d’informations, voir Présentation de la réplication et du basculement à travers plusieurs comptes.

Activer la réplication

Un utilisateur disposant du rôle ORGADMIN doit activer la réplication pour chaque compte source et cible dans l’organisation :

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

Pour plus d’informations, voir. Conditions préalables : Activer la réplication pour les comptes de votre organisation.

Créer un groupe de réplication dans le compte principal

Pour répliquer un notebook, indiquez la base de données qui contient le notebook dans le groupe de réplication :

USE ROLE ACCOUNTADMIN;

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

Dans cet exemple :

  • ALLOWED_DATABASES - le nom de la base de données qui contient le notebook.

  • ALLOWED_ACCOUNTS - le compte secondaire vers lequel la réplication doit être effectuée.

  • REPLICATION_SCHEDULE - à quelle fréquence la réplication a lieu (par exemple, “10 MINUTE” ou “1 HOUR”).

Répliquer un entrepôt

Pour exécuter un notebook répliqué comme prévu dans le compte secondaire, tous les objets associés tels que les entrepôts, les EAIs et les tâches doivent être répliqués ou recréés séparément.

Pour répliquer un entrepôt, incluez l’entrepôt dans le paramètre OBJECT_TYPES dans le groupe de réplication/basculement.

-- 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

Pour plus d’informations sur la syntaxe et les options, voir CREATE REPLICATION GROUP.

Comportement du compte secondaire

Dans un compte secondaire, vous pouvez créer de nouveaux notebooks uniquement dans des bases de données non répliquées. Ces notebooks ne sont pas inclus dans le groupe de réplication et sont entièrement en lecture-écriture.

Les notebooks répliqués sont en lecture seule. Toutefois, les utilisateurs peuvent modifier les ressources de calcul associées et les intégrations d’accès externes (EAIs). Ces ressources doivent être créées ou répliquées séparément. Si elles ne sont pas disponibles, le notebook ne sera pas lié à ces ressources.

Créez un groupe de réplication dans le compte cible en tant que réplica du groupe de réplication myrg dans le compte source :

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

Vous pouvez également créer un groupe de réplication pour les entrepôts si nécessaire. Notez que tous les entrepôts du compte seront répliqués :

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

Le groupe de réplication peut aussi être actualisé manuellement en exécutant la commande suivante :

ALTER REPLICATION GROUP myrg REFRESH;
Copy

Créer un groupe de basculement

Pour permettre la promotion du compte secondaire au statut de compte principal pendant une panne, utilisez un groupe de basculement :

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

Dans cet exemple, ALLOWED_DATABASES est la base de données à créer dans le groupe de basculement. Le notebook répliqué dans le groupe de basculement est en lecture seule, mais toujours exécutable. Si vous faites passer le groupe de basculement en tant que groupe principal, le notebook devient accessible en lecture et en écriture.

Considérations

  • Les notebooks planifiés dans un compte secondaire sont mis en pause jusqu’au basculement. Après le basculement, la planification reprend.

  • Pour la réplication et le comportement des tâches, voir Considérations relatives à la réplication.

  • Les résultats du notebook ne sont stockés que dans le compte dans lequel le notebook a été exécuté. Les résultats du notebook ne sont pas répliqués.

Limitations

  • L’intégration Git n’est actuellement pas prise en charge après un basculement. Pour que les notebooks d’un compte secondaire promu puissent se reconnecter à Git, vous devez reconfigurer Git.

Notebooks Container Runtime

Les notebooks qui utilisent Container Runtime ne sont pas entièrement répliqués. Plus précisément, les pools de calcul ne sont pas répliqués et doivent être créés manuellement dans le compte secondaire.

Pour exécuter un notebook Container Runtime dans le compte secondaire :

  1. Identifiez le pool de calcul utilisé dans le compte source.

  2. Créez un pool de calcul avec le même nom et la même configuration dans le compte secondaire : Par exemple, si un notebook répliqué fait référence à un pool de calcul nommé compute_pool, créez ce pool de calcul dans le compte secondaire :

-- 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

Une fois créé, le notebook répliqué peut utiliser le pool de calcul pour s’exécuter dans le compte secondaire.