CREATE NOTEBOOK

CREATE NOTEBOOK

새 Snowflake 노트북(notebook)을 만들거나 기존 노트북을 교체하는 명령이에요. 노트북은 SQL과 Python 코드를 함께 실행할 수 있는 대화형 개발 환경을 나타내는 객체예요.

출처: 문서

본문

새 Snowflake 노트북을 만들거나 기존 노트북을 교체해요.

구문 (Syntax)

CREATE [ OR REPLACE ] NOTEBOOK [ IF NOT EXISTS ] <name>
  [ FROM '<source_location>' ]
  [ MAIN_FILE = '<main_file_name>' ]
  [ COMMENT = '<string_literal>' ]
  [ QUERY_WAREHOUSE = <warehouse_to_run_nb_and_sql_queries_in> ]
  [ IDLE_AUTO_SHUTDOWN_TIME_SECONDS = <number_of_seconds> ]
  [ RUNTIME_NAME = '<runtime_name>' ]
  [ COMPUTE_POOL = '<compute_pool_name>' ]
  [ WAREHOUSE = <warehouse_to_run_notebook_python_runtime> ]

필수 매개변수 (Required parameters)

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

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

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

선택 매개변수 (Optional parameters)

FROM 'source_location' 노트북을 지정된 스테이지 위치의 .ipynb 파일에서 만들어야 한다고 지정해요. 스테이지의 파일에서 노트북을 만들려면 source_location을 파일의 스테이지 위치로 설정하고, MAIN_FILE 매개변수를 파일 이름으로 설정해요.

이 매개변수를 지정하지 않으면 노트북 객체는 템플릿 노트북에서 만들어져요.

MAIN_FILE = 'main_file_name' 노트북 파일 이름에 대한 사용자 지정 식별자예요. 이 파일은 name 매개변수에 지정되는 노트북 객체 이름과는 별개예요. 이 파일은 ipynb 파일이어야 해요.

QUERY_WAREHOUSE = warehouse_name 노트북의 SQL 쿼리가 실행되는 웨어하우스를 지정해요. 이 매개변수는 선택 사항이지만, EXECUTE NOTEBOOK 명령을 실행하려면 필요해요.

IDLE_AUTO_SHUTDOWN_TIME_SECONDS = number_of_seconds 노트북이 자동으로 종료되기 전의 유휴 시간(초)이에요. 이 매개변수는 Container Runtime에서 실행되는 노트북에만 사용할 수 있어요. 값은 60에서 259200(72시간) 사이의 정수여야 해요.

  • 기본값: 3600초

RUNTIME_NAME = runtime_name

  • 'SYSTEM$WAREHOUSE_RUNTIME' (기본값): Snowflake 웨어하우스에서 노트북을 실행해요 (Warehouse Runtime 전용).
  • 'SYSTEM$BASIC_RUNTIME': CPU 런타임을 사용해 Snowpark Container Services(SPCS) 컨테이너에서 노트북을 실행해요 (Container Runtime 전용).
  • 'SYSTEM$GPU_RUNTIME': GPU 런타임을 사용해 SPCS 컨테이너에서 노트북을 실행해요 (Container Runtime 전용).

Container Runtime(SYSTEM$BASIC_RUNTIME 또는 SYSTEM$GPU_RUNTIME)을 지정할 때는 COMPUTE_POOL 매개변수도 포함해야 해요. SYSTEM$WAREHOUSE_RUNTIME은 Warehouse Runtime 전용이에요.

COMPUTE_POOL = compute_pool_name (Container Runtime 전용) Container Runtime을 사용할 때 노트북을 호스팅하는 컴퓨트 풀을 지정해요. RUNTIME_NAME이 SYSTEM$BASIC_RUNTIME 또는 SYSTEM$GPU_RUNTIME으로 설정된 경우 이 매개변수가 필요해요.

컴퓨트 풀에 대한 자세한 내용은 Snowpark Container Services: 컴퓨트 풀 사용(Working with compute pools)을 참고해요.

WAREHOUSE = warehouse_name 웨어하우스는 다음을 실행하는 데 사용돼요.

  • Warehouse Runtime의 경우: 노트북 커널과 SQL 쿼리(Snowpark pushdown compute 포함) 모두
  • Container Runtime의 경우: SQL 쿼리만 (Snowpark pushdown compute 포함). 노트북 커널은 컴퓨트 풀에서 실행돼요.

노트북을 만들 때 웨어하우스를 지정하지 않으면 Snowflake는 스키마 계열(linage) 매개변수 DEFAULT_STREAMLIT_NOTEBOOK_WAREHOUSE가 정의한 기본 웨어하우스를 사용해요. 이 매개변수를 스키마·데이터베이스·계정 계열 수준에서 설정해 선호하는 웨어하우스를 정의할 수 있어요.

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

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

권한 (Privilege) 객체 (Object)
USAGE Database
USAGE 또는 OWNERSHIP Schema
CREATE NOTEBOOK Schema

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

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

사용 메모 (Usage notes)

Container Runtime을 사용하는 노트북을 만들 때 노트북은 Snowpark Container Services 환경 안에서 실행돼요. Container Runtime 노트북은 RUNTIME_NAME과 COMPUTE_POOL 매개변수를 모두 지정해야 해요.

메타데이터에 관해서는 다음 사항에 주의해요.

⚠️ 주의: 고객은 Snowflake 서비스를 사용할 때 (User 객체를 제외하고) 개인 데이터·민감 데이터·수출 통제 데이터·기타 규제 데이터를 메타데이터로 입력하지 않도록 해야 해요. 자세한 내용은 Snowflake의 메타데이터 필드를 참고해요.

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

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

예시 (Examples)

다음은 mynotebook이라는 노트북을 만들어요.

CREATE NOTEBOOK mynotebook;

QUERY_WAREHOUSE 매개변수는 선택 사항이지만, 새 노트북을 만들 때 지정하면 EXECUTE NOTEBOOK이 웨어하우스에서 실행될 수 있으므로 권장돼요.

CREATE NOTEBOOK mynotebook
 QUERY_WAREHOUSE = my_warehouse;

다음 예시는 스테이지의 ipynb 파일에서 노트북을 만들어요.

CREATE NOTEBOOK mynotebook
 FROM '@my_db.my_schema.my_stage'
 MAIN_FILE = 'my_notebook_file.ipynb'
 QUERY_WAREHOUSE = my_warehouse;

다음 예시는 Container Runtime(CPU)을 사용하는 노트북을 만들어요.

CREATE NOTEBOOK my_cpu_notebook
  RUNTIME_NAME = 'SYSTEM$BASIC_RUNTIME'
  COMPUTE_POOL = 'my_compute_pool';

다음 예시는 Container Runtime(GPU)을 사용하는 노트북을 만들어요.

CREATE NOTEBOOK my_gpu_notebook
  RUNTIME_NAME = 'SYSTEM$GPU_RUNTIME'
  COMPUTE_POOL = 'gpu_pool_1';

더 알아보기 (Learn more)