CREATE NOTEBOOK PROJECT

CREATE NOTEBOOK PROJECT

노트북 프로젝트 객체(NPO, notebook project object)를 만드는 명령이에요. NPO는 Snowsight 워크스페이스를 데이터베이스와 스키마에 연결해요. NPO가 만들어지면 워크스페이스의 모든 파일이 지정된 데이터베이스·스키마의 프로젝트로 복사되고, EXECUTE NOTEBOOK PROJECT로 실행할 수 있어요.

출처: 문서

본문

노트북 프로젝트 객체를 만들어요. NPO는 Snowsight 워크스페이스를 데이터베이스와 스키마에 연결해요. NPO가 만들어질 때 워크스페이스의 모든 파일이 지정된 데이터베이스·스키마의 프로젝트로 복사돼요. 그런 다음 EXECUTE NOTEBOOK PROJECT로 노트북 프로젝트를 실행할 수 있어요. 스테이지 또는 프라이빗 워크스페이스에서 노트북 프로젝트 객체를 만들 수 있어요.

참고: 공유(shared) 워크스페이스에서 노트북 프로젝트 객체를 만드는 것은 현재 지원되지 않아요.

함께 보기: EXECUTE NOTEBOOK PROJECT, SHOW NOTEBOOK PROJECTS, CREATE NOTEBOOK, EXECUTE NOTEBOOK

참고: 노트북 프로젝트 객체는 Code Bundle로 이름이 바뀌었어요. 이 페이지의 NOTEBOOK PROJECT 문법은 계속 동작해요. 현재 명령과 그 새로운 기능은 CREATE CODE BUNDLE과 Snowflake Code Bundles를 참고해요.

구문 (Syntax)

프라이빗 워크스페이스에서 노트북 프로젝트 객체 생성:

CREATE NOTEBOOK PROJECT <database_name>.<schema_name>.<project_name>
  FROM 'snow://workspace/<workspace_path>'
  [ COMMENT = '<string_literal>' ];

스테이지에서 노트북 프로젝트 객체 생성:

CREATE NOTEBOOK PROJECT [ IF NOT EXISTS ] <database_name>.<schema_name>.<project_name>
  FROM '@<database_name>.<schema_name>.<stage_name>'
  [ COMMENT = '<string_literal>' ];

필수 매개변수 (Required parameters)

database_name.schema_name.project_name 노트북 프로젝트의 정규화된 식별자예요.

프로젝트 이름은 스키마 안에서 고유해야 해요.

식별자는 반드시 알파벳 문자로 시작해야 하며, 식별자가 큰따옴표로 묶이지 않는 한 공백이나 특수 문자를 포함할 수 없어요 (예: "My Project").

큰따옴표로 묶인 식별자는 대소문자를 구분해요.

FROM { 'snow://workspace/workspace_path' | '@database_name.schema_name.stage_name' } 이 노트북 프로젝트를 뒷받침하는 소스를 지정해요.

  • Snowsight의 워크스페이스 버전에서 노트북 프로젝트를 만들려면 snow://workspace/... URL을 사용해요. 워크스페이스에서 만들 때 값은 워크스페이스 버전을 가리키는 snow://workspace/... URL이어야 해요. 경로에는 일반적으로 다음이 포함돼요.
    • USER$ 또는 다른 소유자
    • 스키마
    • 워크스페이스 이름
    • 버전 (예: versions/last)
    • 예: snow://workspace/USER$.MY_SCHEMA."my_notebook_workspace"/versions/last
    • 워크스페이스 경로를 찾으려면 다음 명령을 실행해요.
      LIST 'snow://workspace/USER$.PUBLIC.DEFAULT$/versions/last/';
      
  • 내부 또는 임시 스테이지에 배포한 노트북 파일에서 노트북 프로젝트를 만들려면 스테이지 참조(예: '@my_db.my_schema.my_stage')를 사용해요.

선택 매개변수 (Optional parameters)

COMMENT = 'string_literal' 노트북 프로젝트 객체에 설명(comment)을 추가해요.

댓글로 목적이나 워크플로를 설명하는 데 사용해요 (예: COMMENT = 'Notebook project for this workflow').

댓글은 객체 메타데이터로 저장되므로 댓글에 민감한 데이터를 포함하지 않도록 해요.

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

CREATE NOTEBOOK PROJECT를 실행하려면 역할이 대상 데이터베이스와 스키마에서 객체를 만들기에 충분한 권한을 가져야 해요. 필요한 권한은 다음과 같아요.

  • 데이터베이스에 대한 USAGE 또는 OWNERSHIP
  • 스키마에 대한 USAGE 또는 OWNERSHIP
  • 해당 스키마 안에서 객체 생성을 허용하는 스키마의 CREATE NOTEBOOK PROJECT

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

사용 메모 (Usage notes)

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

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

노트북 프로젝트는 FROM 절에 표시된 지정된 워크스페이스 버전을 가리켜요. versions/last를 사용하면 항상 최신 워크스페이스 버전을 참조하고, 고정 경로를 사용하면 정적 버전을 참조해요.

스테이지에서 노트북 프로젝트를 만들면 스테이지에서 버전을 추가해 업데이트할 수 있어요. 자세한 내용은 워크스페이스에서 노트북 실행·스케줄링(Run and schedule Notebooks in Workspaces)을 참고해요.

워크플로 오케스트레이션을 단순화하려면 설명적인 프로젝트 이름을 사용해요.

프로젝트를 교체하면 저장된 워크스페이스 경로와 메타데이터가 업데이트돼요.

CREATE NOTEBOOK PROJECT 명령을 실행하려면 노트북 셀 안이 아니라 워크스페이스의 SQL 파일이나 SQL 워크시트에서 실행해야 해요.

예시 (Examples)

워크스페이스용 노트북 프로젝트를 만들어요.

CREATE NOTEBOOK PROJECT analytics_db.workflow_schema.workflow_proj
  FROM 'snow://workspace/USER$.workflow_schema."etl_workflow"/versions/last'
  COMMENT = 'Notebook project for nightly ETL workflow';

스테이지에서 노트북 프로젝트를 만들어요.

CREATE NOTEBOOK PROJECT analytics_db.workflow_schema.workflow_proj
  FROM '@NOTEBOOK_PROJECT_STAGE'
  COMMENT = 'Notebook project created from an internal or temporary stage';

IF NOT EXISTS를 사용해 스테이지에서 노트북 프로젝트를 만들어요.

CREATE NOTEBOOK PROJECT IF NOT EXISTS ML_TRAIN_NOTEBOOK3
  FROM '@NOTEBOOK_PROJECT_STAGE1'
  COMMENT = 'Notebook project created from an internal or temporary stage';

더 알아보기 (Learn more)