在数据库、架构和账户之间复制 arctic-extract 模型

本主题说明如何在同一账户的数据库或架构之间或同一组织的不同账户之间复制经过微调的 arctic-extract 模型。例如,您可能希望将模型从开发账户复制到生产账户。

在账户中的数据库和/或架构之间复制模型

  1. 使用创建了源模型的角色从源模型创建模型:

    小技巧

    要列出模型中的版本,请使用 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;
    
  2. 可选:添加模型的另一个版本:

    ALTER MODEL prod_db.prod_schema.invoices_model
      ADD VERSION V2
      FROM MODEL dev_db.dev_schema.invoices_source_model
        VERSION V2;
    
  3. 要使 prod_role 角色能够使用复制的模型,请向该角色授予对该模型的 OWNERSHIP 权限:

    GRANT OWNERSHIP ON MODEL prod_db.prod_schema.invoices_model
      TO ROLE prod_role;
    

在账户之间复制模型

您可以将模型从源账户复制到同一组织中的一个或多个目标账户。有关复制的更多信息,请参阅 跨多个账户的复制和故障转移简介

要将模型从源账户复制到目标账户,您需要在源账户中创建一个复制组,以允许将创建模型的数据库复制到目标账户,并设置生产用户角色。

备注

您必须是具有 ACCOUNTADMIN 角色的用户,才能创建复制组并设置生产用户角色。

复制创建模型的数据库

  1. 在源账户中创建主复制组:

    CREATE REPLICATION GROUP models_replication_group
    OBJECT_TYPES = DATABASES
    ALLOWED_DATABASES = dev_db
    ALLOWED_ACCOUNTS = org.production_account;
    
  2. 在目标账户中创建辅助复制组,作为源账户中主复制组的副本:

    CREATE REPLICATION GROUP models_secondary_replication_group
    AS REPLICA OF org.dev_account.models_replication_group;
    
  3. 从源账户刷新目标账户中的数据库:

    ALTER REPLICATION GROUP models_secondary_replication_group REFRESH;
    
  4. 可选:指定刷新辅助复制组的计划,以便账户每 10 分钟自动同步一次:

    ALTER REPLICATION GROUP models_secondary_replication_group
      SET REPLICATION_SCHEDULE = '10 MINUTE';
    

设置生产用户角色

为确保使用目标生产账户的用户(例如,具有 prod_role 角色的用户)可以使用复制模型,请执行以下步骤:

  1. prod_role 角色授予源数据库和架构的 USAGE 权限以及该架构中所有模型的所有权:

    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;
    
  2. 可选:授予所有将要复制的未来模型的所有权:

    GRANT OWNERSHIP ON ALL FUTURE MODELS IN SCHEMA dev_db.dev_schema TO ROLE prod_role;
    

授予所需权限后,具有 prod_role 角色的用户必须执行以下步骤:

  1. 从源模型创建模型:

    CREATE MODEL prod_db.prod_schema.invoices_model
      WITH VERSION V1
      FROM MODEL dev_db.dev_schema.invoices_source_model
        VERSION V1;
    
  2. 可选:添加模型的另一个版本:

    ALTER MODEL prod_db.prod_schema.invoices_model
      ADD VERSION V2
      FROM MODEL dev_db.dev_schema.invoices_source_model
        VERSION V2;
    

备注

目标架构中的模型是独立于复制数据库中模型的模型对象。新版本不会自动复制;您必须使用 ALTER MODEL ...ADD VERSION 添加每个版本。