Copier des modèles arctic-extract entre des bases de données, des schémas et des comptes¶
Cette rubrique explique comment copier des modèles arctic-extract affinés entre des bases de données ou des schémas du même compte ou entre différents comptes de la même organisation. Par exemple, vous pouvez vouloir copier un modèle d’un compte de développement vers un compte de production.
Copier des modèles entre les bases de données ou les schémas d’un compte¶
Créez le modèle à partir du modèle source en utilisant le rôle qui a créé le modèle source :
Astuce
Pour répertorier les versions d’un modèle, utilisez SHOW VERSIONS IN MODEL.
CREATE MODEL prod_db.prod_schema.invoices_model WITH VERSION V1 FROM MODEL dev_db.dev_schema.invoices_source_model VERSION V1;
En option : Ajoutez une autre version du modèle :
ALTER MODEL prod_db.prod_schema.invoices_model ADD VERSION V2 FROM MODEL dev_db.dev_schema.invoices_source_model VERSION V2;
Pour activer le rôle
prod_rolepour utiliser le modèle copié, accordez le privilège OWNERSHIP sur le modèle à ce rôle :GRANT OWNERSHIP ON MODEL prod_db.prod_schema.invoices_model TO ROLE prod_role;
Copier des modèles entre différents comptes¶
Vous pouvez répliquer un modèle depuis un compte source vers un ou plusieurs comptes cibles dans la même organisation. Pour plus d’informations sur la réplication, consultez Présentation de la réplication et du basculement à travers plusieurs comptes.
Pour répliquer le modèle depuis un compte source vers un compte cible, vous devez créer un groupe de réplication dans le compte source pour permettre la réplication de la base de données dans laquelle le modèle a été créé vers un compte cible, et configurer le rôle d’utilisateur de production.
Note
Vous devez être un utilisateur doté du rôle ACCOUNTADMIN pour créer un groupe de réplication et pour configurer le rôle d’utilisateur de production.
Répliquer la base de données dans laquelle le modèle a été créé¶
Créer un groupe de réplication principal dans un compte source
CREATE REPLICATION GROUP models_replication_group OBJECT_TYPES = DATABASES ALLOWED_DATABASES = dev_db ALLOWED_ACCOUNTS = org.production_account;
Créez un groupe de réplication secondaire dans le compte cible en tant que réplica du groupe de réplication principal dans le compte source.
CREATE REPLICATION GROUP models_secondary_replication_group AS REPLICA OF org.dev_account.models_replication_group;
Actualisez la base de données dans le compte cible à partir du compte source :
ALTER REPLICATION GROUP models_secondary_replication_group REFRESH;
En option : Spécifiez la planification d’actualisation du groupe de réplication secondaire de sorte que le compte soit synchronisé automatiquement toutes les 10 minutes :
ALTER REPLICATION GROUP models_secondary_replication_group SET REPLICATION_SCHEDULE = '10 MINUTE';
Définir le rôle d’utilisateur de production¶
Pour vous assurer que l’utilisateur qui travaille sur le compte de production cible (par exemple, un utilisateur avec le rôle prod_role) peut utiliser le modèle répliqué, suivez les étapes suivantes :
Accordez le privilège USAGE sur la base de données et le schéma source, ainsi que la propriété sur tous les modèles de ce schéma, au rôle
prod_role:GRANT USAGE ON DATABASE dev_db TO ROLE prod_role; GRANT USAGE ON SCHEMA dev_db.dev_schema TO ROLE prod_role; GRANT OWNERSHIP ON ALL MODELS IN SCHEMA dev_db.dev_schema TO ROLE prod_role;
En option : Accordez la propriété sur tous les futurs modèles qui seront répliqués :
GRANT OWNERSHIP ON ALL FUTURE MODELS IN SCHEMA dev_db.dev_schema TO ROLE prod_role;
Une fois que vous avez accordé les privilèges requis, un utilisateur avec le rôle prod_role doit suivre les étapes suivantes :
Créez le modèle à partir du modèle source :
CREATE MODEL prod_db.prod_schema.invoices_model WITH VERSION V1 FROM MODEL dev_db.dev_schema.invoices_source_model VERSION V1;
En option : Ajoutez une autre version du modèle :
ALTER MODEL prod_db.prod_schema.invoices_model ADD VERSION V2 FROM MODEL dev_db.dev_schema.invoices_source_model VERSION V2;
Note
Le modèle du schéma cible est un objet de modèle distinct du modèle de la base de données répliquée. Les nouvelles versions ne sont pas copiées automatiquement. Vous devez ajouter chaque version en utilisant ALTER MODEL … ADD VERSION.