データベース、スキーマ、アカウント間での arctic-extract モデルのコピー

このトピックでは、同じアカウント内のデータベースまたはスキーマ間で、あるいは同じ組織の異なるアカウント間で微調整された``arctic-extract``モデルをコピーする方法について説明します。たとえば、開発アカウントから本番アカウントにモデルをコピーするとします。

アカウント内のデータベースやスキーマ間でモデルをコピーする

  1. ソースモデルを作成したロールを使用して、ソースモデルからモデルを作成します。

    Tip

    モデルのバージョンをリストするには、:doc:`/sql-reference/sql/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. オプション:モデルの別のバージョンを追加します。

    ALTER MODEL prod_db.prod_schema.invoices_model
      ADD VERSION V2
      FROM MODEL dev_db.dev_schema.invoices_source_model
        VERSION V2;
    
    Copy
  3. prod_role ロールがコピーしたモデルを使用できるようにするには、素のロールにモデルについての OWNERSHIP 権限を付与します。

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

アカウント間でモデルをコピーする

ソースアカウントから、同じ組織内にある1つ以上のターゲットアカウントにモデルを複製できます。複製の詳細については、 複数のアカウント間にわたる複製とフェールオーバーの概要 をご参照ください。

ソースアカウントからターゲットアカウントにモデルを複製するには、ソースアカウントに複製グループを作成し、モデルが作成されたデータベースのターゲットアカウントへの複製を有効にし、本番ユーザーロールを設定する必要があります。

注釈

複製グループを作成し、本番ユーザーロールを設定するには、ACCOUNTADMIN ロールを持つユーザーである必要があります。

モデルが作成されたデータベースを複製する

  1. ソースアカウントにプライマリ複製グループを作成します。

    CREATE REPLICATION GROUP models_replication_group
    OBJECT_TYPES = DATABASES
    ALLOWED_DATABASES = dev_db
    ALLOWED_ACCOUNTS = org.production_account;
    
    Copy
  2. ソースアカウントのプライマリ複製グループのレプリカとして、ターゲットアカウントにセカンダリ複製グループを作成します。

    CREATE REPLICATION GROUP models_secondary_replication_group
    AS REPLICA OF org.dev_account.models_replication_group;
    
    Copy
  3. ソースアカウントからターゲットアカウントのデータベースを更新します。

    ALTER REPLICATION GROUP models_secondary_replication_group REFRESH;
    
    Copy
  4. オプション:アカウントが10分ごとに自動的に同期されるように、セカンダリ複製グループを更新するスケジュールを指定します。

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

本番ユーザーロールを設定する

ターゲットの本番アカウントで作業しているユーザー(たとえば、``prod_role``ロールを持つユーザー)が複製されたモデルを使用できることを確認するには、次の手順に従います。

  1. ソースデータベースとスキーマに関する USAGE 権限と、そのスキーマのすべてのモデルに対する所有権を 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. オプション:複製されるすべての将来のモデルに対する所有権を付与します。

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

必要な権限を付与した後、 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;
    
    Copy
  2. オプション:モデルの別のバージョンを追加します。

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

注釈

ターゲットスキーマのモデルは、複製されたデータベースのモデルとは別のモデルオブジェクトです。新しいバージョンは自動的にコピーされません。:doc:`/sql-reference/sql/alter-model-add-version`を使用して各バージョンを追加する必要があります。