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

  1. 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;
    
    Copy
  2. 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;
    
    Copy
  3. Para ativar a função prod_role para 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;
    
    Copy

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

  1. 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;
    
    Copy
  2. 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;
    
    Copy
  3. Atualize o banco de dados na conta de destino a partir da conta de origem:

    ALTER REPLICATION GROUP models_secondary_replication_group REFRESH;
    
    Copy
  4. 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';
    
    Copy

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:

  1. 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;
    
    Copy
  2. 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;
    
    Copy

Depois de conceder os privilégios necessários, um usuário com a função prod_role deve seguir estes passos:

  1. 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;
    
    Copy
  2. 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;
    
    Copy

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.