Cópia de modelos de arctic-extract entre bancos de dados, esquemas e contas¶
Este tópico explica como copiar modelos de arctic-extract com ajuste fino entre bancos de dados ou esquemas na mesma conta ou entre contas diferentes na mesma organização. Por exemplo, talvez você queira copiar um modelo de uma conta de desenvolvimento para uma conta de produção.
Copiar modelos entre bancos de dados e/ou esquemas em uma conta¶
Crie o modelo a partir do modelo de origem usando a função que criou o modelo de origem:
Dica
Para listar as versões em um modelo, use 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;
Opcional: adicione outra versão do modelo:
ALTER MODEL prod_db.prod_schema.invoices_model ADD VERSION V2 FROM MODEL dev_db.dev_schema.invoices_source_model VERSION V2;
Para ativar a função
prod_rolepara usar o modelo copiado, conceda o privilégio OWNERSHIP no modelo para essa função:GRANT OWNERSHIP ON MODEL prod_db.prod_schema.invoices_model TO ROLE prod_role;
Copiar modelos entre contas¶
Você pode replicar um modelo de uma conta de origem para uma ou mais contas de destino na mesma organização. Para obter mais informações sobre replicação, consulte Introdução à replicação e failover em várias contas.
Para replicar o modelo de uma conta de origem para uma conta de destino, você precisa criar um grupo de replicação na conta de origem para permitir a replicação do banco de dados no qual o modelo foi criado para uma conta de destino e configurar a função de usuário de produção.
Nota
Você deve ser um usuário com a função ACCOUNTADMIN para criar um grupo de replicação e configurar a função de usuário de produção.
Replicação do banco de dados no qual o modelo foi criado¶
Crie um grupo primário de replicação na conta de origem:
CREATE REPLICATION GROUP models_replication_group OBJECT_TYPES = DATABASES ALLOWED_DATABASES = dev_db ALLOWED_ACCOUNTS = org.production_account;
Crie um grupo de replicação secundário em uma conta de destino como uma réplica do grupo de replicação primário na conta de origem:
CREATE REPLICATION GROUP models_secondary_replication_group AS REPLICA OF org.dev_account.models_replication_group;
Atualize o banco de dados na conta de destino a partir da conta de origem:
ALTER REPLICATION GROUP models_secondary_replication_group REFRESH;
Opcional: especifique o cronograma para atualizar o grupo de replicação secundário para que a conta seja sincronizada automaticamente a cada 10 minutos:
ALTER REPLICATION GROUP models_secondary_replication_group SET REPLICATION_SCHEDULE = '10 MINUTE';
Configurar a função de usuário de produção¶
Para garantir que o usuário que trabalha na conta de produção de destino (por exemplo, um usuário com a função prod_role) possa executar o modelo replicado, siga estas etapas:
Conceda o privilégio USAGE no banco de dados e esquema de origem, bem como propriedade em todos os modelos desse esquema, para a função
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;
Opcional: conceda a propriedade em todos os modelos futuros que serão replicados:
GRANT OWNERSHIP ON ALL FUTURE MODELS IN SCHEMA dev_db.dev_schema TO ROLE prod_role;
Depois de conceder os privilégios necessários, um usuário com a função prod_role deve seguir estes passos:
Criar o modelo a partir do modelo de origem:
CREATE MODEL prod_db.prod_schema.invoices_model WITH VERSION V1 FROM MODEL dev_db.dev_schema.invoices_source_model VERSION V1;
Opcional: adicione outra versão do modelo:
ALTER MODEL prod_db.prod_schema.invoices_model ADD VERSION V2 FROM MODEL dev_db.dev_schema.invoices_source_model VERSION V2;
Nota
O modelo no esquema de destino é um objeto de modelo separado do modelo no banco de dados replicado. Novas versões não são copiadas automaticamente; você deve adicionar cada versão usando ALTER MODEL … ADD VERSION.