CREATE CODE BUNDLE
CREATE CODE BUNDLE
새 Code Bundle을 만들거나 기존 Code Bundle을 교체하는 명령이에요. Code Bundle은 Snowflake 컴퓨트에서 비대화형으로 실행할 프로젝트 소스 파일(예: .py 스크립트, .ipynb 노트북, SQL 파일)을 패키징하는 이름 있는 스키마 수준 객체예요. Code Bundle이 만들어지면 소스의 모든 파일이 지정된 데이터베이스와 스키마의 객체에 복사돼요. 그런 다음 EXECUTE CODE BUNDLE로 Code Bundle을 실행할 수 있어요. Code Bundle은 스테이지 또는 프라이빗 워크스페이스에서 만들 수 있어요.
출처: 문서
본문
참고: Notebook Project Objects는 Code Bundles로 이름이 바뀌었어요.
NOTEBOOK PROJECT문법은 여전히 지원되며, 해당 구문은 CREATE NOTEBOOK PROJECT를 참고하세요. 이름 변경 배경은 동작 변경 공지를 참고하세요.
Code Bundle에 대한 자세한 내용은 Code Bundle 문서를 참고하세요.
참고: 공유 워크스페이스에서 Code Bundle을 만드는 것은 현재 지원되지 않아요.
관련 명령: EXECUTE CODE BUNDLE, SHOW CODE BUNDLES, CREATE NOTEBOOK, EXECUTE NOTEBOOK
구문 (Syntax)
프라이빗 워크스페이스에서 Code Bundle 만들기:
CREATE [ OR REPLACE ] CODE BUNDLE [ IF NOT EXISTS ] <database_name>.<schema_name>.<bundle_name>
FROM 'snow://workspace/<workspace_path>'
[ COMMENT = '<string_literal>' ];
스테이지에서 Code Bundle 만들기:
CREATE [ OR REPLACE ] CODE BUNDLE [ IF NOT EXISTS ] <database_name>.<schema_name>.<bundle_name>
FROM '@<database_name>.<schema_name>.<stage_name>'
[ COMMENT = '<string_literal>' ];
필수 매개변수 (Required parameters)
database_name.schema_name.bundle_name — Code Bundle의 정규화된 식별자예요. 번들 이름은 스키마 내에서 고유해야 해요. 식별자는 알파벳 문자로 시작해야 하며, 큰따옴표로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없어요(예: "My Bundle"). 큰따옴표로 묶은 식별자는 대소문자를 구분해요.
FROM { 'snow://workspace/workspace_path' | '@database_name.schema_name.stage_name' } — 이 Code Bundle을 지원하는 소스를 지정해요.
snow://workspace/...URL을 사용해 Snowsight의 워크스페이스 버전에서 Code Bundle을 만들어요.- 스테이지 참조(예:
'@my_db.my_schema.my_stage')를 사용해 내부 또는 임시 스테이지에 배포한 파일에서 Code Bundle을 만들어요.
워크스페이스에서 만들 때 값은 워크스페이스 버전을 가리키는 snow://workspace/... URL이어야 해요. 경로에는 일반적으로 다음이 포함돼요:
- USER$ 또는 다른 소유자.
- 스키마.
- 워크스페이스 이름.
- 버전(예:
versions/last).
예:
snow://workspace/USER$.MY_SCHEMA."my_workspace"/versions/last
워크스페이스 경로를 찾으려면 다음 명령을 실행해요.
LIST 'snow://workspace/USER$.PUBLIC.DEFAULT$/versions/last/';
선택 매개변수 (Optional parameters)
COMMENT = 'string_literal' — Code Bundle에 주석이나 설명을 추가해요. 주석을 사용해 목적이나 워크플로를 설명해요(예: COMMENT = 'Code Bundle for this workflow'). 주석은 객체 메타데이터로 저장되므로 주석에 민감한 데이터를 포함하지 않도록 주의해요.
접근 제어 요구사항 (Access control requirements)
CREATE CODE BUNDLE를 실행하려면 역할이 대상 데이터베이스와 스키마에서 객체를 만들 수 있는 충분한 권한이 있어야 해요. 필요한 권한:
- 데이터베이스에 대한 USAGE 또는 OWNERSHIP.
- 스키마에 대한 USAGE 또는 OWNERSHIP.
- 해당 스키마 내에서 객체를 만들 수 있게 하는 스키마에 대한 CREATE CODE BUNDLE.
지정한 권한 집합을 가진 사용자 정의 역할을 만드는 방법은 사용자 정의 역할 만들기를 참고하세요.
보호 객체에서 SQL 작업을 수행할 때 역할과 권한 부여에 대한 일반 정보는 접근 제어 개요를 참고하세요.
사용 메모 (Usage notes)
- OR REPLACE와 IF NOT EXISTS 절은 상호 배타적이에요. 같은 문에서 둘 다 사용할 수 없어요.
- CREATE OR REPLACE <object> 문은 원자적이에요. 즉 객체가 교체될 때 이전 객체가 삭제되고 새 객체가 단일 트랜잭션으로 생성돼요.
- Code Bundle은 FROM 절에 지정된 워크스페이스 버전을 가리켜요.
versions/last를 사용하면 항상 최신 워크스페이스 버전을 참조하고, 고정 경로를 사용하면 정적 버전을 참조해요. - 스테이지에서 Code Bundle을 만들면 스테이지에서 버전을 추가해 업데이트할 수 있어요. 자세한 내용은 Workspaces에서 Notebook 실행 및 예약을 참고하세요.
- 설명적인 번들 이름을 사용해 워크플로 오케스트레이션을 단순화해요.
- Code Bundle을 교체하면 저장된 소스 경로와 메타데이터가 업데이트돼요.
CREATE CODE BUNDLE명령을 실행하려면 노트북 셀 안이 아니라 Workspaces의 SQL 파일 또는 SQL 워크시트에서 실행해야 해요.
예시 (Examples)
워크스페이스에서 Code Bundle을 만들어요.
CREATE CODE BUNDLE analytics_db.workflow_schema.workflow_bundle
FROM 'snow://workspace/USER$.workflow_schema."etl_workflow"/versions/last'
COMMENT = 'Code Bundle for nightly ETL workflow';
스테이지에서 Code Bundle을 만들어요.
CREATE CODE BUNDLE analytics_db.workflow_schema.workflow_bundle
FROM '@CODE_BUNDLE_STAGE'
COMMENT = 'Code Bundle created from an internal or temporary stage';
IF NOT EXISTS로 스테이지에서 Code Bundle을 만들어요.
CREATE CODE BUNDLE IF NOT EXISTS ML_TRAIN_BUNDLE3
FROM '@CODE_BUNDLE_STAGE1'
COMMENT = 'Code Bundle created from an internal or temporary stage';
더 알아보기 (Learn more)
- EXECUTE CODE BUNDLE — Code Bundle 실행
- SHOW CODE BUNDLES — Code Bundle 나열