CREATE MODEL

CREATE MODEL

현재/지정한 스키마에 새 머신러닝 모델을 만들거나 기존 모델을 교체하는 명령이에요. SQL에서는 기존 모델로부터만 모델을 만들 수 있어요.

출처: 문서

본문

현재/지정한 스키마에 새 머신러닝 모델을 만들거나 기존 모델을 교체해요.

참고: Snowflake Model Registry Python API를 사용해 모델을 처음부터 만들어요. SQL에서는 다른 모델로부터만 모델을 만들 수 있어요.

모델은 버전(version)으로 관리돼요. 모든 모델은 최소 하나의 버전이 있어야 하고, 하나의 버전이 기본(default)으로 지정되어야 해요. 모델에 버전을 추가하려면 ALTER MODEL … ADD VERSION을 사용해요.

모델의 일부 속성은 수정할 수 있고(ALTER MODEL 참고), 여러 버전을 추가할 수 있어요.

이 명령은 다음 변형(variant)도 지원해요.

  • CREATE MODEL … FROM internalStage (내부 스테이지의 파일에서 모델 생성)

함께 보기: ALTER MODEL, ALTER MODEL … ADD VERSION, DROP MODEL, SHOW MODELS

구문 (Syntax)

CREATE [ OR REPLACE ] MODEL [ IF NOT EXISTS ] <name> [ WITH VERSION <version_name> ]
    FROM MODEL <source_model_name> [ VERSION <source_version_or_alias_name> ]

변형 구문 (Variant Syntax)

이 변형은 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>]

내부 스테이지에 대한 추가 세부 사항은 로컬 파일용 내부 스테이지 선택(Choosing an internal stage for local files)을 참고해요.

필수 매개변수 (Required parameters)

name 새 모델의 식별자(즉 이름)를 지정하는 문자열로, 모델이 만들어지는 스키마 안에서 고유해야 해요.

또한 식별자는 반드시 알파벳 문자로 시작해야 하며, 전체 식별자 문자열이 큰따옴표로 묶이지 않는 한 공백이나 특수 문자를 포함할 수 없어요 (예: "My object"). 큰따옴표로 묶인 식별자는 대소문자를 구분해요.

자세한 내용은 식별자 요구 사항(Identifier requirements)을 참고해요.

FROM MODEL source_model_name FROM internalStage 변형을 사용하지 않으면 필수예요. 새 모델을 만들 원본 모델의 이름을 지정해요.

FROM internalStage FROM internalStage 변형을 사용하면 필수예요. 모델의 파일이 들어 있는 내부 스테이지를 지정해요. 이 파일들의 필수 레이아웃은 현재 문서화되어 있지 않아요.

선택 매개변수 (Optional parameters)

WITH VERSION version_name FROM MODEL 변형에 사용해요. 새 모델에 만들 버전의 이름을 지정해요.

VERSION source_version_or_alias_name FROM MODEL 변형에 사용해요. 원본 모델에서 복사할 버전의 이름이나 별칭을 지정해요. 지정하지 않으면 원본 모델의 기본 버전을 사용해요.

접근 제어 요구 사항 (Access control requirements)

이 작업을 실행하는 데 사용하는 역할(role)은 최소한 다음 권한을 가져야 해요.

권한 (Privilege) 객체 (Object) 비고
CREATE MODEL Schema 스키마에 대한 OWNERSHIP으로 암시됨
OWNERSHIP Model 스키마에 이미 존재하는 객체와 같은 이름을 가진 임시 객체를 만들려면 역할이 객체에 대한 OWNERSHIP 권한을 부여받거나 상속해야 해요.

스키마 안의 객체를 작업하려면 상위 데이터베이스에 대한 권한이 최소 하나, 상위 스키마에 대한 권한이 최소 하나 필요해요.

지정된 권한 집합으로 사용자 지정 역할을 만드는 방법은 사용자 지정 역할 만들기(Creating custom roles)를 참고해요. 보호 가능한 객체에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여의 일반적인 내용은 접근 제어 개요(Overview of Access Control)를 참고해요.

사용 메모 (Usage notes)

OR REPLACEIF NOT EXISTS 절은 서로 배타적이에요. 같은 문에서 둘 다 사용할 수 없어요.

CREATE OR REPLACE <object> 문은 원자적(atomic)으로 동작해요. 즉, 객체를 교체할 때 기존 객체는 삭제되고 새 객체는 단일 트랜잭션 안에서 생성돼요.

더 알아보기 (Learn more)