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');
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');
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';
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';
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;
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;
Le groupe de réplication peut aussi être actualisé manuellement en exécutant la commande suivante :
ALTER REPLICATION GROUP myrg REFRESH;
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';
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 :
Identifiez le pool de calcul utilisé dans le compte source.
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;
Une fois créé, le notebook répliqué peut utiliser le pool de calcul pour s’exécuter dans le compte secondaire.