CREATE MODEL¶
現在指定のスキーマで新しい機械学習モデルを作成するか、既存のモデルを置き換えます。
注釈
Snowflake Model Registry Python API を使用して、モデルのバージョンをゼロから作成します。SQL では、他のモデルからモデルを作成することしかできません。
モデルはバージョン管理されています。すべてのモデルには最低1つのバージョンがあり、1つのバージョンをデフォルトとして指定する必要があります。モデルにバージョンを追加するには、 ALTER MODEL ... ADD VERSION を使用します。
モデルのいくつかのプロパティを変更したり(ALTER MODEL を参照)、複数のバージョンを追加したりすることができます。
このコマンドは、次のバリアントもサポートしています。
CREATE MODEL ... FROM internalStage (外部ステージのファイルからモデルを作成)
- こちらもご参照ください。
ALTER MODEL、 ALTER MODEL ... ADD VERSION、 DROP MODEL、 SHOW MODELS
構文¶
CREATE [ OR REPLACE ] MODEL [ IF NOT EXISTS ] <name> [ WITH VERSION <version_name> ]
FROM MODEL <source_model_name> [ VERSION <source_version_or_alias_name> ]
バリアント構文¶
このバリアントは Snowflake Model Registry Python API で使用されています。SQL でゼロからモデルを作成することはできません。
CREATE [ OR REPLACE ] MODEL [ IF NOT EXISTS ] <name> [ WITH VERSION <version_name> ]
FROM internalStage
条件:
internalStage ::=
@[<namespace>.]<int_stage_name>[/<path>]
| @[<namespace>.]%<table_name>[/<path>]
| @~[/<path>]
その他の内部ステージの詳細については、 ローカルファイルに対する内部ステージの選択 をご参照ください。
必須パラメーター¶
name新しいモデルの識別子(つまり、名前)を指定する文字列。モデルが作成されるスキーマに対して一意である必要があります。
また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
FROM MODEL source_model_name- FROM internalStage variant を使用しない場合は必須
新しいモデルを作成する元となるモデルの名前を指定します。
FROM internalStage- FROM internalStage variant を使用する場合は必須です。
モデルのファイルを含む内部ステージを指定します。これらのファイルの必要なレイアウトは、現時点でドキュメント化されていません。
オプションのパラメーター¶
WITH VERSION version_name- FROM MODEL バリアント用
新しいモデルに作成するバージョンの名前を指定します。
VERSION source_version_or_alias_name- FROM MODEL バリアント用
ソースモデルからコピーするバージョンの名前またはエイリアスを指定します。指定されていない場合は、ソース・モデルのデフォルト・バージョンを使用します。
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
注意 |
|---|---|---|
CREATE MODEL |
スキーマ |
スキーマの OWNERSHIP による暗示 |
OWNERSHIP |
モデル |
スキーマに既存のオブジェクトと同じ名前の仮オブジェクトを作成するには、ロールにオブジェクトの権限(OWNERSHIP)を付与するか継承する必要があります。 |
スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。スキーマに対する 任意の権限を付与されたロールは、そのロールがスキーマを解決できることに注意してください。たとえば、スキーマに対するCREATE権限を付与されたロールは、そのスキーマにオブジェクトを作成できますが、そのスキーマに対するUSAGE*も*付与されている必要はありません。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
The OR REPLACE and IF NOT EXISTS clauses are mutually exclusive. They can't both be used in the same statement.
CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。