データベース、スキーマ、アカウント間での arctic-extract モデルのコピー¶
このトピックでは、同じアカウント内のデータベースまたはスキーマ間で、あるいは同じ組織の異なるアカウント間で微調整された``arctic-extract``モデルをコピーする方法について説明します。たとえば、開発アカウントから本番アカウントにモデルをコピーするとします。
アカウント内のデータベースやスキーマ間でモデルをコピーする¶
ソースモデルを作成したロールを使用して、ソースモデルからモデルを作成します。
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;
オプション:モデルの別のバージョンを追加します。
ALTER MODEL prod_db.prod_schema.invoices_model ADD VERSION V2 FROM MODEL dev_db.dev_schema.invoices_source_model VERSION V2;
prod_roleロールがコピーしたモデルを使用できるようにするには、素のロールにモデルについての OWNERSHIP 権限を付与します。GRANT OWNERSHIP ON MODEL prod_db.prod_schema.invoices_model TO ROLE prod_role;
アカウント間でモデルをコピーする¶
ソースアカウントから、同じ組織内にある1つ以上のターゲットアカウントにモデルを複製できます。複製の詳細については、 複数のアカウント間にわたる複製とフェールオーバーの概要 をご参照ください。
ソースアカウントからターゲットアカウントにモデルを複製するには、ソースアカウントに複製グループを作成し、モデルが作成されたデータベースのターゲットアカウントへの複製を有効にし、本番ユーザーロールを設定する必要があります。
注釈
複製グループを作成し、本番ユーザーロールを設定するには、ACCOUNTADMIN ロールを持つユーザーである必要があります。
モデルが作成されたデータベースを複製する¶
ソースアカウントにプライマリ複製グループを作成します。
CREATE REPLICATION GROUP models_replication_group OBJECT_TYPES = DATABASES ALLOWED_DATABASES = dev_db ALLOWED_ACCOUNTS = org.production_account;
ソースアカウントのプライマリ複製グループのレプリカとして、ターゲットアカウントにセカンダリ複製グループを作成します。
CREATE REPLICATION GROUP models_secondary_replication_group AS REPLICA OF org.dev_account.models_replication_group;
ソースアカウントからターゲットアカウントのデータベースを更新します。
ALTER REPLICATION GROUP models_secondary_replication_group REFRESH;
オプション:アカウントが10分ごとに自動的に同期されるように、セカンダリ複製グループを更新するスケジュールを指定します。
ALTER REPLICATION GROUP models_secondary_replication_group SET REPLICATION_SCHEDULE = '10 MINUTE';
本番ユーザーロールを設定する¶
ターゲットの本番アカウントで作業しているユーザー(たとえば、``prod_role``ロールを持つユーザー)が複製されたモデルを使用できることを確認するには、次の手順に従います。
ソースデータベースとスキーマに関する 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;
オプション:複製されるすべての将来のモデルに対する所有権を付与します。
GRANT OWNERSHIP ON ALL FUTURE MODELS IN SCHEMA dev_db.dev_schema TO ROLE prod_role;
必要な権限を付与した後、 prod_role ロールを持つユーザーは以下のステップに従う必要があります。
ソースモデルからモデルを作成します。
CREATE MODEL prod_db.prod_schema.invoices_model WITH VERSION V1 FROM MODEL dev_db.dev_schema.invoices_source_model VERSION V1;
オプション:モデルの別のバージョンを追加します。
ALTER MODEL prod_db.prod_schema.invoices_model ADD VERSION V2 FROM MODEL dev_db.dev_schema.invoices_source_model VERSION V2;
注釈
ターゲットスキーマのモデルは、複製されたデータベースのモデルとは別のモデルオブジェクトです。新しいバージョンは自動的にコピーされません。:doc:`/sql-reference/sql/alter-model-add-version`を使用して各バージョンを追加する必要があります。